例题
以攻防世界moblie easy-so为例
链接:https://pan.baidu.com/s/1Rd6XHnaewK4HCPyQEwATIQ 提取码:jcc0
运行app
拿到apk之后 当然是先安装到我们的安卓虚拟机上
这里我用win11自带的安卓子系统直接安装到了物理机上

可以看到有文本输入框和check机制
随意输入数值进行检测试试

不出所料验证失败
我们可以猜测如果我们输入的数值如果是正确的话 应该会输出 验证成功
大部分的check机制 是将你的输入与内置字符串进行比较
然后输出正确或者错误的结果 就像这道例题一样
Androidkiller
将文件拖入到Androidkiller中进行静态分析

这里选否即可
在工程管理中就可以看到我们想要的信息

所涉及的文件需要了解apk的文件结构
Apk 文件结构
APK 文件也是一种 ZIP 文件。因此,我们可以使用解压 zip 的工具来对其进行解压。一个典型的 APK 文件的结构如下图所示。其中,关于每一部分的介绍如下

AndroidManifest.xml
- 该文件主要用于声明应用程序的名称,组件,权限等基本信息。
class.dex
- 该文件是 dalvik 虚拟机对应的可执行文件,包含应用程序的可执行代码。
- resource.arsc该文件主要是应用程序编译后的二进制资源以及资源位置与资源 id 之间的映射关系,如字符串。
- assets该文件夹一般用于包含应用程序的原始资源文件,例如字体和音乐文件。程序在运行的时候,可以通过 API 获取这些信息。
- lib/lib 目录下主要用于存储通过 JNI(Java Native Interface)机制使用的本地库文件,并且会按照其支持的架构,分别创建对应的子目录。
- res/该目录主要包含了 Android 应用引用的资源,并且会按照资源类型进行存储,如图片,动画,菜单等。主要还有一个 value 文件夹,包含了各类属性资源
-
- colors.xml→颜色资源
dimens.xml—> 尺寸资源
strings—> 字符串资源
styles.xml→样式资源
- colors.xml→颜色资源
META-INF/类似于 JAR 文件,APK 文件中也包含了 META-INF 目录,用于存放代码签名等文件,以便于用来确保 APK 文件不会被人随意修改。
Smali
介绍
在执行 Android Java 层的代码时,其实就是 Dalvik(ART) 虚拟机(使用 C 或 C++ 代码实现)在解析 Dalvik 字节码,从而模拟程序的执行过程。
自然,Dalvik 字节码晦涩难懂,研究人员们给出了 Dalvik 字节码的一种助记方式:smali 语法。通过一些工具(如 apktool),我们可以把已有的 dex 文件转化为若干个 smali 文件(一般而言,一个 smali 文件对应着一个类),然后进行阅读。对于不同的工具来

本文介绍了Android应用逆向分析的过程,包括 APK 文件结构、Smali 代码理解、动态库(SO文件)的加载与分析。通过Androidkiller工具,演示了如何静态分析APK,查找关键函数,以及利用JD-GUI进行反编译,理解加密算法。最终,通过IDA工具深入分析SO文件,揭示解题关键步骤。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



