Well,
由于我对重新设计很感兴趣,到目前为止我在 Android 重新设计上花费了大量时间。
尽管如此,我还是遇到了编译二进制 C 代码 (NDK) 的问题,并且我知道将其反编译回 C/C++ 比将 DEX 文件反编译回或多或少要困难得多。以及Java源代码。
这是什么原因呢?我的意思是字节码由 Dalvik VM 执行,而对于通常的二进制文件,它由真正的处理器直接执行。除了一些额外的模拟层之外,两者非常相似,不是吗?目前我没有看到太大的差异或这个问题的原因。
您是否可以告诉我为什么将普通二进制文件(例如 ELF 或 MS EXE)反编译回 C 源代码更加困难?
Thanks.
简而言之,C/C++ 代码中不包含任何反射信息,并且 C/C++ 具有 Java 编译器不具备的内联函数、宏和展开循环(与 C/C++ 编译器一样) 。还可以广泛地优化 C/C++,以至于您所能做的就是反编译为汇编,因为没有对应用程序自身函数的引用。 (不过可以找到对系统功能的参考。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)