将导出添加到DLL而不重新编译它

时间:2015-09-24 14:13:51

标签: windows assembly dll dllexport

我有一个我想使用/调试的DLL。我没有来源。

与IDA一起看,我找到了三件事:

  1. DllMain什么都不做
  2. 我需要的代码自包含在只调用少量Windows API的函数中。它没有引用该DLL中的任何其他内容。
  3. 该自包含功能导出
  4. 我可以提取汇编代码并将其链接到C程序,但我想知道:

    是否可以(以及如何)在不重新编译的情况下将条目添加到现有DLL的导出表中?

1 个答案:

答案 0 :(得分:1)

是的,您可以这样做,但大多数工具都不支持此功能。例如,使用CFF Explorer,可以更轻松地将现有导出转换为您想要的导出。只需编辑功能RVA和导出的名称。由于您只需要一件事,因此您不应该删除其他一些导出。

您甚至可以使用十六进制编辑器执行此操作,因为它不涉及移动重建标题的任何内容,它只是一个就地编辑。