命令行APK签名/查看apk签名/查看key签名 逆向

admin 1月前 63

目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:

jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias
jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias

其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:

jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android
jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android

执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)


jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)

查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:

zip -d Explorer_unsigned.apk META-INF/\*
zip -d Explorer_unsigned.apk META-INF/\*

命令执行后有如下提示:

deleting: META-INF/MANIFEST.MF   deleting: META-INF/CERT.SF   deleting: META-INF/CERT.RSA

执行完该命令后,再执行上面的jarsigner命令重新签名即可,此时有如下提示输出:

正在添加: META-INF/MANIFEST.MF  正在添加: META-INF/ANDROID.SF  正在添加: META-INF/ANDROID.RSA  正在签名: res/drawable-1280x600/content_item.9.png  正在签名: res/drawable-1280x600/explorer_logo.png  正在签名: res/drawable-1280x600/icon.png  正在签名: res/drawable-1280x600/icon_apk.png   正在签名: res/drawable-1280x600/icon_audio.png  正在签名: res/drawable-1280x600/icon_copy.png  正在签名: res/drawable-1280x600/icon_delete.png  正在签名: res/drawable-

1280x600/icon_folder.png  正在签名: res/drawable-res/layout/tool_bar.xml  jar 已签名。

  警告:   签名者证书为自签名证书。

  未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2154-09-25) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

   至此使用JKS文件为APK签名完成。

更多签名操作

查看jks签名库里的签名信息:

keytool -v -list -keystore keystore.jks
keytool -v -list -keystore keystore.jks

更改别名:

keytool -changealias -keystore my.jks -alias myalias -destalias otheralias
keytool -changealias -keystore my.jks -alias myalias -destalias otheralias

删除别名:

keytool -delete -alias myalias -keystore my.jks -storepass jkspassword
keytool -delete -alias myalias -keystore my.jks -storepass jkspassword

查看.apk包里的签名详细:

jarsigner -verify -verbose -certs app-release.apk
jarsigner -verify -verbose -certs app-release.apk

通过命令生成密钥库和别名

keytool -genkey -alias myalias -keyalg RSA -keystore my.jks -keysize 2048 -validity 9125 -dname "CN=FirstAndLastName, OU=OrganizationalUnit, O=Organization, L=CityOrLocality, ST=StateOrProvince, C=CountryCode, EMAILADDRESS=email@gmail.com"
keytool -genkey -alias myalias -keyalg RSA -keystore my.jks -keysize 2048 -validity 9125 -dname "CN=FirstAndLastName, OU=OrganizationalUnit, O=Organization, L=CityOrLocality, ST=StateOrProvince, C=CountryCode, EMAILADDRESS=email@gmail.com"

----注:-keyalg:加密算法   -keysize:加密位数   -validity:有效期(天) -dname:证书详细信息

导出证书:

keytool -export -alias myalias -keystore my.jks -file myalias.crt -storepass jkspassword
keytool -export -alias myalias -keystore my.jks -file myalias.crt -storepass jkspassword

打印证书信息:

keytool -printcert -file myalias.crt
keytool -printcert -file myalias.crt

将证书导入到密钥库并生成别名

keytool -import -alias myotheralias -file myalias.crt -keystore my1.jks -storepass jkspassword
keytool -import -alias myotheralias -file myalias.crt -keystore my1.jks -storepass jkspassword

修改别名里的信息,注MD5的值也会同时被修改

keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com" 
keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com"



少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:kali Linux信息收集工具LBD
下一篇:sql绕过基础
Whatever is worth doing is worth doing well. juvenile hacker league
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回