飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3963|回复: 2

骛一狂屏锁王 V1.0 算法分析

[复制链接]

该用户从未签到

发表于 2006-8-25 10:40:31 | 显示全部楼层 |阅读模式
【破文标题】骛一狂屏锁王 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次的使用限制,输入错误的注册码时会显示“注册码不正确”。 lock.jpeg
用OD查找这一字符串。找到后向上看看哪里跳来的,一步步找到算法地址。

  1. ……略部分代码
  2. 004024B4  |.  59             pop ecx
  3. 004024B5  |.  8BD8           mov ebx,eax                        ;  机器码长度入 ebx
  4. 004024B7  |.  33F6           xor esi,esi                        ;  esi=0
  5. 004024B9  |.  8B85 48FFFFFF  mov eax,[local.46]                 ;  机器码 ASCII "N01RD307BD06"
  6. 004024BF  |.  8D4418 FF      lea eax,dword ptr ds:[eax+ebx-1]   ;  机器码最后一个字符
  7. 004024C3  |.  8B95 48FFFFFF  mov edx,[local.46]                 ;  ASCII "N01RD307BD06"
  8. 004024C9  |.  EB 32          jmp short Lock.004024FD
  9. 004024CB  |>  BF 07000000    /mov edi,7                         ;  edi=7
  10. 004024D0  |.  8D4E 01        |lea ecx,dword ptr ds:[esi+1]      ;  ecx=esi+1
  11. 004024D3  |.  2BFE           |sub edi,esi                       ;  edi=edi-esi
  12. 004024D5  |.  46             |inc esi                           ;  esi=esi+1
  13. 004024D6  |.  0FAFCF         |imul ecx,edi                      ;  ecx=ecx*edi
  14. 004024D9  |.  000A           |add byte ptr ds:[edx],cl          ;  sn1=转为字符(逐位取机器码代码 + cl ),并保存在原代码所在位置
  15. 004024DB  |.  8BCB           |mov ecx,ebx                       ;  ecx=ebx
  16. 004024DD  |.  03C9           |add ecx,ecx                       ;  ecx=ecx+ecx
  17. 004024DF  |.  4B             |dec ebx                           ;  ebx=ebx-1
  18. 004024E0  |.  0208           |add cl,byte ptr ds:[eax]          ;  cl=cl+逐位倒取机器码(从后面)代码
  19. 004024E2  |.  80C1 02        |add cl,2                          ;  cl=cl+2
  20. 004024E5  |.  8808           |mov byte ptr ds:[eax],cl          ;  sn2=转为字符(cl ),并保存在原代码所在位置
  21. 004024E7  |.  8A0A           |mov cl,byte ptr ds:[edx]          ;  下面几步是将sn1和sn2所处位置交换
  22. 004024E9  |.  888D 47FFFFFF  |mov byte ptr ss:[ebp-B9],cl
  23. 004024EF  |.  8A08           |mov cl,byte ptr ds:[eax]
  24. 004024F1  |.  880A           |mov byte ptr ds:[edx],cl
  25. 004024F3  |.  42             |inc edx                           ;  edx=edx+1
  26. 004024F4  |.  8A8D 47FFFFFF  |mov cl,byte ptr ss:[ebp-B9]
  27. 004024FA  |.  8808           |mov byte ptr ds:[eax],cl
  28. 004024FC  |.  48             |dec eax                           ;  eax=eax-1
  29. 004024FD  |>  8D4B FF         lea ecx,dword ptr ds:[ebx-1]      ;  ecx=ebx-1
  30. 00402500  |.  3BF1           |cmp esi,ecx
  31. 00402502  |.^ 7C C7          \jl short Lock.004024CB            ;  如果 esi < ecx 则循环
  32. 00402504  |.  66:C785 60FFFF>mov word ptr ss:[ebp-A0],2C
  33. 0040250D  |.  8D45 F8        lea eax,[local.2]
  34. 00402510  |.  8B95 48FFFFFF  mov edx,[local.46]
  35. ……略部分代码
复制代码

将所有sn1和sn2连起来就是注册码,因为是明码校验,只要用 OD 跟一遍就比较容易理解其算法了。
注册成功后,任务栏图标右键菜单显示“已注册”
lock2.jpeg ------------------------------------------------------------------------
易语言注册机原码:

  1. .版本 2

  2. .子程序 _按钮1_被单击
  3. .局部变量 edi, 整数型
  4. .局部变量 ecx, 字节型
  5. .局部变量 esi, 整数型
  6. .局部变量 edx, 字节型
  7. .局部变量 ebx, 整数型
  8. .局部变量 sn1, 文本型
  9. .局部变量 sn2, 文本型


  10. .判断开始 (编辑框1.内容 ≠ “”)

  11. .默认
  12.     信息框 (“请输入机器码!”, 48, “错误”)
  13.     返回 ()
  14. .判断结束
  15. ebx = 取文本长度 (编辑框1.内容)
  16. .判断循环首 (esi < ebx - 1)
  17.     edi = 7
  18.     ecx = esi + 1
  19.     edi = edi - esi
  20.     esi = esi + 1
  21.     ecx = ecx × edi
  22.     edx = 取代码 (编辑框1.内容, esi) + ecx
  23.     sn1 = 字符 (edx) + sn1
  24.     ecx = ebx
  25.     ecx = ecx + ecx
  26.     ebx = ebx - 1
  27.     ecx = ecx + 取代码 (编辑框1.内容, ebx + 1) + 2
  28.     sn2 = sn2 + 字符 (ecx)
  29. .判断循环尾 ()
  30. 编辑框2.内容 = sn2 + sn1
复制代码

机器码: N01RD307BD06
注册码: PHZVI@?Sb@<U

注册码保存在

  1. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Maqinuo]
  2. "Registry"="PHZVI@?Sb@<U"
复制代码

删除后又可试炼
------------------------------------------------------------------------
【版权声明】本文由 ZHOU2X 原创, 转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 ZHOU2X 于 2006-8-25 10:42 编辑 ]

Lock+KeyGen.part1.rar

488.28 KB, 下载次数: 5, 下载积分: 飘云币 -2 枚

原程序+注册机

Lock+KeyGen.part2.rar

488.28 KB, 下载次数: 4, 下载积分: 飘云币 -2 枚

Lock+KeyGen.part3.rar

13.78 KB, 下载次数: 3, 下载积分: 飘云币 -2 枚

PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-6-17 14:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2006-8-26 14:38:38 | 显示全部楼层
    虽然软件老了点,尽管是明码比较,还是学习了,新手们说
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-4 10:05:56 | 显示全部楼层
    楼主写得很详细,谢谢
    不过现在这样的软件真是越来越少了,不加壳,还是明码比较,
    爱子难过呀,呵呵
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表