Android apk破解后重签名

本文所诉内容为在实现《Android软件安全与逆向分析》第二章内容所遇到的问题

本章内容为手动破解一个简单的示例apk,体验破解apk的过程。


1、使用apktool反编译apk后,修改smali代码进行破解。

>apktool d crackme02.apk -o outdir

2、再次使用apktool编译,将在oudir目录下生成dist与build两个目录,其中未签名的apk位于dist目录下

>apktool b outdir

3、手工对apk签名时,由于没有android源码,无法按照书中所述,使用signapk.jar、testkey.x509.pem、testkey.pk8(缺少如上文件)对apk进行重签名,上网翻阅资料,找到一个简单的方法,(只需按照java jdk即可)

------------------------------------------------------------------------------------------------------------------------

参考:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html

命令行下对apk签名
  创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入

D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore /*说明:-genkey 产生密钥         -alias demo.keystore 别名 demo.keystore         -keyalg RSA 使用RSA算法对签名加密         -validity 40000 有效期限4000天         -keystore demo.keystore */ D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore /*说明:-verbose 输出签名的详细信息         -keystore  demo.keystore 密钥库位置         -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/
------------------------------------------------------------------------------------------------------------------------
按照如上,方法签名获得signed.apk,执行 >adb install signed.apk 提示[INSTALL_PARSE_FAILED_NO_CERTIFICATES] 原因: jdk1.7以上的签名工具需要timestamp的原因 (本人使用的jdk1.8) 解决方法:在签名命令中加入 -digestalg SHA1 -sigalg MD5withRSA参数 >jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore -digestalg SHA1 -sigalg MD5withRSA
解决!不过签名时还是会提示


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部