安卓漏洞学习(十三):使用Apktool反编译Apk文件

一、下载Apktool

apktool官网下载地址:https://apktool.org/docs/install;直接下载最新版本
验证是否安装成功:cmd中输入 apktool,显示如下
在这里插入图片描述

二、反编译Apk文件

反编译apk文件分为四步:

  • 解包apk文件
  • 对解包后的apk文件进行修改
  • 重新打包apk文件
  • 对apk文件进行签名(签名以后才能够安装到手机)

解包Apk文件

在apk所在的路径,并输入以下命令,解压apk文件到当前文件夹:

apktool d dgyss.apk

显示如下图,表示解压成功:
在这里插入图片描述
解压后在dgyss.apk文件的同级目录下,得到同名文件夹dgyss
在这里插入图片描述

修改Apk文件

根据需要修改smali文件

打包Apk文件

1、打包前,首先删除原来的签名信息,直接删除META-INF文件夹
2、使用以下命令打包文件夹,生成新的apk文件

apktool b dgyss

在这里插入图片描述

签名Apk文件

1.生成密钥库文件,即keystore文件
使用以下命令生成keystore文件:

keytool -genkey -alias android_keystore -keyalg RSA -validity 20000 -keystore android.keystore

以上各个参数的含义如下:
-genkey:这个参数表示keytool要生成一个新的密钥对和一个自签名的证书
-alias android_keystore:这个参数指定了生成的密钥对和证书的别名(alias),此处别名为android_keystore,这个别名在密钥库中用于唯一标识这个特定的密钥对和证书
-keyalg RSA:这个参数指定了用于生成密钥对的算法,即RSA算法。RSA是一种广泛使用的非对称加密算法,它使用一对密钥:一个公钥用于加密数据,另一个私钥用于解密数据
-validity 10000:这个参数设置了证书的有效期,以天为单位,此处证书的有效期是10000天
-keystore android.keystore:这个参数指定了密钥库(keystore)的文件名,即android.keystore。密钥库是一个用于存储密钥对和证书的数据库文件
此时就在当前目录下,生成了一个android.keystore文件。

2.将刚刚生成的android.keystore文件,拷贝到未签名的apk文件同级目录下,切换到该路径下,输入以下命令,进行签名:

jarsigner -verbose -keystore android.keystore -signedjar dgyss-signed.apk dgyss.apk android_keystore

以上各个参数的含义如下:
jarsigner:这是 Java 开发工具包 (JDK) 中的一个工具,用于对 JAR 文件、APK 文件等进行签名。
-verbose:这个参数用于输出详细的签名过程,当使用这个参数时,jarsigner 会显示更多关于签名步骤的信息,这有助于调试和了解签名过程的具体情况。
-keystore android.keystore:这个参数指定了密钥库文件的路径和名称,即 android.keystore。
-signedjar dgyss-signed.apk dgyss.apk:这个参数指定了签名后的 APK 文件的输出路径和名称,即dgyss-signed.apk,这个文件是原始 APK 文件 dgyss.apk 经过签名后的结果。
android_keystore:这个参数指定了密钥库中用于签名的密钥对的别名,别名是在使用 keytool 生成密钥对时指定的,它用于在密钥库中唯一标识这个特定的密钥对。
在这里插入图片描述
成功生成dgyss-signed.apk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值