找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: ctx

[教程] 基于WdiWiFi(Win10)的无线驱动修改支持Win7示例

 荐  火 [复制链接]
发表于 2026-8-24 11:05:34 | 显示全部楼层
老大,请问怎么安装,直接安装带签名的显示39报错。

点评

ctx
另帖回复。  发表于 2026-8-26 10:23
回复

使用道具 举报

发表于 2026-9-14 00:07:03 | 显示全部楼层
辛苦了,内容详细,收藏了。
回复

使用道具 举报

发表于 2026-9-14 00:22:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2026-9-25 22:38:13 来自手机 | 显示全部楼层
对了大佬,关于i217/i218/i219的win7驱动移植给vista,在windbg里又该用什么指令分析并修改不支持的函数呢?

点评

ctx
在vista桌面环境先用dependency walker查询不支持函数,解决掉它们,然后尝试安装和运行。出现错误代码的话,根据错误代码进行针对性下断分析。例如代码39是IAT没有处理完毕,代码37是DriverEntry失败,代码10是处理  详情 回复 发表于 2026-9-25 23:09
回复

使用道具 举报

 楼主| 发表于 2026-9-25 23:09:57 来自手机 | 显示全部楼层
本帖最后由 ctx 于 2026-9-25 23:23 编辑
MC魔方哥 发表于 2026-9-25 22:38
对了大佬,关于i217/i218/i219的win7驱动移植给vista,在windbg里又该用什么指令分析并修改不支持的函数呢 ...


在vista桌面环境先用dependency walker查询不支持函数,解决掉它们,然后尝试安装和运行。出现错误代码的话,根据错误代码进行针对性下断分析。例如代码39是IAT没有处理完毕,代码37是DriverEntry失败,代码10是处理IRP_MJ_PNP/IRP_MN_START_DEVICE失败(InitializeHandlerEx回调函数失败)。
windbg动态分析前,如有条件,要拿IDA先分析驱动sys,搞清各去入口函数,更有利于找准调试断点。
建议看一下这里,是自顶向下分析的起始点,参数(如请求的ndis版本号)填不合适肯定先37。
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/ddi/ndis/nf-ndis-ndismregisterminiportdriver
最难分析的是不报错、不蓝屏、功能异常的问题。例如i219驱动移植win7时,第一次遇到的是发包不正常(检验字节填00问题),这就需要从SendNetBufferListsHandler回调函数入手分析,先摸清它的处理逻辑,找到关键位置下断点分析。后来又遇到重新插拔网线速率协商异常问题,通过日志分析+调试,才找出原因加以解决。
再补充一下驱动加载和设备运行的顺序,了解各错误代码可能出现的次序:
1.设备注册表找到服务,加载其sys——IAT不合适代码39,数字签名不合适代码52,服务禁用代码38
2.sys执行DriverEntry——失败代码37或3
3.调用sys的AddDevice——失败代码31
4.发送IRP_MJ_PNP/IRP_MN_FILTER_RESOURCE_REQUIREMENTS——资源分配失败代码12
5.发送IRP_MJ_PNP/IRP_MN_START_DEVICE——启动设备失败代码10
6.发送IRP_MJ_PNP/IRP_MN_QUERY_DEVICE_STATE——反馈失败结果代码43
设备管理器错误代码在DDK和nt5src里都有定义。
回复

使用道具 举报

发表于 2026-9-27 08:56:07 来自手机 | 显示全部楼层
ctx 发表于 2026-9-25 23:09
在vista桌面环境先用dependency walker查询不支持函数,解决掉它们,然后尝试安装和运行。出现错误代码的 ...

