【问题标题】:Do inline functions make it harder to reverse-engineer the compiled binary?内联函数是否会使对编译后的二进制文件进行逆向工程变得更加困难?
【发布时间】:2011-04-06 09:34:54
【问题描述】:

所以基本上,除了可能的性能影响之外,内联函数对从编译和链接的二进制文件逆向工程程序的难度有什么显着影响吗?

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

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

【问题讨论】:

    标签: c++ reverse-engineering inline


    【解决方案1】:

    是否内联方法的选择不应基于逆向工程的难易程度。内联和非内联之间的区别可以忽略不计。

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

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

    【讨论】:

      【解决方案2】:

      它会降低你的输入和他的输出之间的相似度。不过,这通常不会对他的努力产生太大影响。

      【讨论】:

        猜你喜欢
        • 2012-07-21
        • 2010-09-12
        • 2010-12-06
        • 2012-08-17
        • 2013-10-05
        • 2010-10-04
        • 2023-03-24
        • 2012-01-16
        • 1970-01-01
        相关资源
        最近更新 更多