帮忙分析一个c程序

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:38:43
jolt2攻击的源代码。哪位大侠帮忙分析一下?主要说明一下每个模块函数的作用及各函数的调用关系。谢谢。
源码地址:http://packetstormsecurity.org/0005-exploits/jolt2.c
谢谢。

这个, 应该是一个IP碎片攻击的linux c源码.
struct pkt是要发送的攻击包:
IP报头+ICMP包或UDP包+数据
当不指定端口的时候用ICMP包攻击。
icmplen,udplen,iplen,分别是各种报头的长度, spf_sck是攻击使用的socket,它在main函数里被初始化为RAW类型的原始套接字,IP报头也在待定义之列。
useage函数打印出程序如何使用的信息。
host_to_ip函数把主机名转换为ip地址
quit函数退出程序
do_frags函数进行碎片攻击,
参数是一个套接字,源地址,目的地址及端口号。
这个程序可以伪造攻击的源地址(但是程序里却没有把伪造地址赋值给src_addr)
ip报头关键的部分在于把pkt.ip.frag_off设置为8190, 所以 整个包的长度是8190*8+29=65549, 超过65535了,被攻击的主机在重组ip碎片的时候,buffer就会溢出。为什么有ip碎片? 因为链路层有个叫MTU的包大小限制,不知道的话可以查相关资料。
udp报头的设置部分把目的端口设置为用户输入端口和1235的按位或运算的值。包的数据就一个字符a
icmp报头的设置部分把包的类型设定为icmp echo request.
然后就调用一个死循环不停发包了。。。。。。

其他部分,学过c都懂啦。。。呵呵