apk反编译,注入smali代码,编译及重签名。

apk反编译,注入代码,编译及重签名。

  1. 下载apktool
    链接:https://pan.baidu.com/s/12eHW1vFqZVKOEmEb2I-sXA
    提取码:mrbq
    以下的apktool_2.3.1均更改为2.4.1(因为2.3.1在build的时候会出错,可能是jdk版本不对,我这里的jdk版本是14.0.2)

  2. 解压下载的文件,得到如下两个文件:
    在这里插入图片描述

  3. 在以上解压的目录中输入cmd,回车,进入命令行

在这里插入图片描述
命令行中输入:

apktool.bat

在这里插入图片描述
则表示可以使用。(PS:已经安装了java的环境并设置了环境变量,我使用的是jdk1.14)在这里插入图片描述
4. 关闭之前打开的命令行,并按照3中的步骤打开新的命令行(一个新打开的命令行只能运行一次apktool),此时我已经将test的apk移入当前文件夹(可以不移)

输入命令:apktool.bat d [apk路径] -o [生成反编译文件路径] 如:

apktool.bat d apktest.apk -o output

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
5. 打开AndroidManifest.xml文件,查找 android:name=“android.intent.action.MAIN”/,

在这里插入图片描述
找到
前面的的android:name="com.xiaomi.aischedule.AiApplication,即为本app的入口文件,然后根据该路径找到对应的smali文件。若找不到,则依次为:android:name="com.xiaomi.aischedule.main.MainActivity"为入口文件。
在这里插入图片描述
打开后,找到oncreate函数。
在这里插入图片描述
在最后的return void之前加入需要植入的smali代码:

const-string v0, "You\' ve succeeded in Cracking"

const/4 v1,0x1

invoke-static {p0,v0,v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

move-result-object v0

invoke-virtual {v0}, Landroid/widget/Toast;->show()V

在这里插入图片描述
把第二行的locals 2 加1,即改为locals 3. 保存。
该段smali的功能为在打开软件时弹出一个toast,没有用到任何权限,因此不需要更改manifest文件。
如果注入其他需要使用到权限的代码,则还需要修改manifest文件,后续提出。

  1. 编译成apk文件。
    还是在apktool.bat路径下,打开命令行。
    输入命令:
apktool.bat b output

在这里插入图片描述
在output的dist文件夹中会得到:
在这里插入图片描述
7. 对其生成的apktest.apk进行签名

划重点:这里一定要对apk进行签名,不然会报错:Error:Could not parse error string

这里使用安卓手机软件 ZipSigner app:
下载链接:
链接:https://pan.baidu.com/s/1HiQ4hzSLHi1SMCVIxsO9HA
提取码:047z
安装后:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值