README
上传用户:zsjierui
上传日期:2007-01-05
资源大小:156k
文件大小:5k
源码类别:

网络编程

开发平台:

Visual C++

  1. IPMan Version:0.5b
  2. 作者:HiHint Email:HiHint@hotmail.com
  3. 公开这个程序是出于教育的目的。程序的一些功能是危险的。因此,在没有许可的
  4. 情况下不要随意使用。程序的作者对随意使用造成的后果不负责任。
  5. 欢迎非商业性的使用,传播本程序。任何对本程序的传播必须包含本说明文件。
  6. 程序的源代码是公开的,可以被随意修改。程序作者对此不负责任。
  7. 一、简介
  8.     IPMan运行于Win95环境下的DOS命令行程序。主要功能是对以太网卡的直接读写。
  9. 它是通过vpacket.vxd来完成上述工作的。vpacket.vxd可以在如下的地址下载:
  10. http://willow.canberra.edu.au/~chrisc/nat32.html#Other
  11. 也可以使用随本程序附带的vapcket.vxd。vpacket.vxd是不需要安装的。因此,IPMan
  12. 也不需安装。
  13.     编译IPMan需要VC4.0或更高的版本。
  14. 二、功能
  15.     当前版本的IPMan具有以下功能:
  16.     1.查询本机的以太网地址。
  17.     2.查询子网上任何机器的以太网址。
  18.     3.查询以太网址对应的IP地址。(未测试)
  19.     4.监听子网上流过的以太网包。
  20.     5.发送ARP报文。
  21.     6.建立TCP连接,发送接收TCP报文。
  22.     利用最后两个功能,可以伪装成子网上的任何一台机器。当然,我只对伪装成受信
  23. 主机感兴趣。
  24. 三、文件
  25.     IPMan.c 源代码
  26.     IP.h 各种包头定义
  27.     IPMan.exe 可直接运行。只要当前目录下存在vpacket.vxd
  28.     IPMan.ini IPMan运行所需的初始参数。
  29.     vpacket.vxd
  30.     vpacket.exe vpacket.vxd编程环境。自解压文件。使用方法见展开后的vpacket.doc
  31. 文件(Word 97)。
  32.     README
  33. 四、初始参数
  34.     IPMan运行所需的初始参数都存放在文件IPMan.ini中。在IPMan运行前,有两个参数是
  35. 必须重新设定的:本机的IP地址和NDIS设备名。有关NDIS请参考:
  36. http://www.microsoft.com/ddk
  37. NDIS设备名一般是0000、0001等等。在Win95注册表的如下位置:
  38. HKEY_LOCAL_MACHINE/System/CurrentControlSet/control/net/0000
  39.     IPMan.ini的格式类似于其它Windows应用的INI文件。有一点要注意的是,两个定义的
  40. 段中间必需用一个空行分隔。由"#"开始的行是注释行。以下是一个IPMan.ini样板。
  41. "//"后是作者加入的注释,真正的文件中是没有的。
  42. --------------cut here--------------
  43. #Every segment should be seperated by blank line
  44. #My IP address 
  45. [IpAddr] // 本机的IP地址
  46. xxx.xxx.xxx.1
  47. #NDIS driver name
  48. [NDIS] // NDIS设备名
  49. 0000
  50. #Max data length
  51. [MaxDataLen] // 输出时最多输出的字节数,详见输出一节
  52. 4096
  53. #IP table to query
  54. [QueryIP] // IP地址列表,表示想要监听主机的IP地址
  55. xxx.xxx.xxx.2
  56. xxx.xxx.xxx.3
  57. #Port table to query // 端口列表,表示想要监听主机的端口(TCP/UDP)
  58. [QueryPort]
  59. 21
  60. 23
  61. 80
  62. #Time out // 超时(未提供)
  63. [TimeOut]
  64. 12345
  65. --------------cut here--------------
  66. 五、命令行参数
  67.     IPMan的命令行参数如下:
  68. 无参数 显示本机以太网址
  69. [-?] 显示帮助信息
  70. [-l[ini] [-ip:sour_ip[:dest_ip]] [-port:sour_port[:dest_port]]]
  71. -l 监听所有信息
  72. -lini 监听信息有IPMan.ini的QueryIP和QueryPort过滤
  73. -ip:sour_ip 过滤掉所有与sour_ip无关的IP包
  74. sour_ip的格式为xxx.xxx.xxx.xxx
  75. -ip:sour_ip:dest_ip 过滤掉非sour_ip与dest_ip之间通讯的
  76. IP包
  77. -port:sour_port 过滤掉所有与sour_port无关的IP包
  78. -port:sour_port:dest_port 过滤掉非sour_port和 dest_ip间通讯的IP包
  79. [qeth:ip_addr]  查询ip_addr对应的以太网址
  80. [-qip:eth_addr] 查询eth_addr对应的IP地址,以太网址的格式为
  81. xx.xx.xx.xx.xx.xx(16进制)
  82. [-fout:output_file] 输出文件
  83. [-fcmd:command_file] 命令文件,用于发送ARP包、建立TCP连接等
  84. 详见命令文件一节
  85. 六、命令文件
  86.     IPMan的命令文件用于发送ARP包、建立TCP连接和接收、发送TCP报文。其格式为:
  87. 命令名 命令参数1 命令参数2 命令参数3 ...
  88.     现在支持的命令有:
  89. SENDARP my_eth targ_eth sour_eth sour_ip dest_eth dest_ip operation
  90. 发送ARP报文。关于ARP报文,请参考TCP/IP协议。
  91. CONNECT my_eth targ_eth sour_ip dest_ip sour_port dest_port tcpid
  92. 建立从sour_ip的端口sour_port到dest_ip的dest_port端口的TCP
  93. 连接。用tcpid作为标识。这个标识将用于下列命令。要注意的是
  94. my_eth(我的以太网址)和targ_eth(目的以太网址)一定要填写。
  95. SENDTCP tcpid tcpmessage
  96. 发送TCP报文。将tcpmessage发送到tcpid指定的连接。tcpmessage
  97. 为一个不含空格的字串。空格或不可显示字符以xxx表示。xxx为
  98. 三位十进制数。
  99. RECVTCP tcpid
  100. 接收由tcpid指定的TCP报文。
  101. CLOSE tcpid
  102. 关闭由tcpid指定的TCP连接。
  103.     以下是一个命令文件的样板。以"#"开始的行是注释行。
  104. --------------cut here--------------
  105. # A sample comment line
  106. SENDARP xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx
  107. xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx 2
  108. CONNECT xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
  109. 1026 21 1
  110. RECVTCP 1
  111. SENDTCP 1 USER32stu21310
  112. RECVTCP 1
  113. SENDTCP 1 PASS32abc1310
  114. RECVTCP 1
  115. SENDTCP 1 BYE1310
  116. RECVTCP 1
  117. CLOSE 1
  118. --------------cut here--------------
  119. 七、输出
  120.     错误输出到屏幕。标准输出可以可以是屏幕或由命令行指定。输出格式为:
  121. xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx  // 源和目的IP地址
  122. xx Byte(s) TCP/UDP/ARP/ICMP Message:message_string
  123. 其中message_string的格式和上节的tcpmessage相同。xx Byte(s)表示实际收到的字节
  124. 数。真正输出的字节数由INI文件指定。
  125. 八、将来
  126.     今后的版本将提供的功能包括建立伪UDP连接,发送和接收UDP报文,发送和接收
  127. ICMP报文等。
  128. 九、感谢
  129.     在本程序和本文档的写作过程中,得到了Thomas F. Divine,Christopher Chlap和yuhj的
  130. 帮助,再此表示感谢 。
  131. 有什么意见或建议,欢迎和我联系。Email:HiHint@hotmail.com
  132. HiHint Apr. 8, 1998