安卓逆向入门
目录
什么是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_ 开头的函数
看完这篇文章,你是否也入门安卓逆向了呢☺️☺️☺️
- RTB,未来移动互联网广告的发展方向
- Java之AQS
- RestTemplate的ParameterizedTypeReference
- JKD1.8新特性
- WBC世界棒球经典赛
- 关于CStdioFile
- 破解中国电信华为无线猫路由(HG522
- 什么是长连接?长连接、短连接、三次握手
- EmguCV学习(二)
- 狄利克雷过程(dirichlet process )和分布
- CSAPP——Lab3——AttackLab
- TensorFlow学习日记之tflearn
- 20:计算2的幂
- 如何有效的提问
- 71个外贸工具集合!2023年外贸业务员开发客户必备!
- 怎样才能学好C语言
- Android ZXing 解析