写了个Key生成器

工作中需要不同数据库之间导数据,于是找了个工具,作者还是不错的,免费给大家用,虽然未注册有些限制,但不是海量数据的话应该问题也不大。

然而还是好奇其校验注册的方法,于是分析看看。代码混淆过,蛮乱的,找到了关键点,爆破之,结果却无法运行,而且360还提示说有木马行为。。。难道作者还搞了暗桩?

第二天头脑清醒一些后又开始分析,这回是着手于查看注册方式。把相关的读取Key的相关算法找出来并贴到Vs.net中,再手工F2重命名各个变量,调整Goto跳转,去除干扰代码,分析代码逻辑后再把几个看似有循环递归的函数整理了一轮(断开递归)。

这下能够从明文反推密文了,最后把加密过程反过来写成了Key生成代码,整理如下:

            string lic = textBox1.Text;
            lic = lic.Insert(1, "#######");
            lic = "###" + lic + "###";
            Encoding unicode = Encoding.Unicode;
            char[] c_arr = lic.ToCharArray();
            byte[] b_arr = unicode.GetBytes(c_arr);
            string str = Convert.ToBase64String(b_arr);

            str = str.Insert(0x2, "#");
            if (str.Length > 0x35)
                str = str.Insert(0x33, "##");

            str += "#";
            str = str + "#" + str;

            textBox2.Text = str;//

 

你可能感兴趣的:(写了个Key生成器)