搜索
查看: 272|回复: 6
收起左侧

[网络插件] VMP 3.x 通用注册机

[复制链接]

签到天数: 2 天

[LV.1]初来乍到

发表于 2023-10-26 14:57:46 | 显示全部楼层 |阅读模式
1.png

程序需要在VMP软件里导出密钥对:菜单->项目->导出密钥对->导出格式(.Net/PayPro Global的参数),并将其复制到目录SecretKey.txt里,如果目录里,没有SecretKey.txt文件,运行一次本程序即可自动生成一个。

2.png

软件下载:
游客,如果您要查看本帖隐藏内容请回复


验证状态:

enum VMPState
{
                Success,          // 验证成功
                RunningTimeOver,  // 单次运行时间限制
                DateExpired,      // 运行时间到期
                MaxBuildExpired,  // 创建时间到期
                BadHwid,          // 机器码不匹配
}


源码

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
using VMProtect.KeyGen;

namespace VMP_KeyGenNet
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        Generator generator;
        string path = AppDomain.CurrentDomain.BaseDirectory + "SecretKey.txt";  // 保存密钥数据
        Dictionary<Control, Control> dicRegData = new Dictionary<Control, Control>();

        //默认生成一个密钥数据
        string initData = @"PHZtcC1sbS1wcm9kdWN0IGFsZ29yaXRobT0iUlNBIiBiaXRzPSIyMDQ4IiBleHA9InBDdjJ1Z2xm
