什么是软件逆向?
软件逆向也叫逆向工程,英文名是reverse engineering,大意是根据已有的东西和结果,通过分析来推导出具体实现方法。
为什么要逆向软件
比如你看到别人写的某个程序能够做出某种漂亮的动画效果,通过反汇编、反编译和动态跟踪等方法分析出其动画效果的实现过程这种行为就是逆向工程。
逆向工程的应用
辅助软件开发,安全研究,病毒分析,漏洞挖掘
逆向的准备工作
逆向环境搭建
安卓逆向的环境部署:Java sdk,android sdk, Android虚拟机
常用的工具有:apktool, Android killer,APKIDE, IDA
逆向基础知识:Android应用程序的开发方法,Smali语法,Arm指令。
逆向分析步骤
1.反编译如果失败,寻找其他途径,
2.如果成功,分析目录结构,有lib,分析so,包括静态分析与动态调试
无lib的情况,分析smali代码,包括有混淆和无混淆两种情况。
