安卓逆向和手游辅助学习路线(安卓逆向和手游辅助学习路线)
安卓逆向和手游辅助学习路线(安卓逆向和手游辅助学习路线)二.Native层逆向(建议4周)3. 掌握逆向分析apk中常用的方法和技巧。一.Java层逆向(建议3周)1. 掌握Java语法基础,达到能看懂Java代码。2. 了解smali语法,能看懂smali代码。
一.安卓逆向基础(建议1周)
1. 学习安卓逆向第一步必须先把环境搭建好,这是你学习安卓逆向的开始,环境搭建好后表示正式迈入安卓逆向。在环境安装的工程中会遇到很多细节上的问题。
2. 第二步就是要了解我们要分析的是什么文件,很多0基础的同学都不知道安卓逆向分析的什么文件。我们要分析的是应用程序或者安装包(就是.apk文件),了解apk是怎么生成的以及如何安装到我们的手机里面,apk是怎么运行的,也是我们探讨的内容。
3. 第三步如何逆向分析.apk文件,掌握apk反编译及回编译,完成这个操作使用的工具是apktool。
一.Java层逆向(建议3周)
1. 掌握Java语法基础,达到能看懂Java代码。
2. 了解smali语法,能看懂smali代码。
3. 掌握逆向分析apk中常用的方法和技巧。
二.Native层逆向(建议4周)
1. 了解安卓操作系统和四大组件。
2. 了解NDK开发流程,自己编写案例练习。
3. 掌握常用ARM汇编指令,达到能看懂ARM汇编指令。
4. 掌握ida工具的使用,熟练使用ida进行各种操作
三.APK保护策略(建议1周)
1. 了解Java代码混淆、资源混淆
2. 掌握签名验证、文件校验、模拟器检测
3. 本地验证、网络验证
4. 案例练习
四.反调试与反-反调试(建议1周)
1. 掌握常用反调试方法及过反调试技巧,比如关键文件检测、调试端口检测、进程名称检测、防附加、轮训检测TracerPid值、时间检测、信号检测等反调试。
2. 掌握IDA过反调试思路
3. 案例练习。
五.HOOK框架(建议2周)
1. 掌握HOOK插件开发。
2. 掌握Xposed、Substrate、Fridad等框架。
3. 案例练习。
六.常见加密算法(建议2周)
1. 掌握编码算法、消息摘要算法、对称加密算法(Java加密与解密的艺术)。
2. 掌握非对称加密算法、数字签名算法。
七.协议加解密分析(建议4周)
1. 了解客户端与服务器如何进行交互的(OSI模型、TCP/IP模型)。
2. 掌握常用的抓包工具及环境配置,HTTP协议与HTTPS安全协议,数字证书、SSL证书检测(计算机网络与通信、信息安全工程师)。
3. 案例练习。
八.文件结构(建议2周)
1. 掌握DEX、ELF、XML、ARSC等文件结构。
2. 自编写文件解析工具。
九.系统源码分析(建议2周)
1. 了解安卓操作系统启动流程、Zygote启动流程。
2. 掌握Dalvik虚拟机、ART虚拟机、SO加载流程。
十.加固与脱壳(建议4周)
1. 了解dex文件整体加密、Dex代码抽取加密。
2. 了解so文件整体加密、函数加密、区段加密、加壳、混淆。
3. 分析通用脱壳机的实现原理及应用场景。
4. 了解主流加固特点及对应的脱壳技巧。
十一.按键 内存(建议2周)
1. 环境搭建,搜索内存数据,对内存数据进行读写操作。
2. 市面上的模拟器辅助,有一部分就是通过搜索内存数据来找特征码,因为游戏中有的数据是不会发生变化的,我们选择这部分不变的数据作为特征码。通过特征码来搜索内存数据,找到特征码的地址,再通过特征码的地址 距离(偏移)来实现定位。
3. 案例练习。
十二.篡改内存数据 注入技术 HOOK技术(建议4周)
1. 掌握模块基地址获取、非注入式篡改数据、注入式篡改内存数据。
2. 掌握注入技术原理(Ptrace注入、Zygote注入、静态感染ELF文件注入)。
3. 掌握HOOK技术的实质,就是对函数进行重写(Inline HOOK、异常HOOK、导入表HOOK)。
4. 掌握C 游戏逆向分析技巧。
5. 案例练习。
十三.Lua游戏(建议4周)
1. 掌握Lua游戏逆向分析流程,第一步查看lib文件夹的so文件就可以确定该游戏是不是Lua游戏,第二步如果是Lua游戏就在assets文件夹下查找lua脚本。
2. Lua游戏功能实现都在Lua脚本,重点分析Lua脚本(Lua明文、LuaC、Luajit)。
3. Lua文件加密与加密,内存dump Lua脚本,HOOK插件开发。
4. Cocos2dx-Lua引擎源码分析
5. 案例练习
十四.Unity 3D游戏(建议4周)
1. 掌握Unity 3D游戏逆向分析流程,第一步查看lib文件下的so文件就可以确定该游戏是不是Unity 3D游戏,第二步如果是Unity 3D游戏就在assets文件下查找相应的文件。
2. Unity 3D有两种框架(MONO框架、IL2CPP框架) MONO框架对应的游戏逻辑实现在DLL文件,IL2CPP框架对应的游戏逻辑实现在libil2cpp.so文件。
3. Unity 3D引擎源码分析。
4. DLL文件处理,DLL混淆,DLL隐藏,DLL加密。
5. 内存dump dll文件,HOOK插件开发 注入 HOOK。
6. 案例练习
十五.游戏协议(建议2周)
1. WPE环境搭建,拦截发送包和接收包,多截包对比分析封包数据。
2. 分析喊话功能,找出加密规律,各种游戏功能封包拦截分析。
3. 案例练习。
十六. 学习方法
1. 看一遍教程后自己实战操作,养成做笔记的习惯。
2. 注重基础,一定要把Java层和Native层搞懂。
3. 学习中不要纠结细节,要学会抓大放小。
4. 学完后自己画脑图,回顾学习的过程中那些不理解在花时间去看,此过程就是查漏补缺。
学习逆向有什么问题可以咨询这个qq:3251901516