.NET Android 签名验证工具
admin
2023-08-02 16:00:12
0
using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
using Microsoft.Win32;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private string javaHome;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string JRE_REGISTRY_KEY = @\"HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\";

            string jreVersion = (string)Registry.GetValue(JRE_REGISTRY_KEY, \"CurrentVersion\", null);
            string keyName = Path.Combine(JRE_REGISTRY_KEY, jreVersion);

            javaHome = (string)Registry.GetValue(keyName, \"JavaHome\", null);
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                e.Effect = DragDropEffects.Copy;
        }

        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
            foreach (string file in files)
            {
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.WorkingDirectory = \"\";
                startInfo.FileName = javaHome + \"\\\\bin\\\\keytool.exe\";
                startInfo.Arguments = \"-printcert -rfc -jarfile \\\"\" + file + \"\\\"\";
                startInfo.UseShellExecute = false;
                startInfo.RedirectStandardOutput = true;
                startInfo.RedirectStandardError = true;
                startInfo.CreateNoWindow = true;


                Process process = Process.Start(startInfo);
                process.EnableRaisingEvents = true;
                process.Exited += delegate(object s, EventArgs eventArgs)
                {
                    string output = process.StandardOutput.ReadToEnd();
                    if (output != \"\")
                    {
                        if (output.Contains(\"证书所有者:\"))
                        {
                            if (output.Contains(\"证书所有者: CN=Louis Lu, OU=Sinyee Inc, O=Sinyee Inc, L=FuZhou, ST=FuJian, C=CN\"))
                                MessageBox.Show(Path.GetFileName(file) + \" 证书正确\", \"\", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            else
                                MessageBox.Show(Path.GetFileName(file) + \" 证书错误\", \"\", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                            MessageBox.Show(output, \"\", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    string error = process.StandardError.ReadToEnd();
                    if (error != \"\")
                        MessageBox.Show(error, \"\", MessageBoxButtons.OK, MessageBoxIcon.Error);
                };
            }
        }
    }
}

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...