各位看官大家好,俗话说的好,近朱者赤,近墨者黑。本人3天前在看雪论坛注册ID,当时对破解,crack,IAT,等等连个概念都没有,在论坛里泡了3天,看了很多各方面的贴子,感觉到收入良多,今日正好看见了一个软件的破解过程,按作者的方法,成功找到注册码,破解了软件,心中一阵窃喜,因为这是本人第一次破解软件,当然高兴啦!后来觉得闲来无事,干脆就研究一下注册码的算法,结果还让我看出点儿门道,为了让和我一样的菜菜们能学点儿新东西,特别将过程发出来,也算是为本论坛出一份薄力吧。因为本人就是菜鸟一个,所以写出来的东东,各位菜友应该能看懂的!
好了,进入正题!
SuperCleaner 2.61*注:此文给新手看,高手不要浪费时间
软件大小:386KB
软件语言:英文
软件类别:国外软件/免费版/卸载工具
运行环境:Win9x/Me/NT/2000/XP
下载地址:http://www.onlinedown.net/soft/6433.htm
软件介绍:是帮助用户清洗他们的计算机硬盘内不必要的文件的程序。它能扫描你的系统让你选择不再需要的文件进行删除。并能备份文件已避免你误删除有用的文件,此备份功能将不必要的文件扔进再循环箱,这样可以让你再必要的时候恢复信息。
软件的破解内容请参见论坛里的另外一贴。
这里我主要想和大家研究一下注册码的算法。该软件的注册方式为“用户名+注册码”方式,注册码分为4段即“XXXX-XXXX-XXXX-XXXX”形式。首先要找到注册码的算法代码,在上面的贴子里有,这里就不多说了。下面就是注册码各部分算法的代码。
注册码第一部分算法:
00419841 |> /0FBE1C38 /movsx ebx,byte ptr ds:[eax+edi] "ds:[edi]中存放的为用户名"
00419845 |. |03DA |add ebx,edx "edx中存放一常数38"
00419847 |. |03CB |add ecx,ebx
00419849 |. |40 |inc eax "指向用户名中下一个字母"
0041984A |. |3BC6 |cmp eax,esi "比较用户名是否结束,esi中存放用户名长度"
0041984C |.^7C F3 jl short SuperCle.00419841 "循环取数计算"
注册码第二部分算法:
00419873 |> /0FBE2C38 /movsx ebp,byte ptr ds:[eax+edi]
00419877 |. |0FAFEA |imul ebp,edx "edx中存放一常数52"
0041987A |. |03CD |add ecx,ebp
0041987C |. |40 |inc eax
0041987D |. |3BC6 |cmp eax,esi
0041987F |.^7C F2 jl short SuperCle.00419873
注册码第三部分算法:
004198AF |> /0FBE2C38 /movsx ebp,byte ptr ds:[eax+edi]
004198B3 |. |03EA |add ebp,edx "edx中存放一常数12"
004198B5 |. |03CD |add ecx,ebp
004198B7 |. |40 |inc eax
004198B8 |. |3BC6 |cmp eax,esi
004198BA |.^7C F3 jl short SuperCle.004198AF
注册码第四部分算法:
004198EA |> /0FBE2C38 /movsx ebp,byte ptr ds:[eax+edi]
004198EE |. |0FAFEA |imul ebp,edx "edx中存放一常数14"
004198F1 |. |03CD |add ecx,ebp
004198F3 |. |40 |inc eax
004198F4 |. |3BC6 |cmp eax,esi
004198F6 |.^7C F2 jl short SuperCle.004198EA
相信看完上面的注册码算法,大家也差不多都能写出具体的算法了吧,不过像和我一样的菜菜们,可能还是有些不太明白的地方,没关系下面就是根据的算法,得到的注册码计算公式。
第一部分注册码算法:(用户名中的每一个字母的ASCII码+38)的累计数。
第二部分注册码算法:(用户名中的每一个字母的ASCII码*52)的累计数。
第三部分注册码算法:(用户名中的每一个字母的ASCII码+12)的累计数。
第四部分注册码算法:(用户名中的每一个字母的ASCII码*14)的累计数。
这下应该比较直观了,要是还不明白,还是没关系,因为最后还有举例说明,俺想的周到吧!
举例:用户名:123456,注册码计算流程如下:
123456的ASCII码分别为十进制的49,50,51,52,53,54。
第一部分注册码:(49+38)+(50+38)+(51+38)+(52+38)+(53+38)+(54+38)=537;
第二部分注册码:(49*52)+(50*52)+(51*52)+(52*52)+(53*52)+(54*52)=16068;
第三部分注册码:(49+12)+(50+12)+(51+12)+(52+12)+(53+12)+(54+12)=381;
第四部分注册码:(49*14)+(50*14)+(51*14)+(52*14)+(53*14)+(54*14)=4326;
注册码:537-16068-381-4326
以上就是偶花了2小时的劳动成果(1小时解算法,1小时发贴子),还请大家多多捧场,有意见和看法欢迎提出来,因为这是偶第一篇带点儿技术性的贴子,所以可能写的不是很好,以后我会努力的! :D