【发布时间】:2011-05-13 16:07:00
【问题描述】:
出于某些原因,我希望能够微调为我的 C++ 程序生成的最终可执行文件——细化到单个指令。我记得,GCC 应该生成一些文本汇编器文件作为中间输出,然后再将其提供给汇编器以生成最终的二进制目标文件。
我是否可以提取此汇编器源代码,以编程方式对其进行编辑并将此修改后的版本提供给最终汇编器以生成我的自定义目标文件?我的目标是 Windows 平台。
MSVC++ 是否支持类似功能?
如果您想知道为什么,部分原因是通过包含我们的自定义多态代码生成逻辑来防止逆向工程。另一个原因是在分发给客户的每个副本中创建隐藏标识,以阻止任何人破解我们的保护并分发他的破解版本。
【问题讨论】:
-
你为什么不直接用汇编写代码?!
-
你总是可以反汇编你的代码(使用像 IDA 或 Win32DAsm 这样的反汇编程序)并重新组装它,但我真的不明白这样做的意义。想详细说明您的目的吗?也许还有其他的、不那么西西弗式的方法来做你想做的事……
-
您的代码有价值的机会几乎为零。我不是在侮辱,我的意思是所有代码或多或少都具有零货币价值。而且我不清楚你是否理解“多态”的含义。
-
复制保护也是浪费时间。你听起来像是回到了 1980 年代。
-
@JavaMan 我还没有投票给你。但是您建议的做法是浪费时间和精力。专注于为您的产品增加价值,而不是想方设法阻止人们使用它。