zoukankan      html  css  js  c++  java
  • 内核中设置混杂模式(NDIS_PACKET_TYPE_PROMISCUOUS)

    在passthru中

    MPSetInformation添加以下代码

    if( Oid == OID_GEN_CURRENT_PACKET_FILTER && InformationBufferLength >= sizeof(ULONG) )
      {

                。。。。。。。

         *(ULONG*)InformationBuffer |= NDIS_PACKET_TYPE_PROMISCUOUS;       

                。。。。。。。。。

       }

    。。。。。。。。。。。。。

    NdisRequest(&Status,
         pAdapt->BindingHandle,
         &pAdapt->Request);

    以上为简便做法

    下面是用ioctrl来设置

    //设置为混杂模式
        RtlZeroMemory(&pAdapt->Request, sizeof(NDIS_REQUEST));
        pAdapt->PACKET_FILTER=NDIS_PACKET_TYPE_PROMISCUOUS | NDIS_PACKET_TYPE_DIRECTED |NDIS_PACKET_TYPE_MULTICAST |NDIS_PACKET_TYPE_BROADCAST;
        pAdapt->Request.RequestType=NdisRequestSetInformation;//设置请求命令
        pAdapt->Request.DATA.SET_INFORMATION.Oid = OID_GEN_CURRENT_PACKET_FILTER;
        pAdapt->Request.DATA.SET_INFORMATION.InformationBuffer = &pAdapt->PACKET_FILTER;
        pAdapt->Request.DATA.SET_INFORMATION.InformationBufferLength = sizeof(pAdapt->PACKET_FILTER);
        
        NdisRequest(&status,pAdapt->BindingHandle,&pAdapt->Request);//发送请求  

  • 相关阅读:
    c语言分支和循环语句
    C语言基础知识
    磁盘管理-fdisk
    搭建Discuz
    KVM创建虚拟机相关操作
    WINRAR exe 捆绑 小游戏
    linux vi编辑器&文件目录管理
    灰鸽子木马的功能体验
    sqlalchemy 级联删除
    sqlalchemy 多对多
  • 原文地址:https://www.cnblogs.com/ahuo/p/1493288.html
Copyright © 2011-2022 走看看