eWNqTXd1MmozTHhxQ0VOeGVzNzZjMjVQNVcvNC9JUmlxN251ZU9BMk9sbWlVMWlFR0FWYTNaTnRz
K1JkRU5HTHVJSkVYa2czdzBxNWpNSi93TDhpRFhDV3VZMVhmUkxiWmFPUXZXZWZIYWl3SEtMdHNH
YWVRNDU3K1RjdncxanJQQVl6b0l1SjY1Y2JXUXl0RUhiLzJtOVk0MXB6cmJYRU9Idk5mN2RwK3I0
aGQxUWEyMFZQWGpBODQ4ekxCSlVxMW1Ld3RxenVOOHpwTk9OUGNEcTZLRWE0anZTY2VQR3VrUUFr
ZU95UHJiY203VVZhd0lEOHYyVmRWWENsMEdTM1JGZGYzWi80RnpDNDQ3cThJTFEzZi9kajhXaXl1
OXdXS1JrVjh1SUpVZnovYnM2RnFKK3RVWWpMR29wSitvV0FiR1g3eFdMTmlQWE5FUT09IiBtb2Q9
IjBkMUN1S3pjQ3lYc0lBSnVRL045am4rRTlHWFBvdU14NUhuVWoyVjdMVTJITEt5USt2SXVoZXFW
N0c3b09lb2dIU3Z0SzhGRUdZNVYyVVk4cURCbVlhYUtsNWZWRkhJd2JTZkZ1cjVqdGNYOUt5b2JU
MlRCU2pkMVBhMzdkUGZvakxWNzNqK01heENpMjRFWjBrUVFkWHZ0RFFYa3phU1QraHJDZG1qelJL
ZndxeG9qYzJtSkNkYldFUHNFQkhKaHoxM0cwYndrUnFLSGRYUjVTanhzWkRxb3ZXSVFubWwzOUtU
TE00VHA1bzRUSHRVMkNZWm1sbThGS1ZCWE8vZTFRb2VTbHl0YndRcFBNZzVvYy9aV1NOZWt4Mm5K
a1VzMkdxN3dFWTBYeE5kSkllWmpESmhSQkdHbk1OWnZldllkdXdjTk9aWUNPN3BnT3AyUFdhMnNL
UT09IiBwcm9kdWN0PSJQUUo0ZVR2VDN2Yz0iLz4=";

        private void MainForm_Load(object sender, EventArgs e)
        {
            //本机硬件ID
            textBoxHWID.Text = VMProtect.SDK.GetCurrentHWID();

            //判断SecretKey.txt文件是否存在,不存在就写一个默认值
            if (!File.Exists(path)) File.WriteAllText(path, initData);
            else initData = File.ReadAllText(path);

            generator = new Generator(initData);

            dicRegData.Add(checkBoxUserName,textBoxUserName);
            dicRegData.Add(checkBoxEMail,textBoxEMail);
            dicRegData.Add(checkBoxHardwareID,textBoxHardwareID);
            dicRegData.Add(checkBox4ExpirationDate,dateTimePickerExpirationDate);
            dicRegData.Add(checkBoxRunningTimeLimit,textBoxRunningTimeLimit);
            dicRegData.Add(checkBoxMaxBuildDate,dateTimePickerMaxBuildDate);
            dicRegData.Add(checkBoxUserData,textBoxUserData);
            //控件初状态为关闭
            foreach (var value in dicRegData.Values)
            {
                value.Enabled = false;
            }
        }

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
            //CheckBox勾选后,后面的控件打开
            foreach (var key in dicRegData.Keys)
            {
               if(((CheckBox)key).Checked) dicRegData[key].Enabled = true;
               else dicRegData[key].Enabled = false;
            }
        }

        /// <summary>
        /// 生成注册码
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonGenerate_Click(object sender, EventArgs e)
        {
            textBoxRegCode.Text = string.Empty;
            generator.UserName = textBoxUserName.Text;
            generator.EMail = textBoxEMail.Text;
            generator.HardwareID = textBoxHardwareID.Text;
            generator.ExpirationDate = dateTimePickerExpirationDate.Value;
            if (!string.IsNullOrEmpty(textBoxRunningTimeLimit.Text))
                generator.RunningTimeLimit = Convert.ToInt32(textBoxRunningTimeLimit.Text);
            generator.MaxBuildDate = dateTimePickerMaxBuildDate.Value;
            if (!string.IsNullOrEmpty(textBoxUserData.Text))
                generator.UserData = Encoding.Default.GetBytes(textBoxUserData.Text);
            textBoxRegCode.Text = generator.Generate();
        }

        /// <summary>
        /// 复制注册码
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonCopy_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBoxRegCode.Text)) return;
            Clipboard.SetDataObject(textBoxRegCode.Text);
        }

        /// <summary>
        /// 保存注册码
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBoxRegCode.Text)) return;
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Title = "保存注册码";
            saveDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            saveDialog.Filter = "文本文件| *.txt";
            if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                File.WriteAllText(saveDialog.FileName, textBoxRegCode.Text);
                MessageBox.Show(Path.GetFileName(saveDialog.FileName) + "保存成功", "提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }

        /// <summary>
        /// 验证注册码,这里的功能必须使用VMP将注册机也要加壳才有用
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonVerify_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBoxRegCode.Text)) return;
            VMProtect.SDK.SetSerialNumber(textBoxRegCode.Text);
            VMProtect.SDK.GetSerialNumberState();
            VMProtect.SerialNumberData sd;
            var res = VMProtect.SDK.GetSerialNumberData(out sd);
            if (res)
            {
                MessageBox.Show("状态 : " + sd.State + Environment.NewLine +
                    "用户名 : " + sd.UserName + Environment.NewLine +
                    "邮箱 : " + sd.EMail + Environment.NewLine +
                    "到期日期 : " + sd.Expires + Environment.NewLine +
                    "最大创建时间 : " + sd.MaxBuild + Environment.NewLine +
                    "运行时间限制 : " + sd.RunningTime + Environment.NewLine +
                    "用户数据 : " + Encoding.Default.GetString(sd.UserData) + Environment.NewLine , "提示", MessageBoxButtons.OK);
            }
        }
    }
}








上一篇:4K高清壁纸图片批量下载工具 v1.6
下一篇:微信/QQ/TIM防撤回补丁v1.7

签到天数: 117 天

[LV.6]常住居民II

发表于 2023-10-26 21:55:59 | 显示全部楼层
正需要,支持楼主大人了!
回复 支持 反对

使用道具 举报

签到天数: 585 天

[LV.9]以坛为家II

发表于 2023-10-27 08:40:50 | 显示全部楼层
确实是难得好帖啊,顶先
回复 支持 反对

使用道具 举报

签到天数: 15 天

[LV.4]偶尔看看III

发表于 2023-10-28 08:41:36 来自手机 | 显示全部楼层
感谢感谢感谢
回复 支持 反对

使用道具 举报

签到天数: 10 天

[LV.3]偶尔看看II

发表于 2023-10-28 14:49:59 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2024-1-22 09:37:42 | 显示全部楼层
验证状态:
回复 支持 反对

使用道具 举报

签到天数: 88 天

[LV.6]常住居民II

发表于 2024-4-24 20:49:51 | 显示全部楼层
楼主,你是一个大好人!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

快速回复 返回顶部 返回列表