Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1892回复:8

[求助]如何取得ndis截获的数据包的源mac地址?[40]

楼主#
更多 发布于:2003-03-24 16:52
如何取得ndis截获的数据包的源mac地址?
http://www.ntkernel.com/products/winpkfilter.shtml上面的例子我试了试,是可以取得的,可不知如何取得?
网上找了一点资料,是使用NdisRequest,稍作加工如下:
NDIS_STATUS st;
NDIS_REQUEST req;
req.RequestType = NdisRequestQueryInformation;
req.DATA.QUERY_INFORMATION.Oid = OID_802_3_PERMANENT_ADDRESS;
req.DATA.QUERY_INFORMATION.InformationBufferLength = 6;
req.DATA.QUERY_INFORMATION.InformationBuffer = &pMacBuf;
NdisRequest(&st,NdisBindingContext, &req);
if(st == STATUS_SUCCESS)
    .........
对于发送的包不知如何使用??

[编辑 -  3/25/03 by  Ralfy]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-24 20:00
如何取得ndis截获的数据包的目的mac地址?
http://www.ntkernel.com/products/winpkfilter.shtml上面的例子我试了试,是可以取得的,可不知如何取得?
网上找了一点资料,是使用NdisRequest,稍作加工如下:
NDIS_STATUS st;
NDIS_REQUEST req;
req.RequestType = NdisRequestQueryInformation;
req.DATA.QUERY_INFORMATION.Oid = OID_802_3_PERMANENT_ADDRESS;
req.DATA.QUERY_INFORMATION.InformationBufferLength = 6;
req.DATA.QUERY_INFORMATION.InformationBuffer = &pMacBuf;
NdisRequest(&st,NdisBindingContext, &req);
if(st == STATUS_SUCCESS)
    .........
对于发送的包不知如何使用??


只要将网卡设置位混杂模式,收发的包你就都能收到的,到时你自己抓包来分析就可以了。
在仔细看ddk的文档~~~
[color=red]大头鬼! :P[/color]
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-25 08:23
看DDK文档,这等于没说。
DDK文档那么长,没有示例,谁都知道DDK文档里所有的资料都有,一有问题就说看DDK文档,这要论坛干什么,不如不回我。
我问一个问题也是自己找了许多资料没找到才问的。。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-25 09:07
在ndis里面截获的数据包都有mac头,源和目的的mac都在里面。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-25 09:08
大家也都是看的ddk
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-25 11:15
在ndis里面截获的数据包都有mac头,源和目的的mac都在里面。

这个mac头是不正确的,我在网关机上捕获的工作站的数据包,SRC mac头中却是本机的mac,而不是工作站的mac,而且捕获的数据包是在nat转换前的.

大家也都是看的ddk

DDK我也看,不过是以参考为主的,我学习主要是看书和代码.
当然,可能你们学习以DDK为主,不过我觉得好像太难了吧.
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-25 11:39
 
这个mac头是不正确的,我在网关机上捕获的工作站的数据包,SRC mac头中却是本机的mac,而不是工作站的mac,而且捕获的数据包是在nat转换前的.

你不在网关那台机器上抓包,去别的机器抓包呢?mac头在传输的过程中应该是变的。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
Ralfy
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2013-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-25 13:05
你不在网关那台机器上抓包,去别的机器抓包呢?mac头在传输的过程中应该是变的。

可,唉.. 我的程序就是网关版的 :(
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-25 13:42
你能得到发送的包的源IP,这个在nat前是不会变的,然后发一个ARP,查询一下该IP对应的mac地址。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部