怎样将一个结构数据打成IP数据包(UNIX/C)?

hjx 2000-06-26 05:51:00
...全文
89 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunsetyang 2000-06-26
  • 打赏
  • 举报
回复
你应用层可以直接传递到ip协议层去打包。不用你去管的。如果要自己实现的话,还是比较麻烦的。首先结构的大小限制了打包,如果小于网络载体上的最大的ip包,那比较好办,直接套上就可以了;如果过大,需要分割。如果是tcp包的话,自己写非常困难。涉及到一些索引号什么的问题。
一般的,先写ip头。将ip头中的checksum置为0后计算checksum,然后是tcp/udp的头,再放入数据。好像udp/udp的头部分还有一次计算checksum的过程,你可以找本讲tcp/ip设计的书来看看。internetworking with tcp/ip volume II很不错。
  什么是tfn2k?   tfn2k通过主控端利用大量代理端主机的资源进行对一个或多个目标进行协同攻击。当前互联网中的unix、solaris和windows nt等平台的主机能被用于此类攻击,而且这个工具非常容易被移植到其它系统平台上。   tfn2k由两部分组成:在主控端主机上的客户端和在代理端主机上的守护进程。主控端向其代理端发送攻击指定的目标主机列表。代理端据此对目标进行拒绝服务攻击。由一个主控端控制的多个代理端主机,能够在攻击过程中相互协同,保证攻击的连续性。主控央和代理端的网络通讯是经过加密的,还可能混杂了许多虚假数据。整个tfn2k网络可能使用不同的tcp、udp或icmp包进行通讯。而且主控端还能伪造其ip地址。所有这些特性都使发展防御 tfn2k攻击的策略和技术都非常困难或效率低下。   tfn2k的技术内幕   ◆ 主控端通过tcp、udp、icmp或随机性使用其中之一的数据向代理端主机   发送命令。对目标的攻击方法包括tcp/syn、udp、icmp/ping或broadcast   ping (smurf)数据flood等。   ◆ 主控端与代理端之间数据的头信息也是随机的,除了icmp总是使用   icmp_echoreply类型数据。   ◆ 与其上一代版本tfn不同,tfn2k的守护程序是完全沉默的,它不会对接收   到的命令有任何回应。客户端重复发送每一个命令20次,并且认为守护程   序应该至少能接收到其中一个。   ◆ 这些命令数据可能混杂了许多发送到随机ip地址的伪造数据。   ◆ tfn2k命令不是基于字符串的,而采用了"++"格式,其中是   代表某个特定命令的数值,则是该命令的参数。   ◆ 所有命令都经过了cast-256算法(rfc 2612)加密。加密关键字在程序编   译时定义,并作为tfn2k客户端程序的口令。   ◆ 所有加密数据在发送前都被编码(base 64)成可打印的ascii字符。tfn2k   守护程序接收数据并解密数据。   ◆ 守护进程为每一个攻击产生子进程。   ◆ tfn2k守护进程试图通过修改argv[0]内容(或在某些平台中修改进程名)   以掩饰自己。伪造的进程名在编译时指定,因此每次安装时都有可能不同。   这个功能使tfn2k伪装成代理端主机的普通正常进程。因此,只是简单地检   查进程列表未必能找到tfn2k守护进程(及其子进程)。   ◆ 来自每一个客户端或守护进程的所有数据都可能被伪造。   监测tfn2k的特征

4,354

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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