骛一狂屏锁王 V1.0 算法分析
【破文标题】骛一狂屏锁王 V1.0 算法分析【破文作者】ZHOU2X
【破解工具】PEID,W32Dasm,Ollydbg,KeyMake
【破解平台】WinXP
【软件名称】骛一狂屏锁王 V1.0
【软件大小】1839 KB
【原版下载】http://www.softreg.com.cn/shareware_view.asp?id=/749EEF5B-36D7-4542-BEC9-37DCD68AE245/&agentid=46466
【保护方式】注册码、30次
【软件简介】 是一款对计算机进行锁定的小软件。它可以屏蔽系统的任何热键和禁止任何窗口的打开。可以有效的提高系统的安全系数。在锁定的状态下,即使重启也还处于锁定状态。如果没有处于锁定状态,那它会随机器一起启动。以方便于用户的随时使用。
------------------------------------------------------------------------
骛一狂屏锁王 V1.0 是2004年的一个小软件,拿到时压缩包中有内存注册机,应该是明码验证;因为在学习算法,就拿来分析了一下。
用 PEID 检测,是 Borland C++ 1999,无壳
试运行,右键点击任务栏图标时,菜单中有“注册”字样,打开后软件提示没有注册时有30次的使用限制,输入错误的注册码时会显示“注册码不正确”。
用OD查找这一字符串。找到后向上看看哪里跳来的,一步步找到算法地址。
……略部分代码
004024B4|.59 pop ecx
004024B5|.8BD8 mov ebx,eax ;机器码长度入 ebx
004024B7|.33F6 xor esi,esi ;esi=0
004024B9|.8B85 48FFFFFFmov eax, ;机器码 ASCII "N01RD307BD06"
004024BF|.8D4418 FF lea eax,dword ptr ds: ;机器码最后一个字符
004024C3|.8B95 48FFFFFFmov edx, ;ASCII "N01RD307BD06"
004024C9|.EB 32 jmp short Lock.004024FD
004024CB|>BF 07000000 /mov edi,7 ;edi=7
004024D0|.8D4E 01 |lea ecx,dword ptr ds: ;ecx=esi+1
004024D3|.2BFE |sub edi,esi ;edi=edi-esi
004024D5|.46 |inc esi ;esi=esi+1
004024D6|.0FAFCF |imul ecx,edi ;ecx=ecx*edi
004024D9|.000A |add byte ptr ds:,cl ;sn1=转为字符(逐位取机器码代码 + cl ),并保存在原代码所在位置
004024DB|.8BCB |mov ecx,ebx ;ecx=ebx
004024DD|.03C9 |add ecx,ecx ;ecx=ecx+ecx
004024DF|.4B |dec ebx ;ebx=ebx-1
004024E0|.0208 |add cl,byte ptr ds: ;cl=cl+逐位倒取机器码(从后面)代码
004024E2|.80C1 02 |add cl,2 ;cl=cl+2
004024E5|.8808 |mov byte ptr ds:,cl ;sn2=转为字符(cl ),并保存在原代码所在位置
004024E7|.8A0A |mov cl,byte ptr ds: ;下面几步是将sn1和sn2所处位置交换
004024E9|.888D 47FFFFFF|mov byte ptr ss:,cl
004024EF|.8A08 |mov cl,byte ptr ds:
004024F1|.880A |mov byte ptr ds:,cl
004024F3|.42 |inc edx ;edx=edx+1
004024F4|.8A8D 47FFFFFF|mov cl,byte ptr ss:
004024FA|.8808 |mov byte ptr ds:,cl
004024FC|.48 |dec eax ;eax=eax-1
004024FD|>8D4B FF lea ecx,dword ptr ds: ;ecx=ebx-1
00402500|.3BF1 |cmp esi,ecx
00402502|.^ 7C C7 \jl short Lock.004024CB ;如果 esi < ecx 则循环
00402504|.66:C785 60FFFF>mov word ptr ss:,2C
0040250D|.8D45 F8 lea eax,
00402510|.8B95 48FFFFFFmov edx,
……略部分代码
将所有sn1和sn2连起来就是注册码,因为是明码校验,只要用 OD 跟一遍就比较容易理解其算法了。
注册成功后,任务栏图标右键菜单显示“已注册”
------------------------------------------------------------------------
易语言注册机原码:
.版本 2
.子程序 _按钮1_被单击
.局部变量 edi, 整数型
.局部变量 ecx, 字节型
.局部变量 esi, 整数型
.局部变量 edx, 字节型
.局部变量 ebx, 整数型
.局部变量 sn1, 文本型
.局部变量 sn2, 文本型
.判断开始 (编辑框1.内容 ≠ “”)
.默认
信息框 (“请输入机器码!”, 48, “错误”)
返回 ()
.判断结束
ebx = 取文本长度 (编辑框1.内容)
.判断循环首 (esi < ebx - 1)
edi = 7
ecx = esi + 1
edi = edi - esi
esi = esi + 1
ecx = ecx × edi
edx = 取代码 (编辑框1.内容, esi) + ecx
sn1 = 字符 (edx) + sn1
ecx = ebx
ecx = ecx + ecx
ebx = ebx - 1
ecx = ecx + 取代码 (编辑框1.内容, ebx + 1) + 2
sn2 = sn2 + 字符 (ecx)
.判断循环尾 ()
编辑框2.内容 = sn2 + sn1
机器码: N01RD307BD06
注册码: PHZVI@?Sb@<U
注册码保存在
"Registry"="PHZVI@?Sb@<U"
删除后又可试炼
------------------------------------------------------------------------
【版权声明】本文由 ZHOU2X 原创, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 ZHOU2X 于 2006-8-25 10:42 编辑 ] 虽然软件老了点,尽管是明码比较,还是学习了,新手们说 楼主写得很详细,谢谢
不过现在这样的软件真是越来越少了,不加壳,还是明码比较,
爱子难过呀,呵呵
页:
[1]