http://www.scootersoftware.com/bc19d.exe
这是一个非常好用的用来比较、同步文件和目录的工具,特别是用来比较不同版本的源程序之间的不同(VC自带的WinDiff也可以,SourceSafe这种版本控制工具自然也有这种比较功能),应属于程序员的必备工具之一。
破解非常简单,跟踪策略(也就是选择断点的策略)有这么几种:
1、用GetPrivateProfileStringA跟它启动时的判断,因注册码在INI文件种;
2、用hmemcpy跟它输入注册码后的判断;
3、用W32Dasm、DeDe、IDA等反汇编之后利用string reference来选择合适的断点。比如用IDA反汇编之后可以看到_TMainForm_Register1Click(
)这个成员函数,这是输入注册码并点击“Register”按钮之后所要执行的回调函数。
最终将注意力集中到如下生成并判断注册码的地方:
sub_4A9CDC proc near ;
CODE XREF: sub_4A8678+932
; _TMainForm_Register1Click
var_C = dword ptr -0Ch
var_8 = dword ptr -8
var_4 = dword ptr -4
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
xor eax, eax
push ebp
push offset loc_4A9D6B
push dword ptr fs:[eax]
mov fs:[eax], esp
push offset _str_Beyond_Compare_.Text
push ds:dword_4B6EB4
push ds:dword_4B6EB8
lea eax, [ebp+var_8]
mov edx, 3
call @System@@LStrCatN$qqrv
; System __linkproc__ LStrCatN(void)
mov eax, [ebp+var_8]
//串起来的串
call sub_4A72D0
//返回生成的数
lea ecx, [ebp+var_4]
mov edx, 8
call @Sysutils@IntToHex$qqrii
; Sysutils::IntToHex(int,int)
mov eax, [ebp+var_4]
push eax
lea eax, [ebp+var_C]
mov edx, offset byte_4B6EEC
call unknown_libname_36
mov edx, [ebp+var_C]
pop eax
call @Sysutils@CompareText$qqrx17System@AnsiStringxt1
; Sysutils::CompareText(System::AnsiString,System::AnsiString)
test eax, eax
setz ds:byte_4B6EB2
mov bl, ds:byte_4B6EB2
xor eax, eax
pop edx
pop ecx
pop ecx
mov fs:[eax], edx
push offset loc_4A9D72
loc_4A9D5D:
; CODE XREF: sub_4A9CDC+94
lea eax, [ebp+var_C]
mov edx, 3
call sub_403C9C
retn
loc_4A9D6B:
; DATA XREF: sub_4A9CDC+D
jmp @System@@HandleFinally$qqrv
; System __linkproc__ HandleFinally(void)
jmp short loc_4A9D5D
loc_4A9D72:
; DATA XREF: sub_4A9CDC+7C
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
retn
sub_4A9CDC endp
align 4
_str_Beyond_Compare_ dd 0FFFFFFFFh
; _top ; DATA XREF: sub_4A9CDC+18
dd 16
; Len
db 'Beyond Compare 1',0
; Text
显然,它先把字符串 “Beyond Compare 1”和UserName、Organization用LSrtCatN(
)串接起来,再用串起来的这个串鼓捣出一个数来,用IntToHex( )将该数转换成十六进制串,最后用CompareText( )来比较注册码。有兴趣的自己写个注册机。
BF
- 标 题:Beyond Compare v1.9d (2千字)
- 作 者:Blowfish
- 时 间:2001-2-4 17:27:23
- 链 接:http://bbs.pediy.com