用标准LoadLibrary替换PE文件中的导入表

时间:2010-04-03 16:46:56

标签: dllimport

我有一个可执行(PE)文件,用于加载导入表中表示的dll文件... 让我们说: PEFile.exe Modules.dll

我的问题是如何从导入中删除Modules.dll的import_descriptor并通过loadLibrary完成其工作而不依赖于导入表并且不破坏文件??? ...

我的更大问题是他无法理解导入物是如何工作的...... 在加载器读取他需要执行导入的信息之后,我相信他使用了LoadLibrary,GetProcAddress API ...... 但我不能低估他用指针做的事情...... 他把它们放在记忆中的某个地方......然后才叫它们?!?

我在网上找到的所有论文都解释了导入表的结构, 但我没有找到一篇解释它是如何工作并被使用的论文......

我希望你冷漠了解我的胡言乱语......

谢谢!

1 个答案:

答案 0 :(得分:0)

那么,你需要能够进行PE文件手术的代码。

您可以调查this library。我自己从未使用过它。我多年前为此目的编写的代码不可用。

对于手头的具体问题,您很可能会删除导入表条目。另一方面,对目标代码进行后期编辑,调用LoadLibrary,然后使用结果将是手动重组的一项重大壮举。除非你对汇编级编程和所有调用约定都有很多专业知识,否则我不推荐它。