原文: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。