请教一个问题

C/C++本地代码调试

请教一个问题


nevergone 2008-12-15, 18:29 下午
procexp查看system进程属性,
在thread选项卡中,
能够看到线程是属于哪个驱动模块的,
这样能在ring3下实现吗?
ring0下可以先取得内核模块的地址,再通过ETHREAD结构的StartAddress比较得到,
有人说可以考虑用调试API来获取,想问下有没有这样的API?

Re: 请教一个问题


格蠹老雷 2008-12-16, 13:14 下午

可以使用Process Status API(实现在PSAPI.DLL中),其中的EnumDeviceDrivers用来获取驱动程序列表和每个驱动程序的基地址。Undocumented Windows 2000 Secrets中有详细的介绍。

 

 

Re: 请教一个问题


nevergone 2008-12-16, 18:30 下午
谢谢Raymond
那如何获取线程的启动地址呢
用zwqueryinformationthread ThreadQuerySetWin32StartAddress获取的是WIN32启动函数,对于内核线程,这个值为0.
偶搞不懂procexp是怎么获取的,不知道是不是在ring0下获取的
ring3下偶想不出什么方法来

Powered by Community Server Powered by CnForums.Net