Windows 64位驱动编程基础
2021-05-12 16:29
标签:环境 网站 数据 order 外挂技术 settings 时间 view 而且 新的开始: 目标是win64驱动编程与rootkit, 外挂技术从32bit到64bit的. Windows漏洞分析与挖掘, php代码审计 Win64编程 32位系统逐渐淘汰,转到64位编程相当重要. 但苦于64位驱动编程网上的资料比较杂乱 这里打算写写关于64位驱动编程的内容,当然大部分内容都是从网上搜集过来的,然后汇集到一起好用来学习. 双机调试, 加载驱动工具,debgview工具, win10重启后禁用驱动签名. 重启后加载驱动 双机调试: 在win7虚拟机关机状态添加一个基于命名管道的串口,然后设置另一端时应用程序,然后 执行下面命令 64系统开始有个驱动签名机制,没有通过微软签名的驱动无法加载, 我们调试时需要禁用它. 开机按f8后有个禁用驱动签名启动选项, 选择它启动即可. bcdedit /dbgsettings serial baudrate:115200 debugport:1 (最后的1表示虚拟机中设置的com1) bcdedit /copy {current} /d debug (记住这里返回的id号,下面用到) bcdedit /displayorder {current} {ID} 这里的ID设置为第2条命令返回的id bcdedit /debug {ID} ON 这里的ID设置为第2条命令返回的id 重启即可. 对于ULONG 在64编译时自动转为ULONG64 如果是ULONG_PTR 则编译器自动帮我们转换 无类型指针使用PVOID64. 通过KdPrint打印时, %x不用而用%p . 从xp到windows7 64位 像EPROCESS等结构体也有变化,通过windbg可以查看比较. 对于驱动代码来说, 因为那些数据类型都有2个版本:以32结尾和以64结尾,它通过在不同环境编译时自动转到目标类型 说白了,就是微软为了让系统更安全, 不能随随便便就能hook和inline,不能随随便便就能通过修改EPROCESS来隐藏进程. 这家伙每隔一段时间对系统关键文件,内存区域进行CRC校验,发现不对立刻进行0x109蓝屏. 而且它自己藏在内存中不好通过解决它来绕过patchguard. https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x109---critical-structure-corruption 上面的网站有列出的被其保护的内容. 未完待续....... Windows 64位驱动编程基础 标签:环境 网站 数据 order 外挂技术 settings 时间 view 而且 原文地址:http://www.cnblogs.com/freesec/p/7571454.html