zoukankan      html  css  js  c++  java
  • [原创]公布读取瑞星注册码的小程序源代码

    大概一年多了,瑞星一直都没更改其序列号保存方式。这还是偶在学校时无聊研究的。
    偶是菜鸟,就不多说了。
     关键代码如下:

     1            string risingpath;
     2            int i, j = 0long snoffset, idoffset;
     3
     4            //以下读取
     5            //HKEY_LOCAL_MACHINE\SOFTWARE\rising\Rav,并存在risingpath
     6            RegistryKey hklm = Registry.LocalMachine;
     7            RegistryKey software = hklm.OpenSubKey("SOFTWARE"true);
     8            RegistryKey rising = software.OpenSubKey("rising");
     9            RegistryKey rav = rising.OpenSubKey("Rav");
    10            risingpath = rav.GetValue("installpath").ToString() + "\\RsConfig.cfg";
    11
    12            //以下操作RsConfig.cfg
    13            File.Copy(risingpath, "C:\\RsConfig.cfg"true);
    14
    15            FileStream bf = new FileStream("C:\\RsConfig.cfg", FileMode.Open, FileAccess.ReadWrite);
    16
    17            byte[] key = new byte[8];
    18            byte[] data = new byte[bf.Length];
    19            byte[] newdata = new byte[bf.Length];
    20            byte[] sndata = new byte[] 6711711411410111011683110 };
    21            byte[] iddata = new byte[] 6711711411410111011685115101114073068 };
    22            byte[] sn = new byte[27];
    23
    24            //将RsConfig.cfg文件读入data数组,将解密KEY读入key数组
    25            bf.Read(data, 0, data.Length);
    26            bf.Seek(128, System.IO.SeekOrigin.Begin);
    27            bf.Read(key, 08);
    28
    29            //解密配置文件 
    30            for (i = 0; i < data.Length; i++)
    31            {
    32                newdata[i] = (byte)((int)(data[i]) ^ (int)(key[j]));
    33                j++;
    34                if (j == 8) j = 0;
    35            }

    36
    37            snoffset = searchchar(newdata, sndata) - 27;
    38
    39                    
    40            for (i = 0; i < 27; i++)
    41            {
    42                textBox1.Text += ((char)(newdata[snoffset + i])).ToString();
    43            }

    44            idoffset = searchchar(newdata, iddata) - 15;
    45            for (i = 0; i < 12; i++)
    46            {
    47                textBox2.Text += ((char)(newdata[idoffset + i])).ToString();
    48            }

    49            bf.Close();
    50            File.Delete("C:\\RsConfig.cfg");
  • 相关阅读:
    mysql的锁
    设计模式相关
    分布式缓存
    myBatis相关
    mevan相关
    Java 一些缩写的解释
    Spring相关
    Java中PreparedStatement和Statement的用法区别
    Java线程池
    spring中的事务传播机制
  • 原文地址:https://www.cnblogs.com/madgoat/p/524650.html
Copyright © 2011-2022 走看看