基于Frida-RPC模拟执行so文件
在 13.8 节中,我们使用 IDA Pro 对 so 文件进行了逆向处理,还原了其中的一些逻辑,把汇编代码转化为了可读性更好的 C/C++ 代码,再加以适当的动态调试,便找出了 so 文件中隐含的加密算法。
但 so 文件本身也可以设置一定的保护措施。我们已经在 11.1 节了解了 JavaScript 的混淆机制,混淆之后的 JavaScript 代码可读性变得非常差,会给我们分析带来很大的难度。同理,如果在 so 文件中添加了一些混淆机制,那么 so 文件内部的代码逻辑也会进一步变得不可读,即使把其内容转化为 C/C++ 代码,也难以阅读和分析,这就是 Native 层的混淆。
在 Native 层实现混淆,常用的技术是 OLLVM,即针对 LLVM 的代码混淆工具。