修改dll导出(符号表)。我想混淆函数名称

时间:2009-11-09 00:00:33

标签: c++ dll compiler-construction winapi linker

我有第三方dll,我想更改符号名称。这可能吗?我不希望竞争对手知道我的产品使用什么组件。我没有dll的来源。

2 个答案:

答案 0 :(得分:1)

在链接和运行时期间,使用dll绑定可执行文件需要符号表。它通常包含装饰的函数名称和序数。可以仅使用序数。如果要构建库,则可以定义.def文件以控制符号表。但如果这是预先建立的第三方图书馆,那可能很难走。当然一切皆有可能,但我怀疑这是值得的。

如果你是绝望的,我会尝试在十六进制编辑器中修改装饰函数名称中的字母,查找此函数序数值,然后尝试使用GetProcAddress与此函数的序数。

答案 1 :(得分:0)

不是没有修改二进制文件,如果DLL被签名,那么这将使签名无效。

即使没有签名,也可能违反管理DLL使用的许可协议。