zoukankan      html  css  js  c++  java
  • android: 对普通的apk应用进行签名

    准备工作

    jdk (我这里的是jdk1.8)

    一个未签名的apk应用。

    判断是否签名

    要判断一个apk文件是否已经进行过签名,使用解压应用(如WinRAR等)打开该文件,查看是否有一个META-INF的文件夹,如果有则代表已经签名;没有则表示没有签名。

     将一个已经签名的应用转化为一个未签名的应用方法非常简单,只需要将应用中的META-INF文件夹删除就可以了。

    可在解压应用界面(上图)直接删除;也可以先将应用程序的后缀名由apk更改为rar等,再解压,删除,然后压缩,将后缀名改成apk。

    需要注意的一点是,在压缩时要保持原来的文件结构不变,需要选中所有文件(夹)来压缩,如下国:

     使用keytool 创建密钥

    打开jdk的bin文件夹

     在当前路径下打开命令行,输入命令:

    keytool -genkeypair -v -keystore realsil.keystore -alias realsil-keystore -keyalg RSA -validity 2000

    其中:

    • genkeypair 生成密钥对
    • alias 密钥库名称,即最后保存的文件名称(reaisil.keystore
    • alias 密钥别名(realsil-keystore
    • keyalg 密钥加密算法(RSA
    • validity 密钥有效时间,单位为天(2000天)
    然后输入密码,记住这个密码,我们接下来会再次用到。

    密码输入完毕后,按照提示进一步完善个人的其它信息:

    提示是否正确时,输入小写字母: y, 点击回车

    确认完毕后,会再次让你输入先前提供的密码。输入完毕后,点回车,这样当前目录下就会生成一个新的keystore文件。

    这样一个keystore就创建好了,完成后可以使用keytool -list 命令查看当前keystore 的详细信息:

    keytool -list -v -keystore realsil.keystore

    使用jarsigner进行签名

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore realsil.keystore Test_Demo.apk realsil-keystore -signedjar demo_signed.apk

    参数说明:

    在java 1.8环境下,verbose和digestalg两参数必须加上,否则生成的文件无法安装
    keystore 所使用的密钥
    Test_Demo.apk 要进行签名的文件
    realsil-keystore 密钥别名
    signedjar 将签好名的应用保存为demo_signed.apk。此参数可省略,省略后直接改变原文件为已签名文件,不会生成新的文件。

    执行:

    看到jar 已签名,代表签名成功,接下来便可以使用生成的demo_signed.apk进行安装了。

    PS: 

    本人测试环境为:win10 64位,jdk1.8, 如在不同环境下可能会不适用。

    参考链接

    对apk应用进行签名

  • 相关阅读:
    利用 AlwaysInstallElevated 提权
    一批内网文章分享
    关于DLL劫持提权
    Xposed+JustTrustMe关闭ssl证书验证
    关于windows组策略首选项提权
    关于代替Procdump dump lsass的两种方法
    与ServletContext相关的监听器
    java EE 监听器
    ServletContext
    GenericServlet
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/12850005.html
Copyright © 2011-2022 走看看