本文共 918 字,大约阅读时间需要 3 分钟。
解决了驱动加载的问题之后,下一步就是抓包了,在NDIS的很多接口中都设置了HOOK,发现根本就没有进入,毕竟驱动是Windows上的,闭源,也无法看到逻辑。Windows驱动只和NT内核以及NDIS在两个地方接口:1.中断,这个是避不开的;2.和Linux的接口,也就是NDIS调用上层驱动的地方(NDIS函数NdisMIndicateReceivePacket里面调用了netif_rx),中间的全部都是厂商自己实现掉的,这些功能就包括802.11帧和802.3帧的转换,于是根本没有办法靠挂钩NDIS函数来完成802.11帧的抓取,于是想了一个比较猛的方法,那就是挂钩中断,毕竟ndiswrapper是置于Linux内核内部的,它的入口就是中断,于是挂钩了中断的ISR,这样就意味着我必须自己去分析直接从中断里面出来的数据...方法有二,第一就是自己读取,交给Windows原有的驱动ISR,第二就是先调用Windows原有驱动的ISR,然后再自己分析。
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1268944
转载地址:http://omkdl.baihongyu.com/