{"id":13665331,"url":"https://github.com/massoudasadi/packiffer","last_synced_at":"2025-04-26T08:31:54.822Z","repository":{"id":180875939,"uuid":"296045632","full_name":"massoudasadi/packiffer","owner":"massoudasadi","description":"lightweight cross-platform networking toolkit","archived":false,"fork":false,"pushed_at":"2023-03-31T19:41:20.000Z","size":11565,"stargazers_count":80,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-02T06:02:04.133Z","etag":null,"topics":["bpf","ebpf","firewall","gopacket","inject","libpcap","packet","pcap","xdp"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/massoudasadi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-09-16T13:45:50.000Z","updated_at":"2024-07-31T16:40:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"72686044-180f-4e2f-a44b-1008198af00c","html_url":"https://github.com/massoudasadi/packiffer","commit_stats":null,"previous_names":["massoudasadi/packiffer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massoudasadi%2Fpackiffer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massoudasadi%2Fpackiffer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massoudasadi%2Fpackiffer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massoudasadi%2Fpackiffer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/massoudasadi","download_url":"https://codeload.github.com/massoudasadi/packiffer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224031926,"owners_count":17244361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bpf","ebpf","firewall","gopacket","inject","libpcap","packet","pcap","xdp"],"created_at":"2024-08-02T06:00:32.835Z","updated_at":"2024-11-11T00:30:40.809Z","avatar_url":"https://github.com/massoudasadi.png","language":"Go","funding_links":[],"categories":["年度文章盘点"],"sub_categories":["2021年度文章盘点"],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/massoudasadi/packiffer)](https://goreportcard.com/report/github.com/massoudasadi/packiffer)\n\n\u003cimg src=\"/assets/packiffer.png\"\u003e\n\n# Packiffer\nPackiffer is a lightweight cross-platform networking toolkit that let you sniff/analyze/inject/filter packets.\n\n\u003cpre\u003e\nFeatures:\n    -display list of network interfaces\n    -sniff packets live from interface\n    -set promiscuous mode on interface\n    -apply filters to packets\n    -transform selected packets from pcap file to another\n    -inspect packets in terminal\n    -inject packets into network\n    -filter packets with specified destination ip\n\u003c/pre\u003e\n\n\u003cpre\u003e\nModes:\n    Sniff: \n        sniff packets live from interface\n\n    Transform: \n        transform packets from offline pcap\n\n    Inspect: \n        inspect \u0026 analysis packets from offline pcap files\n\n    Inject: \n        Inject Raw \u0026 Constructed Packets\n\n    Filter:\n        Drop or Accept Packets\n\u003c/pre\u003e\n\n# Prerequisites For Binary\n\u003cp\u003eLibpcap v1.9.1\u003c/p\u003e\n\u003cp\u003eClang/LLVM (Only on Linux for eBPF XDP packet filtering)\u003c/p\u003e\n\u003cp\u003eIptables (Only on Linux for Iptables packet filtering)\u003c/p\u003e\n\n# Prerequisites For Source\n\u003cp\u003eGolang v1.16\u003c/p\u003e\n\u003cp\u003eGoPacket v1.1.19\u003c/p\u003e\n\u003cp\u003eGo eBPF v0.0.0-20210223\u003c/p\u003e\n\u003cp\u003eLibpcap v1.9.1\u003c/p\u003e\n\u003cp\u003eFiber v2.8.0\u003c/p\u003e\n\u003cp\u003eClang/LLVM (Only on Linux for eBPF XDP packet filtering)\u003c/p\u003e\n\u003cp\u003eIptables (Only on Linux for Iptables packet filtering)\u003c/p\u003e\n\n# How to get Packiffer\nCheckout packiffer git repo using git clone\n```\ngit clone https://github.com/massoudasadi/packiffer.git\ncd packiffer\n```\n\n# Run Packiffer\n\nSniff mode:\n```\nmake build_go \n\n./packiffer sniff \u003cparameters\u003e\n\n(\"i\", \"Specify interface name. Default is eth0\")\n(\"p\", \"Specify promiscuous mode. Default is false\")\n(\"f\", \"Specify filter query. Default is all\")\n(\"od\", \"Specify output directory. Defaultis packiffer directory\")\n(\"of\", \"Specify output file name. Defaultis interface name\")\n(\"sl\", \"Specify Snapshot Lenght. Default is 2014\")\n(\"t\", \"limit sniffing timeout. Default is 30 seconds\")\n(\"c\", \"Limit count of packets to sniff. Default is 1000\")\n```\n\ntransform mode:\n```\nmake build_go \n\n./packiffer transform \u003cparameters\u003e\n\n(\"f\", \"Specify filter query. Default is all\")\n(\"in\", \"Specify input pcap file\")\n(\"od\", \"Specify output directory.Default is packiffer directory\")\n(\"of\", \"Specify output file name.Default is interface name\")\n(\"c\", \"Limit count of packets to sniff. Default is1000\")\n```\n\ninspect mode:\n```\nmake build_go \n\n./packiffer inspect \u003cparameters\u003e\n\n(\"in\", \"Specify input pcap file\")\n(\"f\", \"Specify filter query. Default is all\")\n(\"c\", \"Limit count of packets to sniff. Default is 1000\")\n```\n\ninject mode:\n```\nmake build_go \n\n./packiffer inject \u003cparameters\u003e\n\n(\"i\", \"Specify interface name. Default is eth0\")\n(\"ir\", \"Specify Raw Packet Inject. Default is false\")\n(\"ic\", \"Specify Constructed Packet Inject. Default is False\")\n(\"f\", \"Specify Path to packet file. Default is inject.txt\")\n```\n\nfirewall mode:\n```\nmake build_bpf\nmake build_go \n\n./packiffer firewall \u003cparameters\u003e\n\n(\"i\", \"Specify interface name. Default is eth0\")\n(\"f\", \"Specify Path to firewall file. Default is firewall.txt\")\n```\n\ndefault mode:\n```\n./packiffer \u003cparameters\u003e\n\n(\"h\", \"Specify help display. Default is false\")\n(\"d\", \"Specify devices display. Default is false\")\n```\n\n# Examples\nDisplay list of network interfaces\n```\n./packiffer -d\n```\n\nSniff packets on 'eth0' and save packets in 'eth0.pcap' (promiscuous mode) until Ctrl+C pressed\n```\n./packiffer sniff -i eth0 -p\n```\n\ntransformonly udp packets from 'eth0.pcap' to 'eth0_udp.pcap' until Ctrl+C pressed \n```\n./packiffer transform -in /path/to/eth0.pcap -of eth0_udp\n```\n\ninspect only tcp packets from pcap file\n```\n./packiffer inspect -in /path/to/file.pcap -f tcp\n```\n\ninject constructed tcp packets from InjectConstructed.json\n```\n./packiffer inject -i eth0 -ic -f /path/to/file.json\n```\n\nfilter packets from ips inside firewall.txt\n```\n./packiffer firewall -i eth0 -f /path/to/file.txt\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassoudasadi%2Fpackiffer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmassoudasadi%2Fpackiffer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassoudasadi%2Fpackiffer/lists"}