请教关于API HOOK的一个问题
htron 2005-02-22 10:23:42 先说明一下,我是想通过修改IAT的方式进行API HOOK,全在用户模式进行,不使用KMD。以下是简单的流程:
1、采用CreateRemoteThread方式向目标进程注入了一个DLL,成功;
2、在DLL入口函数中,找到当前进程的PE header及IAT,成功;
3、找到相应的API地址替换成自己的函数,就在这里出了问题,IAT所在的那个SECTION是只读的,不允许写入。
据我了解,通常IAT是存在于.idata段,这个段是可以写入的。但仔细看了目标程序后发现,它没有.idata段,而是有一个只读的.rdata段,IAT就放在这个段里。
想问的是:
1、在遇到这种情况的时候,用户模式下通过修改IAT进行API HOOK的方法是不是就行不通了?如果能行的话,应该怎么办呢?(不能在目标进程启动前修改SECTION属性)
2、这种没有.idata段的程序是不是很常见,它的产生是否跟链接选项有关?(测试用的目标程序是在RadAsm下,使用MASM32编译的,为默认链接选项)
谢谢!