GeekCat 发表于 2015-8-26 10:20:57

Perfect Icon V2.42 注册机源代码

【文章标题】: Perfect Icon V2.42注册机源代码【文章作者】: geekcat
【作者邮箱】:【作者主页】:
【软件名称】:Perfect Icon V2.42【软件大小】:【加壳方式】: 无【保护方式】: 注册码
【编写语言】: Borland Delphi
【使用工具】: OD、PEID
【操作平台】: XP SP3【下载地址】:百度找【软件介绍】:【破解声明】:技术交流、学习,请不要用于商业用途!--------------------------------------------------------------------------------------------------------------------------------说明:之前的注册机用的是.NETFramework4.5框架写的,在打开是报错这是因为电脑上没安装.NETFramework4.0及以上版的问题,从这个注册机开始用.NETFramework2.0,之前给大家带不便请见谅~~
切入方式:1、工具按键事件;2、F12暂停法
算法总结:表一:2345679qwertyupadfghjkzxcvbnms字符串:Perfect Icon
1、注册码字符要是表“一”中的字符2、合要求的字符长度要大于等于10位3、合要求的注册码除头、首两位其余位AS值xor运算,结果与0x1E求余数4、合要求的注册码的最后一位与“表一”中余数(第3步)+1位相等;5、字符串“Perfect Icon”除最后一位外,其余各位AS值累加且和为0x404,   累加和与0x1E求余数为6、合要求的注册码的第二位与“表一”中余数(第5步)+1位(“w”)相等;
7、软件启动时只检查合要求注册码的最后一位,不对本身的合要求注册码的   的第二位进行检查,这是一个BUG;





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Perfect_Icon_V2._42
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
      }

      private void btnKeygen_Click(object sender, EventArgs e)
      {
            int i;
            int mod = 0;
            int num = 30;
            string secondChar = "w";
            string randomchars = "2345679qwertyupadfghjkzxcvbnms";
            string fourKey = MakePassword(randomchars, 7);
            string fiveKey = secondChar + fourKey;

            for (i = 0; i < fiveKey.Length; i++)
            {
                mod = mod ^ fiveKey;
            }

            int xornum = mod % num;
            string lastKey = randomchars.ToString();
            string oneKey = MakePassword(randomchars, 1);
            string key = oneKey + fiveKey + lastKey;


            txtKey.Text = key;

            Clipboard.SetText(txtKey.Text);
            labCopy.Visible = true;
            labCopy.Text = "注册码复制成功";
      }

      
      public static string MakePassword(string pwdchars, int pwdlen)
      {
            string tmpstr = "";
            int iRandNum;
            Random rnd = new Random();
            for (int i = 0; i < pwdlen; i++)
            {
                iRandNum = rnd.Next(pwdchars.Length);
                tmpstr += pwdchars;
            }
            return tmpstr;
      }

      private void txtKey_DoubleClick(object sender, EventArgs e)
      {

            if (txtKey.Text != "")
            {
                Clipboard.SetText(txtKey.Text);
                labCopy.Visible = true;
                labCopy.Text = "注册码复制成功";
            }
      }

      private void Form1_Load(object sender, EventArgs e)
      {
            labCopy.Visible = false;
      }

      private void linkPYG_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
      {
            System.Diagnostics.Process.Start("https://www.chinapyg.com");
      }

    }
}







GGLHY 发表于 2015-8-26 10:21:38

坐着沙发,前排学习!

GeekCat 发表于 2015-8-26 10:43:07

GGLHY 发表于 2015-8-26 10:21
坐着沙发,前排学习!

欢迎GG指导工作~~

zz100179 发表于 2015-8-26 10:43:21

像这种有特征码和密码表的怎么个思路?

GeekCat 发表于 2015-8-26 10:50:31

zz100179 发表于 2015-8-26 10:43
像这种有特征码和密码表的怎么个思路?

没有特殊的方法跟平常分析一样,一步一步来就跟到表那里了~

tree_fly 发表于 2015-8-26 20:20:44

发布代码时候,选择C#语法,会有语法高亮,阅读起来更好看一些。

wangwei1978 发表于 2015-8-26 21:48:22

高产啊{:soso_e100:}

GeekCat 发表于 2015-8-27 09:28:08

tree_fly 发表于 2015-8-26 20:20
发布代码时候,选择C#语法,会有语法高亮,阅读起来更好看一些。

我还不知道用这还可以选择呢,都是直接一个就完事了
回头学习一下

zhangshiyi 发表于 2017-3-23 19:15:05

学习 {:hug:}
页: [1]
查看完整版本: Perfect Icon V2.42 注册机源代码