安卓逆向入门

时间: 2025-05-20 admin 互联网

目录

什么是apk文件

查看源码 

native层


工具附件

java逆向工具 我们选择以下两个安装包

安卓逆向例题

什么是apk文件

        apk文件介绍
        apk文件(Android Package)是用于分发和安装 Android 应用程序及游戏到 Android 操作系统的文件。换句话就是:如果我们用的是安卓手机,那么我们在下载软件时的安装包和软件本身都是apk文件,它类似于其他操作系统上的可执行文件。
        apk文件其实并不是单个二进制文件,它类似于一个压缩包,里面包含了很多文件。把apk文件的后缀改为.zip,然后解压,我们就能看到里面的各种文件。

查看源码 

        查看apk文件源码需要用到两个工具jadx和jeb,两种工具各有优缺点。
        工具jadx使用方法:将apk文件拖进jadx里面,点击右边资源文件->AndroidManifest.xml,这个文件包含应用程序的基本信息和配置

        点击图中的MainActivity,这里是程序入口点,类似于exe文件里面的main函数。它也可能会换个名字,主要还得根据后面的<intent-filter>来判断。

        jeb与jadx使用方法差不多,它的分析能力更强一点,但是界面没jadx简洁。
        用jeb打开apk文件,查看字节码

        找到MainActivity类,按tab键反编译得到源码

native层

        apk文件的代码并不全是用java写的,可以用C或 C++编写一个本地库,然后再用JNI技术将java层与本地库进行连接。用java编写的叫java层(jadx里面看得到),用C或C++编写的叫native层。
        native层的代码在jadx等工具里面看不到,需要解压apk文件,然后用ida分析so文件才能看到这段代码。

native层处理方法:

1、先将后缀apk改为zip,然后解压得到文件夹
2、打开文件夹,打开里面的lib文件夹,里面一般来说会有4个so文件,arm架构32位64位各一个,x86架构32位64位各一个,一般是看arm架构的so文件


3、使用ida打开so文件,注意JNI_Onload或JAVA_ 开头的函数

 看完这篇文章,你是否也入门安卓逆向了呢☺️☺️☺️