看了两天的安卓逆向相关的,感觉只能打一点点mobile的题目,还没触及到安卓逆向有意思的部分。现在用模拟器,没去折腾真机,先写一写这两天找到的资料
$$$:重要的必学内容或者笔者觉得同类文章/题目/资源中最好的一类,学习相关内容的第一选择
$$:较为重要的知识/环境配置,推荐一看
$:相关知识的补充/第二手资料,也有比较有趣的乐子,比较有时间可以看看
?:感觉有一定价值,还没细看,先放在这里
以下内容可能会有一定局限性,仅作参考。但会随着笔者的学习不断改进、更新。
环境配置
$$环境是跟着吾爱上的正已配的,jdx-gui,雷电模拟器,magisk,frida,adb,开发者助手之类的。这也是一个系列课,叫做《安卓逆向这档事》,b站上也有视频教程。
https://www.52pojie.cn/thread-1695141-1-1.html
$$还有很多逆向常见工具和软件,可以在吾爱的爱盘上找
https://down.52pojie.cn/Tools/
?或者github上也有人总结打包逆向工具,只不过也有点年头了……
https://github.com/WuFengXue/android-reverse
?其他一些:
$$$adb
Android ADB原理及常用命令 - 测试开发小记 - 博客园
$$apktool
【Android】使用Apktool反编译Apk文件 - R-Bear - 博客园
入门资料
$$$首先你要学安卓逆向你得看得懂Java,上菜鸟学一下基础语法,至少要看懂
https://www.runoob.com/java/java-tutorial.html
$$$然后就是安卓逆向本身,这两天看得最多的,也是我觉得观感最好的就是看雪上的这一篇:
https://bbs.kanxue.com/thread-285906.htm
可以了解入门级别的安卓逆向都在干什么,配合对应的题目做,感觉跟着做完就可以随便出签到了
$$或者上buu/攻防世界上搜mobile题目
关于安卓应用知识本身,一般是跟着教程什么不会搜什么/问AI
$安卓逆向-APK结构到四大组件的分析 - FreeBuf网络安全行业门户
吾爱上有两篇,写的很二,可以当乐子看
$【原木文章】Android改造者之路-01.初识Apk体质的形成 - 吾爱破解 - 52pojie.cn
$【原木文章】Android改造者之路-02.初探smali功法 - 吾爱破解 - 52pojie.cn
有一个菜鸟上系统性而且特别详细的,感觉适合对概念有感性认知之后回头来深究。就像你不能要别人二进制入门就抱着csapp啃,学了一些打法之后再回头来看,会觉得原来如此:
$$https://www.runoob.com/w3cnote/android-tutorial-intro.html
只不过这个好像是18年的,也有点年头了。
$$$https://github.com/r0ysue/AndroidSecurityStudy
r0ysue师傅的仓库,做完上面的入门就能很平滑的看这里的进阶,是这两天网上我找到的最好的进阶理论总结。这个r0ysue师傅还有知识星球和其他很好的安卓逆向资料,感觉是这个方向的大手子。
可以把这个下面对应的题目刷了,也可以按题目类型自行学习
$$$r0ysue/MobileCTF: 体系化、实战化、step by step、目标清晰且具体的一个打怪升级、成长路径规划图
这个作者个人学习逆向相关所遇到的一些技术知识点和路径
$https://github.com/AlienwareHe/awesome-reverse
其他一些:
$https://bbs.kanxue.com/thread-279407.htm
?[原创]安卓逆向基础知识之安卓开发与逆向基础-Android安全-看雪-安全社区|安全招聘|kanxue.com
?http://maddiestone.github.io/AndroidAppRE
frida
官方文档Welcome | Frida • A world-class dynamic instrumentation toolkit
frida api的使用(如何写hook脚本)
配置adb和frida的时候要注意电脑主机的frida和模拟器/安卓机里的frida-server版本务必相同。不建议使用太高的版本,我和另一个师傅在模拟器上使用frida16执行frida-server的时候都遇到了强制软重启的问题。
frida的主要脚本语言是js,相关apiJavaScript API | Frida • A world-class dynamic instrumentation toolkit
为了提高开发效率,可以熟练方法调用之后尝试使用tsoleavr/frida-agent-example: Example Frida agent written in TypeScript

资料:
$$https://github.com/r0ysue/AndroidSecurityStudy中的 frida-api部分
$$FRIDA-API使用篇:Java、Interceptor、NativePointer 腾讯云开发者社区-腾讯云](https://cloud.tencent.com/developer/article/1758879)
?[原创]Hook入门与抓包-Android安全-看雪-安全社区|安全招聘|kanxue.com
练手靶场:
通过Frida-Labs入门Frida | Closure Frida-Labs的题解,虽然说labs里就附有很详尽的solution。这里面可能有一些思路可以给你提供其他思路,还有一些环境不一致的解决方案
$$$https://github.com/r0ysue/MobileCTF/tree/main/AndroidHook中的SixLock,做完了上面的Frida-Labs可以做下这个检验学习成果
unidbg
$$$龙哥unidbg基础入门_unidbg入门-CSDN博客
$$ 《安卓逆向这档事》第二十三课、黑盒魔法之Unidbg - 吾爱破解 - 52pojie.cn
##备忘
全局指定调试
1 | adb shell //adb进入命令行模式 |
debug模式启动
1 | adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity |
flag{bc72f242a6af385}
更改可调试
1 | android:debuggable="true" |
生成签名
1 | keytool -genkey -alias new.keystore -keyalg RSA -validity 20000 -keystore new.keystore |
反编译、回编
1 | apktool d target.apk |
签名
1 | jarsigner -verbose -keystore new.keystore -signedjar target.apk target0_signed.apk new.keystore |
frida-dexdump
1 | frida-dexdump -U -f com.sina.oasis -d -o ./ |
-U
连接到 USB 设备(USB-connected device)。若有多个设备连接,需用此参数指定目标设备。若使用模拟器,可改用 **-R**(Remote)连接本地模拟器。-f com.sina.oasis
指定要提取 DEX 文件的应用包名(Package Name)。com.sina.oasis是微博国际版的包名,不同应用包名不同(如微信为com.tencent.mm)。
-d
启用 深度提取模式(Deep DEX extraction)。- 不仅提取主 DEX 文件,还会递归扫描内存中的所有 DEX(包括动态加载的 DEX、从内存中解密的 DEX 等)。适用于对抗代码加固(如 360 加固、梆梆加固)。
-o ./
指定输出目录(Output directory)。./表示当前目录,提取的 DEX 文件将保存到执行命令的文件夹中。