逆向工程 主要用于分析 App 的加密逻辑、安全机制、通信协议、代码结构 等,通常包括 反编译、代码注入、Hook 调试 等方式。
1. 反编译与代码分析
📌 目标:获取应用代码,分析逻辑,寻找漏洞点。
🔹 安卓(Android)常用工具:
• Jadx / JADX-GUI:将 APK 反编译成 Java 代码。
• apktool:反编译 APK 资源文件(XML、Smali 代码)。
• smali/baksmali:将 Dex 转换为可读的 Smali 汇编代码。
🔹 iOS(iPhone)常用工具:
• Hopper / IDA Pro:用于反汇编 iOS 应用(ARM 指令集)。
• class-dump / obfuscator:导出 iOS 应用的类结构。
• Frida / Cycript:动态 Hook iOS 进程,分析函数调用。
2. 动态调试 & Hook
📌 目标:拦截 App 的运行逻辑,修改数据,绕过安全校验。
🔹 安卓(Android)常用工具:
• Frida:Hook App 运行中的 API 调用,修改数据。
• Xposed 框架:插桩 Hook 系统函数,注入自定义代码。
• Android Emulator:在模拟器环境下调试应用,修改数据流。
🔹 iOS(iPhone)常用工具:
• Frida + objection:Hook iOS 进程,绕过指纹、越狱检测。
• LLDB 调试:分析应用内存结构,修改关键变量。
🔹 常见绕过点:
• 绕过 Root/越狱检测(通过 Hook isRooted() 或 jailbreakCheck())。
• 绕过 SSL Pinning(拦截 HTTPS 请求,查看明文数据)。
• 修改支付验证逻辑(Hook isPaymentSuccess() 直接返回成功)。
二、App 渗透测试手段
渗透测试 主要针对 API 接口、身份认证、加密存储、网络通信 等方面,寻找漏洞并利用。
1. API 接口测试
📌 目标:测试后端接口的安全性,寻找未授权访问、SQL 注入等漏洞。
🔹 常见问题:
• API 未授权访问(越权漏洞,低权限用户可调用高权限 API)。
• RESTful API 参数篡改(修改 user_id 访问他人账户)。
• GraphQL API 漏洞(introspection 启用,可查看所有 API 结构)。
🔹 常用工具:
• Burp Suite:拦截并修改 API 请求,测试参数漏洞。
• Postman:手动测试 API 调用,分析数据交互。
• JWT.io:解析并篡改 JWT 认证 Token,测试鉴权机制。
2. 数据存储安全
📌 目标:寻找存储在本地的敏感数据,如密码、Token、加密密钥。
🔹 安卓数据存储:
• SharedPreferences(明文存储 Token,易被提取)。
• SQLite 数据库(可能包含用户信息、聊天记录)。
• KeyStore(加密存储 Token,但可能被 Root 绕过)。
🔹 iOS 数据存储:
• NSUserDefaults(可能包含敏感信息)。
• Keychain(存储密码和 Token,但可被 Hook 读取)。
🔹 常用测试工具:
• adb shell / SQLite3(安卓环境中读取数据库)。
• iFunBox / iExplorer(导出 iOS App 沙盒数据)。
• Frida + dumpKeychain(导出 iOS Keychain 中存储的数据)。
3. 网络通信抓包 & SSL Pinning 绕过
📌 目标:拦截应用网络请求,获取明文数据,分析加密逻辑。
🔹 常见攻击方式:
• 中间人攻击(MITM):劫持 HTTPS 流量,解密通信数据。
• SSL Pinning 绕过:通过 Hook 修改证书校验逻辑,使抓包工具可拦截 HTTPS。
• 流量回放(Replay Attack):捕获 API 请求并重放,测试支付或身份认证漏洞。
🔹 常用工具:
• Burp Suite + MitM Proxy(拦截 HTTPS 流量)。
• tcpdump / Wireshark(抓取网络数据包)。
• Frida SSL Bypass 脚本(绕过 SSL Pinning 机制)。