请问这是不是检查签名有变动的JAVA语句?

正在学习逆向,想知道这个是不是检查签名有变动?谢谢

package com.android.support;

import android.content.Context;
import android.content.pm.Signature;
import android.os.Process;
import android.util.Base64;
import android.widget.Toast;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

public class GetConfig {

public static String text(String str) {
    String str2 = "";
    try {
        String str3 = r10;
        String str4 = new String(Base64.decode(str, 0), "UTF-8");
        str2 = str3;
    } catch (Exception e) {
        Exception exception = e;
    }
    return str2;
}

public static void checker(Context context, String str) {
    StringBuffer stringBuffer;
    Context context2 = context;
    String str2 = str;
    try {
        Signature[] signatureArr = context2.getPackageManager().getPackageInfo(context2.getPackageName(), 64).signatures;
        CertificateFactory instance = CertificateFactory.getInstance(text("WDUwOQ=="));
        InputStream inputStream = r16;
        InputStream byteArrayInputStream = new ByteArrayInputStream(signatureArr[0].toByteArray());
        byte[] digest = MessageDigest.getInstance(text("U0hBMQ==")).digest(((X509Certificate) instance.generateCertificate(inputStream)).getEncoded());
        StringBuilder stringBuilder = r16;
        StringBuilder stringBuilder2 = new StringBuilder(digest.length * 2);
        StringBuilder stringBuilder3 = stringBuilder;
        for (int i = 0; i < digest.length; i++) {
            String toHexString = Integer.toHexString(digest[i]);
            int length = toHexString.length();
            if (length == 1) {
                StringBuffer stringBuffer2 = r16;
                stringBuffer = new StringBuffer();
                toHexString = stringBuffer2.append("0").append(toHexString).toString();
            }
            if (length > 2) {
                toHexString = toHexString.substring(length - 2, length);
            }
            stringBuilder = stringBuilder3.append(toHexString.toUpperCase());
            if (i < digest.length - 1) {
                stringBuilder = stringBuilder3.append(':');
            }
        }
        String stringBuilder4 = stringBuilder3.toString();
        if (!stringBuilder4.equals(text(str2))) {
            System.exit(0);
        }
        if (!stringBuilder4.equals(text(str2))) {
            Process.killProcess(Process.myPid());
        }
    } catch (Exception e) {
        Exception exception = e;
        Context context3 = context2;
        stringBuffer = r16;
        StringBuffer stringBuffer3 = new StringBuffer();
        Toast.makeText(context3, stringBuffer.append(text("RXJyb3I6IA==")).append(exception).toString(), 1).show();
        System.exit(0);
    }
}

public GetConfig() {
    GetConfig getConfig = this;
}

}

问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题