1.基础准备
Android语言的基础,Smali语言的基础(具备一定程度的阅读能力就可以了),Android软件的详细运行机制(重点),Android软件的系统结构,Android软件的资源分布,运行时文件优化、线程管理、内存分配、垃圾收集等,加壳解壳。
2.实验操作
- 对一个小规模的应用商店apk或者自编译的一个apk进行分析(需要一定规模),采用顺序查看法。目的:在于掌握apk逆向的操作流程,训练Smali代码的阅读能力和简单的工具操作能力。
- 对Android逆向过程进行思考。有什么地方存在漏洞、有什么办法进行防护。目的:在于熟悉总体的工作。
- 熟悉Dalvik的运行,以及其中过程中的一系列操作。目的:在于深化细节。(现阶段正在做)
- 熟悉加壳解壳过程。
- 对一个大型规模的apk进行分析反编译。(小目标)
- 阅读现阶段学术界的研究,进行恶意代码的防护。
3.参考书目
Android软件安全与逆向分析
Android应用安全防护和逆向分析
深入理解Android虚拟机
Android恶意代码检测与渗透分析
逆向工程核心原理