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
解决!不过签名时还是会提示
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
