拿到Android逆向题目,我们回忆一下Android的文件结构
在Android逆向中无非就两大类考点:
1、java层的代码运行机制(主要考察java代码分析能力)(对应dex文件)
2、native层的代码分析(so文件的分析)(对应lib文件下的文件)
分析的流程如下:
分析工具:IDA、jeb、jadx、Androidkiller
1、模拟器中运行APK,观察运行的模式,活动的布局
2、查看AndroidManifest.xml中的文件,寻找是否可以调试,APK的主活动的名称是什么
3、查看主活动(通常我们会从功能按键入手分析或者是从打印正确提示的地方分析)
通常的apk题目都是输入flag在文本框中,然后点击提交的按键。然后从相等或者 判断的地方入手分析。从后往前分析代码逻辑,查看或者分析调用的函数功能。
4、如果函数在java层中没有定义逻辑,只声明了函数的方法名,这时我们需要关注可能是把这个方法的逻辑写在了So文件中,这时我们就需要分析So文件。
5、如果某些数据是从数据库中调用,那我们获取数据就需要从数据库中取出
6、以上是静态分析手段,如果出题人的考察点很微小,那我们就需要动态调试smali文件或者修改smali中的逻辑,或者动态调试So文件
7、动态结合,分析解题