对未签名的 APK 重签名

在对某个 APP 进行逆向时,最后一步将修改应用到 APK 中往往会生成未签名的 APK,而 Android 要求每个 APK 都必须要有签名才能被安装,因此我们需要对未签名的 APK 进行签名

1. 生成数字证书

在 keytool 所在的文件夹下(通常是 C:\Program Files\Java\jdk1.8.0_101\bin 之类的)以管理员身份执行如下命令

生成数字证书


-keystore  reverse_engineer.keystore 表示生成的数字证书的文件名为 "reverse_engineer.keystore";

-alias  rekeystore 表示证书的别名为 "rekeystore",可以与 keystore 一样;

-keyalg RSA 表示生成密钥文件所采用的算法为 RSA;

-validity 10000 表示该数字证书的有效期为10000天,意味着10000天之后该证书将失效;

然后根据提示输入密钥、地区等信息。最终,这条命令将生成名为 reverse_engineer.keystore 的数字证书

2. 重签名

将数字证书拷贝到需要签名的 apk 的目录下,在 jarsigner 所在的文件夹下(通常是 C:\Program Files\Java\jdk1.8.0_101\bin 之类的)以管理员身份执行如下命令执行如下命令


-keystore 表示使用当前目录中的 reverse_engineer.keystore 签名证书文件;

-storepass 密钥口令;

-signedjar crackme02_release.apk表示签名后生成的APK名称;

crackme02.apk 表示未签名的APK;

rekeystore 表示 reverse_engineer.keystore 的别名


3. 重新安装 APP

如果你不是被逆向的 APP 的作者,那么你重签名时使用的私钥在绝大多数情况下不会和逆向前的 APP 相同。在 Android 的安全策略下,这样的 APP 是不能被安装的,因此需要将之前的 APP 卸载掉,才能将重新打包后的 APK 重新安装到 Android 设备上


参考文章:

Android反编译(三)之重签名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,132评论 25 709
  • 参考什么是 Android 签名机制,Bluebox Security 发现的漏洞有何威胁? Android应用程...
    合肥黑阅读 6,238评论 1 16
  • 写在前面 今天使用高德地图为应用添加Key的时候,发现有一项需要用到安全码SHA1,而SHA1存在于Keystor...
    代码咖啡阅读 26,989评论 5 34
  • 1. 一个基本事实:其实并没有一种叫做“拖延症”的病,对于大多数人来说,你、就、是:懒。 2. “拖延症”患者通常...
    樂鈫阅读 1,937评论 0 0
  • 早年还在校读书的时候,时常抱着玩的心态。尤其是数学或物理,基本对于定义和阐述不屑一顾。比如“最大值”的定义,我从来...
    陈江都阅读 3,421评论 0 4