自己整理的安卓逆向学习路线图
2016-05-17 20:10
375 查看
作者:非虫
链接:http://www.zhihu.com/question/26459870/answer/32909329
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先,逆向分析是一门技术,也是一门艺术。
其次,安卓逆向同样可细分为应用层APK逆向、安卓设备框架、内核驱动等逆向、基于安卓的硬件产品逆向等。
应用层的逆向分析根据需求的不同,又可细分成APK流程逆向与功能逆向。
1.流程逆向
流程逆向通常是指简单的对APK运行流程进行分析,此类分析通常可以使用将APK置于沙盒环境中运行捕捉并查看运行结果。这种逆向需求通常不是很多,典型的工种有杀软厂商的病毒分析工程师。
2.功能逆向
功能逆向相比流程逆向则困难得多。但需求比较普遍。实际逆向分析过程中对功能实现的理解,在很大程度上取决于逆向人员相关的软件开发知识。比如,分析Android程序的JAVA代码就需要掌握基本的Android软件开发的知识。分析so库的代码就需要了解C/C++相关的so库开发的知识。除了基本开发相关的能力外,逆向分析人员还需要具备以下知识:
3.额外需要掌握的知识
ARM/X86/MIPS汇编语言-分析so库时可能需要阅读大量的反汇编代码。
常见逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序调试与反调试手段-调试器检测与反检测/脱壳/反混淆
常用的加密与解密算法-好的逆向分析人员需要有快速识别常见加密解密算法的能力
最好的安卓逆向学习方法:
多动手,多动手练习
链接:http://www.zhihu.com/question/26459870/answer/32909329
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先,逆向分析是一门技术,也是一门艺术。
其次,安卓逆向同样可细分为应用层APK逆向、安卓设备框架、内核驱动等逆向、基于安卓的硬件产品逆向等。
应用层的逆向分析根据需求的不同,又可细分成APK流程逆向与功能逆向。
1.流程逆向
流程逆向通常是指简单的对APK运行流程进行分析,此类分析通常可以使用将APK置于沙盒环境中运行捕捉并查看运行结果。这种逆向需求通常不是很多,典型的工种有杀软厂商的病毒分析工程师。
2.功能逆向
功能逆向相比流程逆向则困难得多。但需求比较普遍。实际逆向分析过程中对功能实现的理解,在很大程度上取决于逆向人员相关的软件开发知识。比如,分析Android程序的JAVA代码就需要掌握基本的Android软件开发的知识。分析so库的代码就需要了解C/C++相关的so库开发的知识。除了基本开发相关的能力外,逆向分析人员还需要具备以下知识:
3.额外需要掌握的知识
ARM/X86/MIPS汇编语言-分析so库时可能需要阅读大量的反汇编代码。
常见逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序调试与反调试手段-调试器检测与反检测/脱壳/反混淆
常用的加密与解密算法-好的逆向分析人员需要有快速识别常见加密解密算法的能力
最好的安卓逆向学习方法:
多动手,多动手练习
相关文章推荐
- HDU 5676 贪心
- AFNetWorking实现GET、POST
- 抢购倒计时demo
- 修改环境变量为当前工作目录的.bat文件
- js中的this关键字详解
- linux shell script脚本数组的建立和使用
- 关于PHP+Mysql1045 Access denied for user错误解决办法——你可能想不到的
- 无线通信中的最大比合并(MRC)分析
- 写写Matlab的Turbo仿真实现吧
- Matlab的plot~各种颜色和线形
- XAMPP的安装及配置
- Matlab的var函数错了吗
- 讲一讲CSS的position/float/display都有哪些取值
- 第十二周
- WebLogic SSRF 漏洞 (简要翻译)
- 网络 协议与分层结构 的学习心得
- 大型网站架构系列:负载均衡详解(2)
- arm 汇编语言源码文件分析
- 【POJ3481】Double Queue——伸展树
- 【DirectX11】第六篇 纹理映射