大佬,关于e1d62x64(win7 i219驱动),目前通过静态分析查出来了驱动在vista下不支持的函数,:
ntoskrnl.exe里面不支持的函数如下:
IoGetAffinityInterrupt
KeGetProcessorIndexFromNumber
KeGetProcessorNumberFromIndex
KeQueryHighestNodeNumber
memcpy_s
sprintf_s
strcpy_s
vsprintf_s
Ndis.sys里面不支持的函数如下:
NdisGroupActiveProcessorCount
请问这些函数在Ida pro 8.3里面如何重写
另外还有一个版本是移植e1d51x64(win xp x64)的82579驱动,静态分析没有找到不支持的函数,并且能够成功驱动i217网卡,但是i218网卡却报错10,查驱动入口点后无法跳转下一步指令,没找到InitializeHanderEX回调地址,该如何解决

点评

ctx
前几个是跟CPU组有关的,win7貌似支持的CPU核心数增加了,具体需看这些函数在win7内核如何实现的,可能在vista里有降级办法实现。 中间几个是c库函数,理论上也可以自编实现,或者驱动里本来就有,不确定。 最后一个  详情 回复 发表于 2026-9-27 22:25
回复

使用道具 举报

发表于 2026-9-27 09:03:01 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2026-9-27 22:25:04 来自手机 | 显示全部楼层
MC魔方哥 发表于 2026-9-27 08:56
大佬,关于e1d62x64(win7 i219驱动),目前通过静态分析查出来了驱动在vista下不支持的函数,:
ntoskrn ...

前几个是跟CPU组有关的,win7貌似支持的CPU核心数增加了,具体需看这些函数在win7内核如何实现的,可能在vista里有降级办法实现。
中间几个是c库函数,理论上也可以自编实现,或者驱动里本来就有,不确定。
最后一个这里可参考:https://learn.microsoft.com/zh-cn/windows-hardware/drivers/network/obsolete-interfaces-in-ndis-6-20
低硬件驱动套在高硬件上,工作不正常是很可能的,这类问题很难解决,甚至有可能无法解决。
回复

使用道具 举报

 楼主| 发表于 2026-9-28 13:04:47 来自手机 | 显示全部楼层
补充一下找回调函数的方法,IDA找NdisMRegisterMiniportDriver,在调用它的上级函数F5,然后对照微软的函数定义,在相应参数上按Y,输入结构类型,即可找到所需的函数。
NDIS_STATUS NdisMRegisterMiniportDriver(
    PDRIVER_OBJECT  DriverObject,
    PUNICODE_STRING  RegistryPath,
    NDIS_HANDLE  MiniportDriverContext,
    PNDIS_MINIPORT_DRIVER_CHARACTERISTICS  MiniportDriverCharacteristics,
    PNDIS_HANDLE  NdisMiniportDriverHandle
);
参数4就是关键参数,驱动大概率是在函数内堆栈初始化结构体,所以F5后在调用处把参数4类型改为NDIS_MINIPORT_DRIVER_CHARACTERISTICS,相关回调函数将一目了然。
回复

使用道具 举报

发表于 2026-9-28 22:14:28 来自手机 | 显示全部楼层
ctx 发表于 2026-9-28 13:04
补充一下找回调函数的方法,IDA找NdisMRegisterMiniportDriver,在调用它的上级函数F5,然后对照微软的函数 ...

大佬,可以加下qq吗,我把分析的驱动sys文件发给你,毕竟ida pro 8.3我还用的不熟练,重写函数也比较困难
回复

使用道具 举报

发表于 2026-9-28 22:14:55 来自手机 | 显示全部楼层
MC魔方哥 发表于 2026-9-28 22:14
大佬,可以加下qq吗,我把分析的驱动sys文件发给你,毕竟ida pro 8.3我还用的不熟练,重写函数也比较困难 ...

2466968418,qq名称和论坛上同名

点评

ctx
收到  详情 回复 发表于 2026-9-29 10:42
回复

使用道具 举报

 楼主| 发表于 2026-9-29 10:42:35 来自手机 | 显示全部楼层
MC魔方哥 发表于 2026-9-28 22:14
2466968418,qq名称和论坛上同名

收到
回复

使用道具 举报

发表于 昨天 17:05 | 显示全部楼层
大师,您可不可以修改联发科7925无线网卡win11驱动用在win10上?可以有偿修改!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-10-9 06:07

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表