内联函数是否使得对编译后的二进制文件进行反向工程变得更加困难?

时间:2011-04-06 00:05:35

标签: c++ reverse-engineering inline

基本上,除了可能的性能影响外,内联函数对从编译和链接的二进制文件中反编译程序的难度有很大影响吗?

我的意思是,它应该是,因为1)破解者只看到更多的机器指令,而不是可以理解的“调用XXXXX”,他可能已经发现它做了某件事。 2)内联为编译器提供了更多优化代码的可能性,这甚至更加模糊,对吧?

另外,考虑到inline关键字只是编译器的建议,这真的有多大影响?我们应该打扰吗?我的意思是,他们当然会最终破解它,但如果通过这么简单的措施我们可以让饼干的生活更加艰难,为什么不呢?

2 个答案:

答案 0 :(得分:2)

内联方法的选择与否不应基于逆向工程的容易程度。内联与否之间的差异可以忽略不计。

例外情况是,如果您有任何反盗版代码,内联,甚至使用宏来确保它“内联”可以帮助消除单点故障。

如果您对此感到担心,我建议您查看对二进制文件进行操作的混淆工具。

答案 1 :(得分:1)

它会降低输入和输出之间的相似性。一般来说,这对他的努力一般没有太大影响。