这个
软件是用圣天诺狗来加密的,当
软件没有检测到加密狗时,则需要注册它。好,我们看看怎么样来
破解它。
工具:trw2000
hview
软件在运行时,如果没有狗,则会跳出一个需要注册的对话框,而且也是用动态注册的
方法,如果注册码不正确register按钮是灰色的。这类
软件一般用断点bpx hmemcpy,今天我们用另外的断点来破它,用什么断点呢?想一下要取得对话框的数据要用到什么函数,对了,是getdlgitemtexta。好,我们先输入用户名,然后输入假注册码12345678,切换到TRW,下断点bpx getdlgitemtexta,按F5返回程序,马上被中断了,按F10返回到主程序,如下:
:004C6798 8D852C010000
lea eax,
dword ptr [
ebp+0000012C] <===返回到这里,用d
eax可以看到我们输入的假注册码
:004C679E 50
push eax :004C679F 6A06
push 00000006
:004C67A1 E8BAFFFEFF
call 004B6760
:004C67A6 83C410
add esp, 00000010
:004C67A9 E99E000000
jmp 004C684C
------------------------------------------------
按几下F10,到下面:
:004C684C 55
push ebp :004C684D E84E010000
call 004C69A0 <====计算和比较注册码的CALL,所以要F8进入
:004C6852 83C404
add esp, 00000004
:004C6855 85C0
test eax,
eax :004C6857 7427
je 004C6880
:004C6859 8B8DEC020000
mov ecx,
dword ptr [
ebp+000002EC]
:004C685F 51
push ecx :004C6860 E86B000000
call 004C68D0
:004C6865 6A00
push 00000000
:004C6867 6A07
push 00000007
:004C6869 E8C205FFFF
call 004B6E30
:004C686E 83C40C
add esp, 0000000C
:004C6871 B801000000
mov eax, 00000001
:004C6876 5F
pop edi :004C6877 5E
pop esi :004C6878 5D
pop ebp :004C6879 81C498000000
add esp, 00000098
:004C687F C3
ret ---------------------------------------------------
进入4C684D的CALL:
:004C69A0 81EC18020000
sub esp, 00000218
:004C69A6 53
push ebx :004C69A7 55
push ebp :004C69A8 8BAC2424020000
mov ebp,
dword ptr [
esp+00000224]
:004C69AF 56
push esi :004C69B0 57
push edi * Possible StringData Ref from Data Obj ->"Demo"
|
:004C69B1 BFD0115300
mov edi, 005311D0 <====取试用的注册码,这个注册码可以用到2001-12-31日,这不是我们所要的,继续GO
:004C69B6 8DB52C010000
lea esi,
dword ptr [
ebp+0000012C] <====用d
esi可以看到我们输入的假注册码
:004C69BC 8BC6
mov eax,
esi * Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:004C69E0(C)
|
:004C69BE 8A10
mov dl,
byte ptr [
eax]
:004C69C0 8A1F
mov bl,
byte ptr [
edi]
:004C69C2 8ACA
mov cl,
dl :004C69C4 3AD3
cmp dl,
bl <=====比较注册码
:004C69C6 751E
jne 004C69E6 <=====不相等则跳到正式用户注册码运算的
代码 :004C69C8 84C9
test cl,
cl :004C69CA 7416 &nbs