luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2160回复:19

怎么判断包类型

楼主#
更多 发布于:2002-05-30 17:11
我对于一点问题比较迷惑。
我已经将Packet的数据信息输出发现并不是所有数据包的以太帧之后都跟随IP包。在这样的情况下。我怎么判断是否是IP包呢?

最新喜欢:

znsoftznsoft
falwind
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2006-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-07 10:20
对于高位在前低位在后的内存字节能否通过一个简单的 pEthHdr = address 来实现? 请高手帮忙。

使用强制类型转换不是不可以,但是在little-endian环境下需要注意字节序的问题。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-04 15:43
对于高位在前低位在后的内存字节能否通过一个简单的 pEthHdr = address 来实现? 请高手帮忙。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-04 12:51
忘记说了是Softice中看到的信息和我的程序是一致的。不知道正确的应该是怎样的。楼上的能否贴一张内存图,让小弟看看。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-04 12:47
在程序中放一个断点,然后从packet从取得buffer从buffer取得virtual address.然后用d命令看这个地址的内容。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-04 12:44
1。你的内存图是用什么工具?
2。在哪里看的?
3。用的什么命令?
4。其他一些可能与这有关的环境。

不知道你是怎么做的的话,可能搞不请你在问什么。

2。在哪里看的?
3。用的什么命令?
按第一贴的“给分”键,给分。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-04 12:40
我看了,packet的virtual address的内容和我输出的一样。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-03 10:50
问题出在你的工具上。你用softice 再看一遍内存可能就明白了。祝你好运!
按第一贴的“给分”键,给分。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-03 10:46
这个内存图是我做的一个看包信息的工具,现在还只能用DriverMonitor看。输出的信息是我机器上以太包的信息。我正在对该信息做研究。据了解整个以太网中的包只要经过我的计算机我网卡就可以收到。我想通过一个工具知道所有同事看了什么网(IP地址)。
fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-03 10:43
1。你的内存图是用什么工具?
2。在哪里看的?
3。用的什么命令?
 


关注!!!
有点意思。。。 呵呵!
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-03 10:39
1。你的内存图是用什么工具?
2。在哪里看的?
3。用的什么命令?
4。其他一些可能与这有关的环境。

不知道你是怎么做的的话,可能搞不请你在问什么。
按第一贴的“给分”键,给分。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-03 10:19
不好意思,其实是一个问题。后一个我把内存图输出了。谢谢。
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-06-03 10:13
但是发现一个问题,在包内的数据不是倒顺排列的。比如IP的proto是0x0800,在内存中不是0008而是0800。如果是这样的话。我自己将地址指针赋给eth头结构就会有问题。请问一下是这样的么。

是这样的网络顺序和MOTOROLA格式一至的。高位在前低位在后的。
至于你后面一个问题我没看懂,能说清楚点。
我思故我在,脑袋不会坏.
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-06-03 10:04
这个是我调试用的数据图,已经用黑框框出来了
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-03 09:54
但是发现一个问题,在包内的数据不是倒顺排列的。比如IP的proto是0x0800,在内存中不是0008而是0800。如果是这样的话。我自己将地址指针赋给eth头结构就会有问题。请问一下是这样的么。
luke_gem
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-06-03 09:19
搞定了,多谢各位大侠
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-06-01 15:15
#define ETH_ALEN 6 /* Octets in one ethernet addr */
#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */
#define ETH_P_ECHO 0x0200 /* Ethernet Echo packet */
#define ETH_P_PUP 0x0400 /* Xerox PUP packet */
#define ETH_P_IP 0x0800 /* Internet Protocol packet */
#define ETH_P_X25 0x0805 /* CCITT X.25 */
#define ETH_P_ARP 0x0806 /* Address Resolution packet */
#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_DEC       0x6000          /* DEC Assigned proto           */
#define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */
#define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */
#define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */
#define ETH_P_LAT       0x6004          /* DEC LAT                      */
#define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */
#define ETH_P_CUST      0x6006          /* DEC Customer use             */
#define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */
#define ETH_P_RARP      0x8035 /* Reverse Addr Res packet */
#define ETH_P_ATALK 0x809B /* Appletalk DDP */
#define ETH_P_AARP 0x80F3 /* Appletalk AARP */
#define ETH_P_IPX 0x8137 /* IPX over DIX */
#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
typedef struct ethhdr
{
unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
unsigned char h_source[ETH_ALEN]; /* source ether addr */
unsigned short h_proto; /* packet type ID field */
}ETHHDR,*PETHHDR;


我思故我在,脑袋不会坏.
flyfox
驱动中牛
驱动中牛
  • 注册日期2001-04-05
  • 最后登录2012-08-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-05-31 21:32
0x0800 == Ethernet->type
一剑西来,天外飞仙
winnix
驱动牛犊
驱动牛犊
  • 注册日期2002-05-14
  • 最后登录2002-11-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-05-31 21:20
分析报头结构?

我想应该是这样吧
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-05-30 17:52
这个应该去翻tcpip的书吧.
111
游客

返回顶部