=
=
=Registry Crawler 4.0注册码算法分析
=
=
= CrAcKeD BY alphakk/OCG
=====================================
=软件简介: =
= Registry Crawler 是强大的用户和开发者快速定位并配置注册表的工具软 =
=件。一个强大的搜索引擎允许你基于搜索标准查找注册信息。允许你单击超链 =
=接显示条目。支持书签功能,可在注册表中的任何键中添加书签并直接从系统 =
=托盘读取。此特征允许你访问你经常存取的注册键而无需手工打开 REGEDIT。 =
=每天需要操作注册表的用户会发现 Registry Crawler 是一个节约时间的工具。=
=====================================
====================================
破解工具:SOFTICE,W32DASM
分析:
本软件采用用户名,注册码的验证方式,不注册的话会有30天的试用期,过期会提示用户注册,还未注册的话,将不能继续使用。
此软件无功能限制。
在注册窗口中输入以下信息:
用户名:alphakk/OCG
注册码:98765432
用GETWINDOWTEXT作断点,点击“解锁”,被SOFTICE中断,接着按F11跳出GETWINDOWTEXT函数,来到:
* Reference To: USER32.GetWindowTextA, Ord:015Eh
|
:0042DA07 FF1550844400 Call dword ptr [00448450]
:0042DA0D EB12 jmp 0042DA21 <<-------按F11后来到的地方
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042D9FA(C)
|
:0042DA0F FF742408 push [esp+08]
:0042DA13 8B10 mov edx, dword ptr [eax]
:0042DA15 8BC8 mov ecx, eax
:0042DA17 FF742408 push [esp+08]
:0042DA1B FF9284000000 call dword ptr [edx+00000084]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042DA0D(U)
|
:0042DA21 C20800 ret 0008
======================F10单步跟踪过上面后,来到:
* Possible Reference to Dialog:
|
:0040AFDC 6810E54500 push 0045E510
:0040AFE1 8D8EBC030000 lea ecx, dword ptr [esi+000003BC]
:0040AFE7 E8092A0200 call 0042D9F5
:0040AFEC 68FF000000 push 000000FF
* Possible Reference to Dialog:
|
:0040AFF1 6810E64500 push 0045E610 <<-----输入的注册码入栈
:0040AFF6 8D8E80030000 lea ecx, dword ptr [esi+00000380]
:0040AFFC E8F4290200 call 0042D9F5
* Possible Reference to Dialog:
|
:0040B001 6810E54500 push 0045E510 <<------用户名入栈
:0040B006 8D4C240C lea ecx, dword ptr [esp+0C]
:0040B00A E8F6330200 call 0042E405
:0040B00F 8B00 mov eax, dword ptr [eax] <<------用户名首地址->EAX
* Possible Reference to Dialog:
|
:0040B011 68848C4500 push 00458C84 <<------“TRIAL USER”入栈
:0040B016 50 push eax <<------用户名入栈
:0040B017 E8BFE60000 call 004196DB <<------比较函数,不同则EAX=1
:0040B01C 83C408 add esp, 00000008
:0040B01F 8D4C2408 lea ecx, dword ptr [esp+08]
:0040B023 85C0 test eax, eax
:0040B025 0F94C3 sete bl <<------BL置0
:0040B028 E86A330200 call 0042E397
:0040B02D 84DB test bl, bl
:0040B02F 740F je 0040B040 <<------跳
:0040B031 6A01 push 00000001
:0040B033 8BCE mov ecx, esi
:0040B035 E8DB3F0200 call 0042F015
:0040B03A 5E pop esi
:0040B03B 5B pop ebx
:0040B03C 83C408 add esp, 00000008
:0040B03F C3 ret
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B02F(C)
|
:0040B040 E8ABFCFFFF call 0040ACF0 <<-----注意这个CALL,此处先用F10带过
:0040B045 85C0 test eax, eax
:0040B047 0F849D000000 je 0040B0EA <<-------上面的CALL用F10过的话,这里就会跳
* Possible StringData Ref from Data Obj ->"Software\4Developers\RCrawler"
|
:0040B04D 8B15F88A4500 mov edx, dword ptr [00458AF8]
:0040B053 8D44240C lea eax, dword ptr [esp+0C]
:0040B057 8D4C2408 lea ecx, dword ptr [esp+08]
:0040B05B 33DB xor ebx, ebx
:0040B05D 50 push eax
:0040B05E 51 push ecx
:0040B05F 53 push ebx
:0040B060 683F000F00 push 000F003F
:0040B065 53 push ebx
:0040B066 53 push ebx
:0040B067 53 push ebx
:0040B068 52 push edx
:0040B069 6802000080 push 80000002
:0040B06E 895C2430 mov dword ptr [esp+30], ebx
:0040B072 895C242C mov dword ptr [esp+2C], ebx
* Reference To: ADVAPI32.RegCreateKeyExA, Ord:015Fh
|
:0040B076 FF1534804400 Call dword ptr [00448034]
:0040B07C 3BC3 cmp eax, ebx
:0040B07E 7531 jne 0040B0B1
* Possible StringData Ref from Data Obj ->"4D"
|
:0040B080 A1048B4500 mov eax, dword ptr [00458B04]
:0040B085 8B4C2408 mov ecx, dword ptr [esp+08]
:0040B089 57 push edi
:0040B08A 6800020000 push 00000200
:0040B08F 6810E54500 push 0045E510
:0040B094 6A03 push 00000003
:0040B096 53 push ebx
:0040B097 50 push eax
:0040B098 51 push ecx
* Reference To: ADVAPI32.RegSetvalueExA, Ord:0186h
|
:0040B099 FF1524804400 Call dword ptr [00448024]
:0040B09F 8B54240C mov edx, dword ptr [esp+0C]
:0040B0A3 8BF8 mov edi, eax
:0040B0A5 52 push edx
* Reference To: ADVAPI32.RegCloseKey, Ord:015Bh
|
:0040B0A6 FF1520804400 Call dword ptr [00448020]
:0040B0AC 3BFB cmp edi, ebx
:0040B0AE 5F pop edi
:0040B0AF 7419 je 0040B0CA
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B07E(C)
|
:0040B0B1 53 push ebx
:0040B0B2 53 push ebx