App逆向初探
📚 本文将带你从「静态看APK」到「动态改行为」,入门移动端安全分析/爬虫前置技能。
课程目标
用3分钟明确本次学习的可落地成果:
- 30秒快速拆解APK核心组成
- 1分钟选定场景启动反编译工具
- 复制粘贴即可用的3类Frida Hook脚本(SSL/Root/通用函数)
- 加密App抓包+还原签名逻辑的完整4步流程
1. APK解析基础
1.1 APK核心结构「先拆再看」
很多新手以为APK是「特殊的二进制文件」,其实它就是加了签名的标准ZIP压缩包!我们可以直接用解压工具或者Python原生库扫描:
高频接触的7个核心目录/文件:
新手友好的「一键扫描脚本」(Python原生)
无需安装额外工具,快速定位敏感文件:
1.2 反编译三剑客「按需选用」
选对工具能节省90%的时间!按推荐优先级排序:
jadx-gui 核心使用(超简单!)
- 下载:jadx GitHub Release页,选对应系统的压缩包
- 运行:
- 搜索技巧:顶部搜索栏选「Method Name」「Class Name」「Text」,输入
sign/encrypt/OkHttpClient快速定位
2. Hook技术之神:Frida
Frida是无需重打包、无需Root(可选)、跨平台的「动态行为注入工具」——简单来说就是在App运行时,把一段JS代码塞进去,修改它的函数逻辑!
2.1 5分钟快速搭建环境
PC端(Python3+已装好)
设备端(以Android真机为例,Root/非Root都可以,但新手推荐Root机)
- 查看设备ABI:终端输入
adb shell getprop ro.product.cpu.abi - 下载对应版本的frida-server:frida GitHub Release页(文件名格式:
frida-server-版本号-android-ABI) - 推送并启动:
- 验证连接:
2.2 复制粘贴即可用的3类Frida Hook脚本
脚本1:通用Java方法Hook(打印入参/返回值/调用栈)
快速定位加密函数的输入输出和调用来源,新手必备!
运行方式:
脚本2:SSL Pinning绕过(通用版,覆盖90%+场景)
抓包前的第一道坎!这个脚本覆盖了OkHttp3、Android 7+系统证书、WebView的Pinning:
脚本3:Root检测绕过(通用基础版)
抓包+Hook前的第二道坎!这个脚本覆盖了常见的文件检查、系统属性检查、Build字段检查:
3. 实践思路:4步快速分析加密App
假设目标App有sign签名参数和SSL Pinning,结合上面的工具和脚本,完整流程如下:
- 静态定位:用jadx-gui打开APK,搜索
sign/encrypt/OkHttpClient定位SignUtils.getSign()和网络请求逻辑 - 环境准备:配置Burp Suite代理,安装CA证书到设备用户证书目录
- 动态启动:从Frida启动App并同时运行双脚本:
- 还原逻辑:操作App触发请求,Burp抓包看sign的实际值,Frida打印getSign的入参,手动写Python脚本还原签名逻辑
4. 合法使用声明
本文内容仅用于合法的安全研究、自有App的漏洞排查、教学演示,不得用于未经授权的App逆向、数据窃取、商业盈利等非法用途,违反者需自行承担所有法律责任。
本章总结
- 静态分析:APK是ZIP压缩包,jadx-gui首选快速看Java代码
- 动态分析:Frida无需重打包,通用脚本覆盖90%+入门场景
- 入门实践:先抓包(绕SSL),再Hook(看入参返回),最后还原逻辑
后续可以深入学习:smali语法修改、so层Hook(Frida Interceptor)、Frida高级隐藏(对抗反调试)。

