[TOC]
博客
图书
Android应用安全防护和逆向分析
Android安全攻防权威指南
第一行代码(第3版)
Android编程权威指南
文章
汇编
Android
Hook
Unicorn & Unidbg
- Unicorn引擎教程
- Unicorn与Android
- Unicorn 在 Android 的应用
- 使用Unicorn Engine绕过混淆完成算法的调用
- 记一次unicorn半自动化逆向——还原某东sign算法
- ARM64 OLLVM反混淆
- Unidbg模拟执行某段子so实操教程(一) 先把框架搭起来
- SO逆向实战十三篇
- unidbg console debugger 使用
- Unidbg-Linker部分源码分析(上)
- Unidbg-Linker部分源码分析(下)
Frida
- Frida内存检索svc指令查找sendto和recvfrom进行hook抓包
- 进阶Frida–Android逆向之动态加载dex Hook(三)(下篇)
- 记一次frida实战——对某视频APP的脱壳、hook破解、模拟抓包、协议分析一条龙服务
- Frida Android hook
- Frida 使用经验交流分享
- Frida 系列文章
- FRIDA-API使用篇:rpc、Process、Module、Memory使用方法及示例
- FRIDA-API使用篇:Java、Interceptor、NativePointer(Function/Callback)使用方法及示例
- 实用Frida进阶:内存漫游、hook anywhere、抓包
- 安卓 App 逆向课程一之环境配置
- 精品连载丨安卓 App 逆向课程之二逆向神器 frida 的介绍
- 精品连载丨安卓 App 逆向课程之三 frida 注入 Okhttp 抓包上篇
- 精品连载丨安卓 App 逆向课程之四 frida 注入 Okhttp 抓包中篇
- 精品连载丨安卓 App 逆向课程之五 frida 注入 Okhttp 抓包下篇
Xposed
IDA Pro
动态调试
- 深入理解Android逆向调试原理
- JEB动态调试
- 对安卓反调试和校验检测的一些实践与结论
- Android app反调试与代码保护的一些基本方案
- Android APP漏洞之战(10)——调试与反调试详解
AST & 编译技术
视频
抓包
- 为什么Wireshark无法解密HTTPS数据
- Drony配合Charles实现App定向抓包
- Android平台HTTPS抓包解决方案及问题分析
- android系统https抓包问题分析
- Android 开发之避免被第三方使用代理抓包
仓库/脚本
frida
https://github.com/frida/frida
objection - runtime mobile exploration
https://github.com/sensepost/objection
jadx - Dex to Java decompiler
https://github.com/skylot/jadx
FridaContainer
https://github.com/deathmemory/FridaContainer
r0capture - 安卓应用层抓包通杀脚本
https://github.com/r0ysue/r0capture
脱壳
- https://github.com/hluwa/FRIDA-DEXDump
- https://github.com/CodingGay/BlackDex
- https://github.com/dstmath/frida-unpack
靶场
Python库
node库
1 | npm install @babel/core @babel/parser @babel/traverse @babel/generator |
- @babel/core:Babel 编译器本身,提供了 babel 的编译 API
- @babel/parser:将 JavaScript 代码解析成 AST 语法树
- @babel/traverse:遍历、修改 AST 语法树的各个节点
- @babel/generator:将 AST 还原成 JavaScript 代码
- @babel/types:判断、验证节点的类型、构建新 AST 节点等
工具
visUAL2 专业的ARM汇编教学工具
Compiler Explore 强大的在线编译器
AST Explorer
退出进程
- kill(pid, 9)
- android.os.Process.killProcess(android.os.Process.myPid())
- System.exit(0)