java方式调用apksigner对Apk 检查是否签名异常 v1、v2、v3、v4 (JAVA)

apksigner

apksigner 是 Google 官方提供的针对 Android Apk 签名和验证的专用工具,位于 Android SDK / build-tools / SDK 版本 / apksigner 。

无论是 apk 包 还是 jar 包,其本质都是 zip 格式的压缩包,如果只针对 v1 签名的话,两者的签名过程其实差不多。

apksigner 工具默认同时使用 v1 和 v2 签名

在终端输入如下命令即可

java -jar apksigner.jar verify –print-certs –min-sdk-version=24 -v 11.apk

file

JAVA方式调用校验

jar包自己改过,之前只能man调用。修改后抽出了一个公共方法调用。

apksigner-1.1.jar包下载
链接: https://pan.baidu.com/s/1Z6QQA7870C-Y4MB_6K6zVg 提取码: ex92

测试代码:

package com.utils.sign;

import com.alibaba.fastjson.JSON;
import com.android.apksig.ApkVerifier;
import com.android.apksigner.ApkSignerTool;

public class ApkV2SignInfo {

    /**
     * 判断v1~v4签名是否通过
     */
    public static boolean getApkSingInfo(String apkPath) {
        String[] arg = {"--print-certs","--min-sdk-version=24","-v",apkPath};
        try {
             ApkVerifier.Result result = ApkSignerTool.verify2(arg);
             return (result !=null && result.isVerified())?true : false; 
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    //java -jar apksigner-1.0.jar verify --print-certs --min-sdk-version=24 -v 12.apk
    public static void main(String[] args) {
        String apkPath = "F:\\11.APK";
        String[] arg = {"--print-certs","--min-sdk-version=24","-v",apkPath};
        try {
//          ApkSignerTool.main(arg);
             ApkVerifier.Result result = ApkSignerTool.verify2(arg);
             System.out.println(result.isVerified());
             System.out.println(JSON.toJSONString(result));
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

运行得到结果
file

发布者:小站,转转请注明出处:http://blog.gzcity.top/4817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年12月6日 14:46
下一篇 2022年12月9日 17:51

相关推荐

  • chrome怎么导入证书 chrome导入证书的图文步骤

    我们在使用谷歌浏览器时,有时需要导入证书,但是很多人不知道怎么操作,那么Google浏览器怎么导入证书呢,下面本文就介绍一下。 我的Chrome的版本是 1.首先,打开电脑上面的Google之后,点击浏览器右上角的“三个点”按钮,如图所示。 2.然后选择下拉菜单中的“设置”,进入Google的系统设置,如图所示。 3.进入Google的设置之后,点击&quo…

    2022年9月13日
    79110
  • linux启动php-cgi,linux下php-fpm启动参数及重要配置

    php-fpm我们并不陌生了,下面来介绍一篇php-fpm 启动参数及重要配置的文章,如果各位对于php-fpm 启动参数及重要配置不了解可以进来看看。 约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini I. php-fp…

    学习笔记 2022年9月25日
    991390
  • Intellij IDEA激活码,IDEA稳定专属激活码

    2018.2~2023版本用这个,下面激活码直接复制粘贴到activation code即可激活软件,如果是新的版本,换新激活码的时候code with me也要激活一次 FDXL1Y2811-eyJsaWNlbnNlSWQiOiJGRFhMMVkyODExIiwibGljZW5zZWVOYW1lIjoiQmVub2l0IE1lbmVuZGV6IiwiYXN…

    2023年4月13日
    11.3K1880
  • log4j 0day漏洞情况分析及说明

    一、背景简介 2022年7月30日起,各大威胁情报社区及安全圈内开始盛传log4j存在0day漏洞,由于log4j在去年12月爆出严重的jndi注入漏洞,可通过在特定点插入恶意的jndi payload达到执行任意代码进而控制主机的目的。 log4j2(一般简称log4j)是Apache基金会开发维护的开源java日志组件,在以Java开发的系统中大量被直接…

    2022年8月3日
    79000
  • 关于Apache log4j存在远程代码执行漏洞的预警

    12月9日晚,互联网上公开了Apache log4j2的一个严重级别的远程代码执行漏洞。由于Apache log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求触发远程代码执行漏洞,而无需特殊配置。Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受此漏洞影响。鉴于该框架应用范围极广,且漏洞利…

    2022年8月3日
    859130

回复 Lazrcuy

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1,199条)