记第一次动调apk

是24XY里的一道题,就单纯一道简单的安卓题,主要考查的点就是动调apk,记录下来的原因是踩了不少坑,毕竟第一次JEB动调apk

一.配置adb

​ ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。

下载链接:

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Mac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

然后使用详解的话可以参考这篇博客ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了-CSDN博客

二.题点解析

​ 这道题主要就是考查配置起apk的调试状态,分为两个目标进行达成,一是修改AndroidManifest中debuggable属性,第二个是修改ro.debuggable属性,其中第二个可以在下面链接中查看进行修改,我主要说说第一个,修改AndroidManifest中debuggable属性。让apk变可调试_如何修改 允许调试 安卓 apk-CSDN博客

​ 想要修改AndroidManifest中debuggable属性,首先需要对你的apk进行解包,这里我使用的是ApkTool 进行解包和打包,下载链接是https://ibotpeaches.github.io/Apktool/,然后将apktool.jar放置在与你的apk同目录的文件夹下,同时你还需要一个签名的jar,用于将解包修改完之后的apk再重新签名一次,不然这个apk不能装载虚拟机上,这个文件可以去网上搜,再有就是用于签名的两个密钥文件,可以去下面这个文章弄APK重新签名或者更改签名详细步骤-CSDN博客,最后支撑文件如下如所示:(demo是已解包之后的文件夹,777.apk是原apk重新打包的文件)

image-20240510234243171

​ 拿到上述支撑文件就可以开始了

​ 解包命令:java -jar apktool_2.9.3.jar d DebugMe.apk -o demo

​ 之后在包中找到AndroidManifest.xml并将android:debuggable="true"添加进application中,下列示例代码的最后一行:

1
2
3
4
5
6
7
<!-- application标签加上android:debuggable="true" -->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:debuggable="true">

​ 然后再用打包命令:java -jar apktool_2.9.3.jar b demo -o 777.apk(注意java版本别用太低,之前卡了好久在这儿,最后换了个高一点的版本才打包成功)

​ 最后就是签名命令jarsigner -verbose -keystore kkkey.jks -signedjar 777.apk 777.apk android.keystore,用到了上文中提到的两个秘钥支撑文件

image-20240510235117269

​ 签名成功,拖进虚拟机也安装成功,直接打开JEB开始动调!

image-20240511000110943