谢谢张老师,虽然我的问题不是这样,不过你的提示,让我bp api的时候少犯错误。
我最初bp CreateFileA,发现始终拦截不到,开始没有注意,后来才发现到是被windbg弄成了kernelbase上去了。
我的问题,也有些眉目了,大致可能与windows7没有关系。
大致如此,不晓得哪个时候开始,微软也弄起了双进程模式,比如ie8,比如mstsc。
我在xp下安装的是老版本的,而windows7下安装的新版本,所以最初以为是windows7的问题。
我这里想拦截的就是mstsc,我的AppInit_DLLs装载第一个dll的时候是看参数有没有rdp文件,如果有才装载我的apihook。
而现在mstsc改成了双进程模式,第一个进程有参数rdp文件,而它发送消息给svchost,后者再启动一个mstsc,没有带参数rdp,所以我就实质上没有拦截到。
不晓得微软这样做,是否为了安全考虑,不过的确不好调试。
我用windbg启动mstsc,但它却不是真正干活的mstsc,而第2个进程windbg去attach的时候却可能已经跑过了我想拦截的函数了。
只有通过AppInit_DLLs,在这个dll里面sleep,或者人为int 3来拦截,这样的确麻烦些。
|