首页
社区
课程
招聘
kdvm源代码
发表于: 2019-8-18 13:43 3981

kdvm源代码

2019-8-18 13:43
3981
还是逆向kdusb3的时候,无意中翻VirtualBox文档发现一种快速内核调试的办法,详细描述见2.31. Paravirtualized Debugging
说的是Windows8之后带了一个kdvm.dll,可以利用Hyper-V的Guest Debug半虚拟化调试方式,用网络传输数据,速度很快。这个kdvm.dll可以复制到Windows7上使用。(Windows8带的kdnet.dll也能复制到Windows7上用,改动一个字节LoadOptions成员的偏移,然后修正CheckSum。能正常连接Windbg断下来单步调试什么的,但Windows7 Logo变成最大时就会死机,不知道为什么。)

因为Windows8正式版自带的kdvm.dll太复杂,我逆向的是Developer Preview带的kdvm,特别简单,有个breakin的bug我已经修复,初始化、发包、收包的逻辑参考附件中的源代码。

使用前要先设置VirtualBox
显示半虚拟化支持
VBoxManage.exe showvminfo "win7x86"
有下面这一行就行,如果没有就在虚拟机设置窗口设置一下半虚拟化接口
Effective Paravirt. Provider: HyperV
关闭虚拟机的情况下设置
VBoxManage.exe modifyvm "win7x86" --paravirtdebug "enabled=1,port=50001"

设置被调试电脑
bcdedit /set loadoptions host_ip=5.5.5.5,host_port=50001,encryption_key=9.9.9.9 (这里的IP和key没啥用,随便写,格式合法就行;port也没用,在49151-65536之间就行)
bcdedit /set dbgtransport kdvm.dll
bcdedit /set debug on

针对Windows2003
boot.ini文件添加/debug /debugport=COM1 /baudrate=115200 (COM几无所谓,bandrate写不写也没事)
复制kdvm.dll到system32目录下,改名成kdcom.dll (先删除dllcache目录,否则WFP会把文件覆盖回去)

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
游客
登录 | 注册 方可回帖
返回
//