我有一个可执行(PE)文件,用于加载导入表中表示的dll文件... 让我们说: PEFile.exe Modules.dll
我的问题是如何从导入中删除Modules.dll的import_descriptor并通过loadLibrary完成其工作而不依赖于导入表并且不破坏文件??? ...
我的更大问题是他无法理解导入物是如何工作的...... 在加载器读取他需要执行导入的信息之后,我相信他使用了LoadLibrary,GetProcAddress API ...... 但我不能低估他用指针做的事情...... 他把它们放在记忆中的某个地方......然后才叫它们?!?
我在网上找到的所有论文都解释了导入表的结构, 但我没有找到一篇解释它是如何工作并被使用的论文......
我希望你冷漠了解我的胡言乱语......
谢谢!
答案 0 :(得分:0)
那么,你需要能够进行PE文件手术的代码。
您可以调查this library。我自己从未使用过它。我多年前为此目的编写的代码不可用。
对于手头的具体问题,您很可能会删除导入表条目。另一方面,对目标代码进行后期编辑,调用LoadLibrary,然后使用结果将是手动重组的一项重大壮举。除非你对汇编级编程和所有调用约定都有很多专业知识,否则我不推荐它。