Reverse 2020网鼎杯 bang Writeup(安卓简单的加壳) 您所在的位置:网站首页 ctf真题bang Reverse 2020网鼎杯 bang Writeup(安卓简单的加壳)

Reverse 2020网鼎杯 bang Writeup(安卓简单的加壳)

2024-07-17 09:51| 来源: 网络整理| 查看: 265

记录下踩过的坑提醒下自己 点这里有解法2

我用到的工具: jadxDexExtractor做好的镜像adt-bundle(eclipse)apktoolbaksmali.jar 和 smali.jar 1. 观察特征

先拿 jadx 看了下,没有activity类,这里可以注意到 AndroidManifest.xml 无写权限(第3步会说明) 特征 度娘了一下SecShell,再结合题目,应该是梆梆安全加固-.- 参考了最新各大apk加固特征库

git上现搜的工具DexExtractor根据md提示,下载了做好的镜像 2. 模拟器就位

下载镜像版本是 android-19,需要版本一致~

我的坑一:一开始用的 Android Studio 3.6 建的AVD,结果 android-19 的版本的模拟器怎么装都起不来,高版本的没问题。然后就弃了以后再研究。

用了老的 adt-bundle(eclipse),AVD新建启动,没有问题。后来由于本机SDK过于杂乱,挨个system.img重命名才 找到adt-bundle(eclipse)所用的system.img,备份下用新下载的替换之。

(AndroidManifest.xml 无写权限,可以直接跳第3步)

虚拟机装上了apk,启动apk,logcat筛选一下: (找sdk路径吧adb环境变量加上了,方面以后写命令)

adb install signed.apk

权限 根据大佬的文章提示,AndroidManifest.xml缺少权限。

3.改apk 使用apktool反编译: java -jar apktool_2.4.1.jar d signed.apk

我的坑二 :apktool版本要新,否则各种报错

AndroidManifest.xml 的 manifest 标签里添加WRITE_EXTERNAL_STORAGE权限:

使用apktool回编译: java -jar apktool_2.4.1.jar b signed

apk在 signed/dist 里,install 报错 INSTALL_PARSE_FAILED_NO_CERTIFICATES,需要签名,用命令行或者Android开发工具( adt-bundle 等)自己生成个keystore,然后签名输密码:

jarsigner -verbose -keystore 我的.keystore -signedjar 新.apk 回编译.apk keystore别名 4.dump

安装运行看logcat(闪退了,还没研究原因,不过不重要 ):

05-10 04:00:16.680: E/dalvikvm(4396): --pacthed-- , /sdcard/xxxxxxxxxxxxxxxxx.dex

通过 adt-bundle(eclipse) 的DDMS找到 storage/sdcard 下的文件,有很多dex,找到和apk包名一致的dex,本题有多个,都pull出啦,存到本机。

使用工具DexExtractor,生成xxxx.read.dex文件: java -jar Decode.jar D:\pull 6.使用baksmali.jar 和 smali.jar

输出到classout1、classout2目录:

java -jar baksmali-2.4.0.jar disassemble -o ./classout1/ com.example.how_debug_classes_1925304.read.dex java -jar baksmali-2.4.0.jar disassemble -o ./classout2/ com.example.how_debug_classes_18856.read.dex

看包名挑选一下,重新打包生成最终dex文件:

java -jar smali-2.4.0.jar assemble ./classout1 -o final.dex

jadx打开,拿下~

主要参考的文章: 最新各大apk加固特征库 [操作向]DexExtractor的使用



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有