原文:https://bbs.kanxue.com/thread-275616.htm
一、前置知识
为什么学习安卓逆向
兴趣爱好
就业
副业
爬虫工程师
学习安卓逆向需要准备什么
学安卓逆向的前置知识
逆向分为:安卓逆向,win逆向
逆功能:破解内购道具,去广告等等
逆协议:比如,某APP注册的时候有一个Sign的加密。这时候app逆向逆的是协议(让爬虫爬到app的数据)
被逆向的APP:大厂,中厂,小厂,小APP,灰APP......
需要学习的内容:
Java语言:基础语法,面向对象,接口,反射机制等
Android应用开发,四大组件( activity,service,provider,broadcast),界面控件,消息事件处理、网络通信等
java层逆向:smali汇编与静态逆向分析,动态调试(双IDA调试)
native层逆向(SO库(linux下的so类似win下的dll):C/C++语言:数据类型,语法糖,指针,实现过程。ARM汇编(寄存器,指令码,立即值,常量)
HOOK与注入技术框架(xposed(java、Android Studio)、Frida(python、JavaScript))
APP协议分析(抓包)
加壳与脱壳
沙箱
unicorn/unidbg
硬件配置
电脑: 主流电脑配置即可,内存尽量大,主频尽可能高
如果有条件的话,电脑安装虚拟机装linux系统
手机: 安卓手机
如果有条件上谷歌的亲儿子(nexus或者pixel),国产的手机推荐红米9A(经济实惠,缺点就是cpu是arm 32的,未来无法调试arm64的程序,入门足够了)
暂时没有真机可以先用模拟器一段时间
夜神模拟器(最新支持Android 9)、雷电模拟器、逍遥模拟器
但尽量还是使用真机,安卓模拟器存在兼容性的问题,有些app无法在模拟器上运行,因为模拟器是基于x86的架构,而有些app只认v7或者v8架构的cpu。