某C#程序动态调试分析(二)——编写注册机
本帖最后由 cupgg 于 2016-7-27 22:37 编辑注册码算法分析接上文《某C#程序动态调试分析》
https://www.52hb.com/thread-26160-1-1.html
(出处: 吾爱汇编论坛)
C#程序的算法及分析注释如下:
private string getregcode()
{
string cPU = this.GetCPU(); //获取当前机器的cpu码;
string disk = this.GetDisk(); //获取当前机器的硬盘码;
string text = "";
int[] array = new int[] //先定义一个16位加密字符数组;
{
2,
3,
0,
4,
0,
6,
1,
9,
7,
4,
0,
9,
1,
1,
0,
5
};
int[] array2 = new int; //申请几个长度为16的数组;
int[] array3 = new int;
int[] array4 = new int;
int[] array5 = new int;
for (int i = 0; i < 16; i++) //对硬盘号+cup码进行计算出机器码
{
array2 = Convert.ToInt32(cPU.Substring(i, 1), 16);//将cpu码逐位赋予数组2;
array3 = Convert.ToInt32(disk.Substring(i, 1), 16);//将硬盘码逐位赋予数组3;
array4 = (array2 + array3) * array % 16; //将数组2、数组3与加密数组逐位运算,赋值给数组4;数组4= 生成机器码
array5 = (array4 * array4 + array * array4 + array) % 16; //将数组4与加密数组运算,赋值给数组5;
text += string.Format("{0:X}", array5); //将数组5中的值格式化为十六进制的形式,赋值给text变量;
}
return text; //返回计算出来的注册码;
}
下面提供两种编程方法:
用c#编写可以直接引用原程序的函数,因而是一种省时高效方法!
(一)易语言编写注册机
1、打开易语言,建立windows程序并规化好程序的界面;
2、单击注册按钮,进入代码编写界面并编写代码;
直接给出机器码,然后计算出注册码即可,
不需要计算硬盘码和cpu码,代码实现如下图所示:
3、编译生成可执行程序
(二)C#编写注册机
1、导出注册函数;
保存文件
2、创建C#windows程序项目,此处用Sharpdevelop建立项目,
因为是个简版的C#编译器使用比较方便,或者可以用大型的vs C#;
3、设计界面并修改代码;
双击注册按钮,进入代码界面,导入注册函数到项目中;
编写按钮的响应事件。
4、编译程序;
亲爱的楼主,为了保证教程的原创性,最后在教程中加有“www.xuepojie.com”或“吾爱汇编论坛”字样,感谢分享,么么哒!代表大家感谢你 本帖最后由 cupgg 于 2016-7-27 22:42 编辑
Shark恒 发表于 2016-7-27 21:46
亲爱的楼主,为了保证教程的原创性,最后在教程中加有“www.xuepojie.com”或“吾爱汇编论坛”字样,感谢分享 ...
原以为发布的教程上的图片上有网站自动添加的XuePoJe.com的水印就可以了呢! cupgg 发表于 2016-7-27 22:40
原以为发布的教程上的图片上有网站自动添加的XuePoJe.com的水印就可以了呢!
那个水印不行,因为复制粘贴别人的图片,系统也会增加水印。 谢谢楼主分享,学了 感谢发布原创作品! 感谢分享,正好需要,,,, 嗯 谢谢大佬指点
页:
[1]
2