给软件加注册码工具给自己的软件Software制作注册码
给软件加注册码工具:给自己的软件Software制作注册码
疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/DotNet/Article61775.html "翻身做主"--给自己软件Software制作注册码
从今天起, 您开发任何软件Software如果您愿意都可以为的加密 --为您软件Software制作款注册机!
当您看完这篇文章时, 您就可以理直气壮告诉您用户 : "喂, 想用我软件Software是吧 ? 掏钱!".
呵呵, 这当然只是给自己壮胆话, 现在连万能注册机都有了, 人家还怕啥 ? 不过只要您想想微软, 人家再牛B加密技术都会被国人"鄙视"? 但人家不也在中国大把大把捞钱吗?
OK, 不扯了, 我们进入正题.
同般软件Software注册样, 我们这里注册是这样进行:
1. 首先根据用户硬件信息生成24位机器码
-- 相当于种子,用于生成随机数
2. 采用注册机根据特征数字生成个24位注册码
-- 相当于伪随机数生成器, 输出长度自己定, 最后用个格式化,将随机数映射到ASCII集合
3. 用户输入注册码注册成功
假设客户很喜欢您软件Software, 也假设他没有破解, 他需要通过以下方式向您取得注册码:
(1).如果他能上网, 他需要把机器码用Email发给您;
(2).如果他不能上网, 他可以把机器码用手机短信方式发给您.
(3).如果他没有手机, 他可以带着机器码然后坐火车到您办公室想您要个注册码.
--第3条只是为了让您看帖子时候别太枯燥了, 抱歉.
现在, 您拿到了客户机器码后, 如果您同时也收到了他汇钱, 呵呵, 好像给软件Software加密就是为了要钱吧? 那么您就可以用客户机器码生成个唯注册码再用同样方式给用户, 最后, 用户输入注册码即可!
需要强调是客户机器硬件信息获取方式是有很多种选择. 这里我们选择最放心两个硬件: CUP序列号和硬盘卷标
号. 好了, 下面您就可以步步制作款软件Software注册机了.
步骤: 获得CUP序列号和硬盘序列号实现代码如下:
view plaincopy to clipboardpr?
public getCpu
{
strCpu = null;
ManagementClass myCpu = ManagementClass("win32_Processor");
ManagementObjectCollection myCpuConnection = myCpu.GetInstances;
foreach (ManagementObject myObject in myCpuConnection)
{
strCpu = myObject.Properties["Processorid"].Value.;
;
} strCpu;
}
public getCpu
{
strCpu = null;
ManagementClass myCpu = ManagementClass("win32_Processor");
ManagementObjectCollection myCpuConnection = myCpu.GetInstances;
foreach (ManagementObject myObject in myCpuConnection)
{
strCpu = myObject.Properties["Processorid"].Value.;
;
} strCpu;
}
view plaincopy to clipboardpr?
// 取得设备硬盘卷标号
public GetDiskVolumeSerialNumber
{
ManagementClass mc = ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObject disk = ManagementObject("win32_logicaldisk.deviceid=\"d:\"");
disk.Get;
disk.GetPropertyValue("VolumeSerialNumber").;
}
// 取得设备硬盘卷标号
public GetDiskVolumeSerialNumber
{
ManagementClass mc = ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObject disk = ManagementObject("win32_logicaldisk.deviceid=\"d:\"");
disk.Get;
disk.GetPropertyValue("VolumeSerialNumber").;
}
步骤 2: 收集硬件信息生成机器码, 代码如下:
view plaincopy to clipboardpr?
//生成机器码
private void button1_Click(object sender, EventArgs e)
{
label2.Text = getCpu + GetDiskVolumeSerialNumber;//获得24位Cpu和硬盘序列号
strid = [24];
for ( i = 0; i
{
strid[i] = label2.Text.Sub(i, 1);
} label2.Text = "";
Random rdid = Random;
for ( i = 0; i
{
label2.Text strid[rdid.Next(0, 24)];
}
}
//生成机器码
private void button1_Click(object sender, EventArgs e)
{
label2.Text = getCpu + GetDiskVolumeSerialNumber;//获得24位Cpu和硬盘序列号
strid = [24];
for ( i = 0; i
{
strid[i] = label2.Text.Sub(i, 1);
} label2.Text = "";
Random rdid = Random;
for ( i = 0; i
{
label2.Text strid[rdid.Next(0, 24)];
}
}
步骤 3: 使用机器码生成软件Software注册码, 代码如下:
view plaincopy to clipboardpr?
public Code = [127];//用于存密钥
public void IntCode//给赋值个小于10随机数
{
Random ra = Random;
for ( i = 1; i
{
Code[i] = ra.Next(0, 9);
}
}
public Number = [25];//用于存机器码Ascii值
public char Charcode = char[25];//存储机器码字
//生成注册码
private void button2_Click(object sender, EventArgs e)
{
(label2.Text != "")
{ //把机器码存入中
IntCode;//化127位
for ( i = 1; i
{
Charcode[i] = Convert.ToChar(label2.Text.Sub(i - 1, 1));
}//
for ( j = 1; j
{
Number[j] = Code[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]);
}
strAsciiName = null;//用于存储机器码
for ( j = 1; j
{
//MessageBox.Show((Convert.ToChar(Number[j])).);
(Number[j] >= 48 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
(Number[j] >= 65 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
(Number[j] >= 97 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
//判断ASCII值不在以上范围内
{
(Number[j] > 122)//判断ASCII值是否大于z
{
strAsciiName Convert.ToChar(Number[j] - 10).;
}
{
strAsciiName Convert.ToChar(Number[j] - 9).;
}
}
label3.Text = strAsciiName;//得到注册码
}
}
{
MessageBox.Show("请选生成机器码", "注册提示");
}
}
public Code = [127];//用于存密钥
public void IntCode//给赋值个小于10随机数
{
Random ra = Random;
for ( i = 1; i
{
Code[i] = ra.Next(0, 9);
}
}
public Number = [25];//用于存机器码Ascii值
public char Charcode = char[25];//存储机器码字
//生成注册码
private void button2_Click(object sender, EventArgs e)
{
(label2.Text != "")
{ //把机器码存入中
IntCode;//化127位
for ( i = 1; i
{
Charcode[i] = Convert.ToChar(label2.Text.Sub(i - 1, 1));
}//
for ( j = 1; j
{
Number[j] = Code[Convert.ToInt32(Charcode[j])] + Convert.ToInt32(Charcode[j]);
}
strAsciiName = null;//用于存储机器码
for ( j = 1; j
{
//MessageBox.Show((Convert.ToChar(Number[j])).);
(Number[j] >= 48 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
(Number[j] >= 65 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
(Number[j] >= 97 && Number[j]
{
strAsciiName Convert.ToChar(Number[j]).;
}
//判断ASCII值不在以上范围内
{
(Number[j] > 122)//判断ASCII值是否大于z
{
strAsciiName Convert.ToChar(Number[j] - 10).;
}
{
strAsciiName Convert.ToChar(Number[j] - 9).;
}
}
label3.Text = strAsciiName;//得到注册码
}
}
{
MessageBox.Show("请选生成机器码", "注册提示");
}
}
步骤 4: 用户输入注册码注册软件Software, 演示代码如下:
view plaincopy to clipboardpr?
private void btnRegist_Click(object sender, EventArgs e)
{
(label3.Text != "")
{
(textBox1.Text.TrimEnd.Equals(label3.Text.TrimEnd))
{
Microsoft.Win32.RegistryKey retkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd); retkey.SetValue("UserName", "MySoft");
MessageBox.Show("注册成功");
}
{ MessageBox.Show("注册码输入"); }
}
{
MessageBox.Show("请生成注册码", "注册提示");
}
}
private void btnRegist_Click(object sender, EventArgs e)
{
(label3.Text != "")
{
(textBox1.Text.TrimEnd.Equals(label3.Text.TrimEnd))
{
Microsoft.Win32.RegistryKey retkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("software",true).CreateSubKey("ZHY").CreateSubKey("ZHY.INI").CreateSubKey(textBox1.Text.TrimEnd);
retkey.SetValue("UserName", "MySoft");
MessageBox.Show("注册成功");
}
{ MessageBox.Show("注册码输入"); }
}
{
MessageBox.Show("请生成注册码", "注册提示");
}
}
转自:http://www.cnblogs.com/ziyiFly/archive/2008/09/22/1296096.html
2009-2-5 1:53:28
疯狂代码 http://CrazyCoder.cn/
相关文章
- 学科工具软件及其在学科教育教学中的应用解析
- ps软件辅助软件类型说明 [祝大家新年好]英语和汉语说明
- 电脑常见故障软件
- IE浏览器主页被修改怎么办?
- 电脑常见问题处理大全(三)
- 电脑使用技巧大全荟萃
- 常见电脑问题解决
- 计算机专有名词解释
- 密码破解3
学科工具软件及其在学科教育教学中的应用 该文主要以化学为例,讨论了学科工具软件的概念内涵.特点和种类,与通用工具软件.课件.积件的区别,及其在辅助学科教育教学和课件制作的应用,提出:学科工具软件是一种重要的.特殊的学科教育教学资源,它既是信 ...
热度 1已有 332 次阅读2011-1-15 00:29 |个人分类:PS绝对超级技巧| Tiffen Dfx v2.0中文版(PS后期调色滤镜绿色汉化版) 水晶,玻璃材质效果滤镜Panopticum Lens Pro 3.85正式版 人 ...
一.文件丢失 开机出现"Windows找不到文件1" 杀完毒后系统提示找不到.exe程序 找不到文件C:\program 找不到command.exe文件 SATA硬盘安装XP找不到驱动的解决方法 无法打开注册表,提示w ...
[教程]IE浏览器主页被修改怎么办? 手动修复被窜改的浏览器主页 流氓网站,顾名思义就是那些使用不正当手段修改你主页的网站,它们是在臭名昭著的流氓软件衰败后冒出的.部分流氓网站还与病 毒勾肩搭背,借助一些木马下载器推广一起暗算你的电脑. 设 ...
1:双击无法打开文件夹 问:我的电脑出了问题,在资源浏览器或者我的电脑里面无法打开文件夹,双击鼠标不是打开文件夹而是进入了搜索界面,请问这是为什么? 答:可以修改注册表来恢复,进入注册表的HKEY_CLASSES_ROOT\\Directo ...
1. 任务栏里的显示桌面丢失了怎么办? 简单的方法:: 记事本新建输入: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop 保存为 显示桌面. ...
1.Word 打不开怎么办 试试下面的方法,引自网络! 1. 将引号里面的"%appdata%\microsoft\templates"粘贴到"运行",回车:删除normal.dot . 2. 删除微 ...
1.公司及其商标名 Microsoft: 有时缩略为MS ,是全球最著名的软件商,美国软件巨头微软公司的名字.Microsoft 其实是由两个英语单词组成:Micro 意为"微 小",Soft 意为"软的&qu ...
[replyview]2000 xp管理员密码破解实战 Rock2000 一.删除SAM文件,清除Administrator账号密码 二.从SAM文件中 查找密码 三.用密码重设盘设新密码 四.修改屏保文件法 五.使用软件修改密码 Wind ...