-
-
记录VS2022写驱动时候一次离谱的BUG
-
发表于:
2023-5-5 17:52
18888
-
如题,今天在完善一个驱动
(VS刚升级成VS2022,记住这句话,下面要考)
然后按照国际惯例,放到不同版本的虚拟机跑一下,看看会不会蓝屏,我先放到了WIN11 22H2里面(也是和我物理机一个版本),发现正常运行。
于是想着放到WIN 10 19044, WIN10 1903 WIN10 1909这几个经常用的版本跑一下;
然后离谱的事情出现了,在WIN 10 1909的时候,驱动死活加载不上,DrverEntry也进不了,一直返回加载失败;
这个时候,我开始怀疑是不是TargetOsVersion写错了,因为有可能因为这个导致有些函数没有导出加载失败,然后找到DriverSetting,发现
看起来没有任何问题,问了朋友,他告诉我
于是我感觉把驱动拖到IDA里面,看看这个B Y D驱动导入了那些函数,然后发生下面的情况;
我心想,这不看起来一切正常吗,这些导出函数无论哪个版本的Windows都应该有啊,看不出来任何端倪,我只能用最笨的方法,一个一个的查,看看这些函数到底到没导出;
其实,查到一半,我就基本上猜到了是啥出问题了,大家在用VS2022的时候,经常会有这个警告
意思是让你别用ExAllocatePoolWithTag
,作为一个懂事的好孩子,我从来都是最遵循警告爸爸的话了,但是没想到这东西坑了我,因为他在低版本的win10根本不导出!
如图
好吧好吧,问题到这就算解决了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!