linux下在应用层如何修改数据包

baowp 2008-07-04 04:43:14
linux下在应用层如何修改数据包,有些什么方法呢,帮帮小妹啊,谢谢了!!!
...全文
552 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
superman2108 2008-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 windowsxp0925 的回复:]
了解一下pcap,它是你最快上手的方法。他的实质也是通过raw socket模式来实现的。
[/Quote]
是能实现 ,但是这这样的话,我得到了一份数据包,但是内核还是会处理原来的,怎么让内核不要处理呢????
ffflyingwolf 2008-07-16
  • 打赏
  • 举报
回复
如果包的应用层没有特殊的校验的话,应该可以直接改的,之后重新计算下ip头和tcp/udp头的checksum就可以了,
计算checksum的算法网上搜下就有了的
baowp 2008-07-10
  • 打赏
  • 举报
回复
我就是要在应用层修改一下数据包,哥哥姐姐们能帮一下我吗,谢谢了???
baowp 2008-07-09
  • 打赏
  • 举报
回复
我现在有一点了解了,libnet也了解了一点,现在的问题是我不会修改包,比如我抓到了一些包,得到了指向这个包的指针,比如u_char *packet,我把这个包分解出了TCP包或者UDP包,就是不知道如何修改TCP或者UDP包里面的内容,我想不能直接把包里面的东西重新赋一下值吧,是不是要通知内核丢弃这个包什么的,有什么函数吗,谢谢了,很感激!!!!
ffflyingwolf 2008-07-09
  • 打赏
  • 举报
回复
libnet我也没实际用过,之前用过libpacap在windows下面的版本winpcap,那里面有发包的函数可以用,但是记得libpcap是没有发包的函数的,所以应该还是需要用到libnet
看过一点libnet的文档,libnet下构造包还是挺方便的,其实你要发包出去,实际上也就是按照包的封装顺序,填好的一块buffer,然后把他发出去而已,所以改包自己改也可以的
你的包的地址,是你以太网头的源或目的地址,这个没什么问题的,因为除了一些广播包,过你网卡的大多包源/目的地址都是你自己的MAC地址啊
baowp 2008-07-08
  • 打赏
  • 举报
回复
谢谢楼上,我现在用libpcap抓到了一些IP包和ARP包,那是不是就用libnet来修改,然后再发送出去呢?
另外我ifconfig了一下我的机子, HWaddr为 00:0C:29:B6:E0:BE,然后我抓的那些包的源地址或者目的地址大都是

00:0C:29:B6:E0:BE,请问这有什么问题吗?谢谢了!!
baowp 2008-07-07
  • 打赏
  • 举报
回复
修改数据包是不是应该首先截获数据包呢?谁能回答一下我啊???
ffflyingwolf 2008-07-07
  • 打赏
  • 举报
回复
改包要看你的情况了,如果你已经有现成的包,那么直接发出去就是了,不用再去抓包了
如果你要动态的改,那么肯定要先抓包下来,改了再发出去的
libpcap是用来抓包的,libnet是用来用来构造包发送
baowp 2008-07-06
  • 打赏
  • 举报
回复
小妹我这段时间正在研究如何修改数据包,有说用netfilter,还有说用netfilter_queue什么的,更有的说是用libcap,libnet,又有说说是用netfilter中的mangle,真不知道到底是什么???
proing 2008-07-05
  • 打赏
  • 举报
回复
用raw socket可以的。
aSpace 2008-07-05
  • 打赏
  • 举报
回复
修改其它程序的数据包?
应用层不行吧?
windowsxp0925 2008-07-05
  • 打赏
  • 举报
回复
了解一下pcap,它是你最快上手的方法。他的实质也是通过raw socket模式来实现的。

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