论坛风格切换切换到宽版
  • 1543阅读
  • 8回复

[问题求助][RedHat] 我得到了一个IP数据包,怎么修改里面的内容呢 [复制链接]

上一主题 下一主题
 
发帖
1925
C币
-152776
威望
343
贡献值
1
银元
-2
铜钱
4341
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我用libpcap截获了一些IP数据包,然后想用libnet把修改以后的数据包再发送出去,那么怎么.修改数据包里面的内容呢.,有什么方法可以修改呢,谢.谢各位大哥了,小妹不胜感激!!!外贸


最佳答案ssffzz1
http://upload.bbs.csuboy.com/Mon_1004/126_6827_c2515fb4e40125e.gif[/img]关于发送你可以用原始RAW套接字编程直接通过网卡发送,具体的就是设置socket套接字参数,这个是不经过内核处理的。.
对于包的修改,我不知道你的包是什么内容是纯IP包还是TCP UDP HTTP。.这些不同的包修改方法是不一样的,但是思路是一样的。对于传输层及一下的,可以.定义头部结构体,然.后强制类型转换成相应的结构体,然后就可以修改了。对于HTTP等高层的包,这个比较麻烦一点,要用读字串的方法.来解析。具体的方法建议你参考相应的源代码。学习
但是这里面有个不二法门,就是任..何的包,你都可.以直接修改二进制数据来达到修改的目的。譬如用二进制编辑器直接修改即可,前提是你要知道你要改的数据再那个位置,即偏移量。域名


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线ac2004.
发帖
2062
C币
-60745
威望
376
贡献值
1
银元
-1
铜钱
4591
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:[RedHat]
关于发送你可以用原始RAW套接字编程直接通过网卡发送,具体的就是设置socket套接字参数,这个是不经过内核处理的。
对于包的修改,我不知道你的包是什么内容是纯IP包还是TCP UDP HTTP。这些不同的包修改方法是不一样的,但是思路是一样的。对于传输层及一下的,可以定义头部结构体,然后强制类型转换成相应的结构体,然后就可以修改了。对于HTTP等高层的包,这个比较麻烦一点,要用读字串的方法来解析。具体的方法建议你参考相应的源代码。
但是这里面有个不二法门,就是任何的包,你都可以直接修改二进制数据来达到修改的目的。譬如用二进制编辑器直接修改即可,前提是你要知道你要改的数据再那个位置,即偏移量。


离线klyxb.
发帖
2047
C币
-313895
威望
407
贡献值
1
银元
-1
铜钱
4726
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:[RedHat]
参考 netfilter 代码的 target 部分
例如 ipt_TTL.c


离线fu20.
发帖
2018
C币
-199009
威望
372
贡献值
1
银元
-2
铜钱
4553
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:[RedHat]


QUOTE:原帖由 platinum 于 2008-7-9 13:37 发表
参考 netfilter 代码的 target 部分
例如 ipt_TTL.c

这样的话还不如直接用netfilter去修改,是吗?但是我听说netfilter好像不能修改啊???


离线cnyunxi.
发帖
2005
C币
-199214
威望
392
贡献值
1
银元
-3
铜钱
4545
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:[RedHat]
用U32编辑器直接改就是了。


离线computerfs.
发帖
2136
C币
5128
威望
390
贡献值
1
银元
-2
铜钱
4676
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:[RedHat]
参考tcpreplay的做法。这个工具可以回放数据包,也可以修改数据包,格式也是基于libpcap库。


离线ijyq.
发帖
1958
C币
-60891
威望
373
贡献值
1
银元
-4
铜钱
4535
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:[RedHat]
可以的吧,参照NAT。根据数据包的类型好多东西要改


离线xsheng1983.
发帖
2049
C币
-199186
威望
366
贡献值
1
银元
-3
铜钱
4536
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
Re:[RedHat]


QUOTE:原帖由 auro 于 2008-7-15 10:41 发表
可以的吧,参照NAT。根据数据包的类型好多东西要改

我是想让内核不要处理我已经得到的包,然后我再修改数据包,然后再发送出去,也就是说到最后只能有一份数据包被发送出去!!!


离线cnzol.
发帖
1942
C币
-141092
威望
321
贡献值
2
银元
0
铜钱
4152
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
Re:[RedHat]
没太明白.

不过看起来不象是在做好事.  

几位帮忙的不知道是何居心?  

快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个