README
资源名称:ipman.zip [点击查看]
上传用户:zsjierui
上传日期:2007-01-05
资源大小:156k
文件大小:5k
源码类别:
网络编程
开发平台:
Visual C++
- IPMan Version:0.5b
- 作者:HiHint Email:HiHint@hotmail.com
- 公开这个程序是出于教育的目的。程序的一些功能是危险的。因此,在没有许可的
- 情况下不要随意使用。程序的作者对随意使用造成的后果不负责任。
- 欢迎非商业性的使用,传播本程序。任何对本程序的传播必须包含本说明文件。
- 程序的源代码是公开的,可以被随意修改。程序作者对此不负责任。
- 一、简介
- IPMan运行于Win95环境下的DOS命令行程序。主要功能是对以太网卡的直接读写。
- 它是通过vpacket.vxd来完成上述工作的。vpacket.vxd可以在如下的地址下载:
- http://willow.canberra.edu.au/~chrisc/nat32.html#Other
- 也可以使用随本程序附带的vapcket.vxd。vpacket.vxd是不需要安装的。因此,IPMan
- 也不需安装。
- 编译IPMan需要VC4.0或更高的版本。
- 二、功能
- 当前版本的IPMan具有以下功能:
- 1.查询本机的以太网地址。
- 2.查询子网上任何机器的以太网址。
- 3.查询以太网址对应的IP地址。(未测试)
- 4.监听子网上流过的以太网包。
- 5.发送ARP报文。
- 6.建立TCP连接,发送接收TCP报文。
- 利用最后两个功能,可以伪装成子网上的任何一台机器。当然,我只对伪装成受信
- 主机感兴趣。
- 三、文件
- IPMan.c 源代码
- IP.h 各种包头定义
- IPMan.exe 可直接运行。只要当前目录下存在vpacket.vxd
- IPMan.ini IPMan运行所需的初始参数。
- vpacket.vxd
- vpacket.exe vpacket.vxd编程环境。自解压文件。使用方法见展开后的vpacket.doc
- 文件(Word 97)。
- README
- 四、初始参数
- IPMan运行所需的初始参数都存放在文件IPMan.ini中。在IPMan运行前,有两个参数是
- 必须重新设定的:本机的IP地址和NDIS设备名。有关NDIS请参考:
- http://www.microsoft.com/ddk
- NDIS设备名一般是0000、0001等等。在Win95注册表的如下位置:
- HKEY_LOCAL_MACHINE/System/CurrentControlSet/control/net/0000
- IPMan.ini的格式类似于其它Windows应用的INI文件。有一点要注意的是,两个定义的
- 段中间必需用一个空行分隔。由"#"开始的行是注释行。以下是一个IPMan.ini样板。
- "//"后是作者加入的注释,真正的文件中是没有的。
- --------------cut here--------------
- #Every segment should be seperated by blank line
- #My IP address
- [IpAddr] // 本机的IP地址
- xxx.xxx.xxx.1
- #NDIS driver name
- [NDIS] // NDIS设备名
- 0000
- #Max data length
- [MaxDataLen] // 输出时最多输出的字节数,详见输出一节
- 4096
- #IP table to query
- [QueryIP] // IP地址列表,表示想要监听主机的IP地址
- xxx.xxx.xxx.2
- xxx.xxx.xxx.3
- #Port table to query // 端口列表,表示想要监听主机的端口(TCP/UDP)
- [QueryPort]
- 21
- 23
- 80
- #Time out // 超时(未提供)
- [TimeOut]
- 12345
- --------------cut here--------------
- 五、命令行参数
- IPMan的命令行参数如下:
- 无参数 显示本机以太网址
- [-?] 显示帮助信息
- [-l[ini] [-ip:sour_ip[:dest_ip]] [-port:sour_port[:dest_port]]]
- -l 监听所有信息
- -lini 监听信息有IPMan.ini的QueryIP和QueryPort过滤
- -ip:sour_ip 过滤掉所有与sour_ip无关的IP包
- sour_ip的格式为xxx.xxx.xxx.xxx
- -ip:sour_ip:dest_ip 过滤掉非sour_ip与dest_ip之间通讯的
- IP包
- -port:sour_port 过滤掉所有与sour_port无关的IP包
- -port:sour_port:dest_port 过滤掉非sour_port和 dest_ip间通讯的IP包
- [qeth:ip_addr] 查询ip_addr对应的以太网址
- [-qip:eth_addr] 查询eth_addr对应的IP地址,以太网址的格式为
- xx.xx.xx.xx.xx.xx(16进制)
- [-fout:output_file] 输出文件
- [-fcmd:command_file] 命令文件,用于发送ARP包、建立TCP连接等
- 详见命令文件一节
- 六、命令文件
- IPMan的命令文件用于发送ARP包、建立TCP连接和接收、发送TCP报文。其格式为:
- 命令名 命令参数1 命令参数2 命令参数3 ...
- 现在支持的命令有:
- SENDARP my_eth targ_eth sour_eth sour_ip dest_eth dest_ip operation
- 发送ARP报文。关于ARP报文,请参考TCP/IP协议。
- CONNECT my_eth targ_eth sour_ip dest_ip sour_port dest_port tcpid
- 建立从sour_ip的端口sour_port到dest_ip的dest_port端口的TCP
- 连接。用tcpid作为标识。这个标识将用于下列命令。要注意的是
- my_eth(我的以太网址)和targ_eth(目的以太网址)一定要填写。
- SENDTCP tcpid tcpmessage
- 发送TCP报文。将tcpmessage发送到tcpid指定的连接。tcpmessage
- 为一个不含空格的字串。空格或不可显示字符以xxx表示。xxx为
- 三位十进制数。
- RECVTCP tcpid
- 接收由tcpid指定的TCP报文。
- CLOSE tcpid
- 关闭由tcpid指定的TCP连接。
- 以下是一个命令文件的样板。以"#"开始的行是注释行。
- --------------cut here--------------
- # A sample comment line
- SENDARP xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx
- xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx 2
- CONNECT xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
- 1026 21 1
- RECVTCP 1
- SENDTCP 1 USER 32stu2 13 10
- RECVTCP 1
- SENDTCP 1 PASS 32abc 13 10
- RECVTCP 1
- SENDTCP 1 BYE 13 10
- RECVTCP 1
- CLOSE 1
- --------------cut here--------------
- 七、输出
- 错误输出到屏幕。标准输出可以可以是屏幕或由命令行指定。输出格式为:
- xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx // 源和目的IP地址
- xx Byte(s) TCP/UDP/ARP/ICMP Message:message_string
- 其中message_string的格式和上节的tcpmessage相同。xx Byte(s)表示实际收到的字节
- 数。真正输出的字节数由INI文件指定。
- 八、将来
- 今后的版本将提供的功能包括建立伪UDP连接,发送和接收UDP报文,发送和接收
- ICMP报文等。
- 九、感谢
- 在本程序和本文档的写作过程中,得到了Thomas F. Divine,Christopher Chlap和yuhj的
- 帮助,再此表示感谢 。
- 有什么意见或建议,欢迎和我联系。Email:HiHint@hotmail.com
- HiHint Apr. 8, 1998