如何修改exe/dll的导入表?
例如,a.dll里面依赖shell32.dll的ShellExecuteA,我想把它给修改成b.dll里的ShellExecuteA这个怎么修改? 1.studyPE+
2.LoadPe bester 发表于 2023-1-2 14:44
1.studyPE+
2.LoadPe
studype+只能增删,没有直接修改名字的方法,有啥能直接修改它的名字吗,增删完偏移不一样,会有问题吗?
loadpe的话……好像不能修改dll Pammer 发表于 2023-1-2 15:00
studype+只能增删,没有直接修改名字的方法,有啥能直接修改它的名字吗,增删完偏移不一样,会有问题吗? ...
这么复杂?那你做iat hook吧,把原来的iat直接跳到中转函数,在中转函数可以任意调用你想要的api 看来你对导入表的结构原理还是不太清楚。PE文件的导入表,其实就是告诉系统加载程序用到了哪些dll,提前加载到内存,然后就是遍历iat表,把相应地址指向的函数名或者序号,从已经加载到内存的dll中找到内存地址,并填充进去。导入表完全可以手动修改,象你说的情况,你要先给a.dll增加一个动态库B.DLL,以及需要的导入函数,用现成的工具也可以,文件一般会增加一个区段,但不会影响运行。然后在IAT结构里把原函数的绝对地址改成你新加的函数绝对地址就可以了,很简单的。
页:
[1]