android 安装包反编译,Android逆向之反编译APK和安装包漏洞解析

最近在学习如何对一个APK进行反编译,当然首要前提就是的得到应用的APK,这次我想要学习的是布卡漫画,那么我在酷安上面获取布卡漫画的APK:

5ddf1be3905d6.png

成功获取到APK后,我们就开始正式反编译了。这里我们用到的工具是:

APKTool:将Android应用程序反编译成Smali文件。

Dex2Jar-2.0:将Android应用程序反编译为Java文件。

JD_GUI_windows-1.4.0:读取Java源文件。

Drozer-2.3.4:Android应用程序评估框架。

第一步:直接解压APK文件(我将apk的后缀名直接改为.zip,在解压打开):

5ddf1be42c32b.png

在这里我们可以看到经过解压后得到的文件里面有了很多东西,下面我们先补充一下大多APK都有的文件的内容里面都是些什么:

assets:配置文件,放置一些本地资源,例如本地html,可以通过使用AssetManager检索。

kotlin:这个文件里面包括了注解、反射等。

lib:存放特定平台使用的编译后的.so文件,每一个子文件夹对应一个特特定的平台,例如armeabi,armeabi-v7a,armeabi-v8a,x86,x86_64,和mips等。

res:存放没有被编译到的resourse.arsc文件中的资源文件。

META-NIF:包含CERT,RSA,CERT.SF,MANIFEST.MF,存放的签名信息,用于保证系统的安全性和APK文件的完整性。

resources.arsc:编译后的二进制资源文件,存放res/values目录下的所有XML内容,打包工具对XML内容进行提取,编译为二进制,斌进行分类,其中,xml内容包含了不同语言的string和styles,同时还包含没有被直接打包至resource.arsc文件的其他文件的路径,例如布局文件和图片文件。

classes.dex/classes2.dex:编译后的字节码文件,能够被Dalvik/ART理解。

第二步:得到AndroidManifest.XML文件

保证上面所用软件都安装好的情况下,在apk所在文件路径下打开命令行窗口,输入命令:

5ddf1be4accd2.png

那么我们就得到了一个新的文件:

5ddf1be53852e.png

下面打开新得到的文件:

5ddf1be5cc92b.png

我使用Notepad++打开AndroidManifest.xml文件:

5ddf1be693f65.png

这样我们就可以看到布卡漫画这个应用的清单文件了,可以看到里面的那个是启动activity,这个应用所申请的权限等等,当然我们对一个apk的安全性测试也包括权限是否得当。

第三步:查看源代码

首先我们需要将第一步解压后得到的classes.dex文件、classes2.dex文件通过工具Dex2Jar-2.0来转换为java文文件:

1、将classes.dex文件、classes2.dex复制到Dex2Jar-2.0文件目录下。

2、在Dex2Jar-2.0文件目录下打开命令行窗口。

3、通过如下命令(这里两个文件就操作两次):

5ddf1be728a7f.png

4、3操作后我们看到Dex2Jar-2.0文件目录下多了classes-dex2jar.jar、classes2-dex2jar.jar两个文件

5、通过工具JD_GUI_windows-1.4.0打开classes-dex2jar.jar、classes2-dex2jar.jar文件

5ddf1be7aec04.png

当然我们可以看到这里的代码是经过Android Studio混淆打包的,很多都是以简易字符替换。

第四步:对APK进行安全检测

我们通过第二步得到的AndroidManifest.xml查看到应用的入口activity是cn.ibuka.manga.ui.ActivityStartup:

5ddf1be837157.png

同时我们看到 application里面 android:allowBackup=”true”,这个属性设置为true将会有很大的问题,外部可以通过adb backup 或者abd restore 进行备份。所以安全起见,allowBackup应设置为false。

下面我们通过Drozer-2.3.4对APK进行基本的框架评估:

1、将apk安装到手机或者模拟器上。

2、将Drozer里面的agent.apk安装到手机或者模拟器上。

3、通过adb进入模拟器的root权限下:

5ddf1be8e24d1.png

4、打开终端上的agent.apk,并开启:

5ddf1be97e363.png

5、我们去到Drozer目录下,打开命令行窗口,通过命令adb forward tcp:31415 tcp:31415,./drozer.bat console connect去连接终端:

5ddf1bea12502.png

6、我们先查看布卡漫画APK的攻击面,使用的命令是 run app.apckage.attacksurface 包名

5ddf1bea8cf46.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值