逆向入门之apk

1 篇文章 0 订阅
1 篇文章 0 订阅

关于apk

apk,是Android应用程序包(Android application package),是一种压缩包,通过将应用程序所需的代码、程序配置文件和各种图片资源等打包,得到的一个文件,通过手机安装,所以是可以通过解压缩软件(如bandzip、winrar、360压缩等)进行解压,以获取内部文件。
对apk文件进行解压之后,常见组成文件包括:

G:\apk12345 的目录

2019/12/12  14:51             2,680 AndroidManifest.xml
2019/12/12  14:51         2,674,864 classes.dex
2019/12/27  17:29    <DIR>          res
2019/12/12  14:51           253,136 resources.arsc
               4 个文件      5,400,926 字节
               3 个目录 176,297,152,512 可用字节

其中AndroidManifest.xml是程序配置文件,一个或多个classes.dex类似的dex文件,是通过对java文件编译两次(java --> class --> dex)获得,res文件夹用于储存图片、界面配置文件等,resources.arsc是aapt工具编译资源时生成的一个重要文件,App资源能根据配置的变化,索引到相应的资源都要依赖它。

反编译apk

这里涉及的是简单的apk,也就是没有加壳的普通apk,同时也没有将涉密代码剥离和封装到so(共享对象)文件中,所以不会涉及脱壳和动态调试解密so
所以,基本就是针对dex文件的反汇编操作。

过程如下:

1、dex反编译为jar

使用 dex-tools-2.0 的bat脚本d2j-dex2jar.bat实现反编译

d2j-dex2jar.bat G:\apk12345\classes.dex -o G:\apk12345\classe1.jar

对classes.dex进行反编译,得到文件classe1.jar,如果不会报错,则一切顺利。

2、加载jar源码

使用jd-gui.exe 或者 jd-gui-1.4.0.jar 打开 classe1.jar,可以看到程序的Java所有或大部分源码(左边为class文件,右边为源码内容),进行后续的分析。
在这里插入图片描述

当然,也可以使用Android killer将上面的两个步骤合并,之间得到源码,但是有时候该工具不太灵活,出现报错等。

在这里插入图片描述

其他常用工具(忽略版本)软件:
jadx-gui-0.8.0.exe
smali-2.2.5.jar
baksmali-2.2.5.jar
apktool_2.3.4.jar
luyten-0.5.4.jar

APK 常用测试框架:
自动化测试:appium(Android、iOS均可)、Calabash(Android、iOS均可)、Instrumentation(Android)、UIAutomator(Android)、Frank(iOS)、XCTest(iOS)。
安全测试:frida、unidbg、unicorn,Drozer、MobSF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值