基础以及细节遗留问题
关键技术基础概念
FRIDA
Frida是一个动态代码插桩工具,主要用于执行动态分析。它允许你在程序运行时注入自己的代码或监控执行流程。使用该工具可以实现对应用程序的Hook,监控和修改函数调用和消息传递。
- 适用平台:支持Windows、
macOS、Linux、iOS和Android等多个平台。 - 使用场景:逆向工程、安全评估、
开发与调试等。 - 核心组件:包括一个
核心库以及多个语言绑定(如Python、Node.js)。
🔗52 FRIDA
看需 FRIDA-hook-java
总结:动态分析代码,实现HOOK,监控和修改函数调用,跨平台,调试和逆向。
OLLVM
OLLVM(Obfuscator-LLVM)是基于LLVM框架开发的编译器,提供了额外的代码混淆功能。
- 目的:增强软件的安全性,对抗
静态和动态逆向工程。 - 混淆技术:比如控制流
平坦化、指令替换、假控制流等。 - 应用范围:可以应用于
C/C++/Objective-C等语言编写的软件。
ART
ART(Android Runtime)是Android 4.4及以上版本使用的运行时环境,用于替代Dalvik。
- 优点:提高了应用性能,并减少了
内存占用。 - 工作原理:使用
AOT(Ahead-of-Time)编译,将应用的字节码编译为本地机器码。 - 垃圾回收:优化了
垃圾收集机制,减少了应用占用的内存。
Dalvik
Dalvik是Android 4.4之前版本使用的虚拟机。
- 特点:专为
Android设计,优化了移动设备的资源限制。 - 工作原理:基于
JIT(Just-In-Time)编译执行应用的DEX(Dalvik Executable)文件。 - DEX格式:与标准的Java字节码不同,Dalvik使用专为Android优化的DEX格式。