Tuy nhiên nếu chưa đăng ký thì chỉ recover được những file nhỏ còn nếu phục hồi những file lớn thì nó bắn nag báo rằng phải đưa tiền cho nó thì nó mới chịu nghe.. Do đó, chúng ta cần phả
Trang 10040119D | F3:AB REP STOS DWORD PTR ES:[EDI]
0040119F | AA STOS BYTE PTR ES:[EDI] ;|
004011A0 | 8BBC24 20020> MOV EDI,DWORD PTR
004011A7 | 68 05040000 PUSH 405 ;|ControlID=405(1029.)
004011AC | 57 PUSH EDI ;|hWnd=00020276(‘Enter
Registration Info’,class=’#32770’,parent=0003024C)
004011AD | 8B35 D892400> MOV ESI,DWORD PTR
DS:[<USER32.GetDlgItemTextA>] ;|USER32.GetDlgItemTextA
004011B3 | FFD6 CALL NEAR ESI ;\GetDlgItemTextA
004011B5 | 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10]
<== Fake name
004011B9 | 68 00010000 PUSH 100 ;/Count=100(256.)
004011BE | 50 PUSH EAX ;|Buffer=0012F330
004011BF | 68 06040000 PUSH 406 ;|ControlID=406(1030.)
004011C4 | 57 PUSH EDI ;|hWnd=0004026E(‘Enter
Registration Info’,class=’#32770’,parent=00040278)
004011C5 | FFD6 CALL NEAR ESI ;\GetDlgItemTextA
004011C7 | 68 30604000 PUSH STARTCLN.00406030
004011CC | 68 30614000 PUSH STARTCLN.00406130
;ASCII”the_lighthouse”
004011D1 | E8 AA000000 CALL STARTCLN.00401280
;Calculation <== Trace Into
-=== Trace Into === -
- NOTE -
Trong chương trình real serial là 1 chuỗi số gồm 4 số ghép lại, do đó trong phần
calculation này sẽ có 4 đoạn code dùng để tính 4 serial nhỏ, mỗi serial được tính
xong sẽ lần lượt được add vào ESI và chúng được nối với nhau bằng dấu “-“
- NOTE -
00401280 /$ 81EC 0001000> SUB ESP,100
00401286 | A0 64624000 MOV AL,BYTE PTR DS:[406264]
0040128B | 884424 00 MOV BYTE PTR SS:[ESP],AL
0040128F | 53 PUSH EBX
00401290 | 56 PUSH ESI
00401291 | 33C0 XOR EAX,EAX
00401293 | 57 PUSH EDI
00401294 | B9 3F000000 MOV ECX,3F
00401299 | 8D7C24 0D LEA EDI,DWORD PTR SS:[ESP+D]
0040129D | 55 PUSH EBP
Trang 20040129E | F3:AB REP STOS DWORD PTR ES:[EDI]
004012A0 | 66:AB STOS WORD PTR ES:[EDI]
004012A2 | BD 6A000000 MOV EBP,6A
004012A7 | 68 64624000 PUSH STARTCLN.00406264
;|Format=””
004012AC | AA STOS BYTE PTR ES:[EDI] ;|
004012AD | 8BB424 1C010> MOV ESI,DWORD PTR
004012B4 | 56 PUSH ESI ;|s=STARTCLN.00406030 004012B5 | FF15 D492400> CALL NEAR DWORD PTR DS:[<&USER32.wsprintfA>] ;\wsprintfA 004012BB | 8B9C24 1C010> MOV EBX,DWORD PTR
SS:[ESP+11C]
;STARTCLN.00406130
004012C2 | 83C4 08 ADD ESP,8
004012C5 | 8BC3 MOV EAX,EBX ;STARTCLN.00406130 004012C7 | 8B3D DC92400> MOV EDI,DWORD PTR
DS:[<&USER32.CharNextA>]
;USER32.CharNextA
004012CD | 803B 00 CMP BYTE PTR DS:[EBX],0
004012D0 |./74 0F JE SHORT STARTCLN.004012E1
- Đoạn code tính số serial 1 -
004012D2 |> 0FBE08 /MOVSX ECX,BYTE PTR DS:[EAX] 004012D5 | 50 |PUSH EAX
004012D6 | 8DC64D 00 |LEA EBP,DWORD PTR
SS:[EBP+ECX*2]
004012DA | FFD7 |CALL NEAR EDI ;USER32.CharNextA 004012DC | 8038 00 |CMP BYTE PTR DS:[EAX],0
004012DF |.\75 F1 \JNZ SHORT STARTCLN.004012D2
004012E1 |> 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10] 004012E5 | 55 PUSH EBP ;/<%d>=C22(3106.)
004012E6 | 68 74624000 PUSH STARTCLN.00406274
;|Format=”%d-“
004012EB | 50 PUSH EAX ;|s=0012F214
004012EC | FF15 D492400> CALL NEAR DWORD PTR DS:[<&USER32.wsprintfA>] ;/wsprintfA - Đoạn code tính số serial 1 -
004012F2 | 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C] 004012F6 | 83C4 0C ADD ESP,0C
Trang 3004012F9 | 50 PUSH EAX ;/StringToAdd=”3106-“
004012FA | 56 PUSH ESI ;|ConcatString=””
004012FB | FF15 3C92400> CALL NEAR DWORD PTR DS:[<&KERNEL32.lstrcatA>] ;\lstrcatA
00401301 | 8BC3 MOV EAX,EBX ;STARTCLN.00406130
00401303 | 803B 00 CMP BYTE PTR DS:[EBX],0
00401306 |./74 12 JE SHORT STARTCLN.0040131A
- Đoạn code tính số serial 2 -
00401308 |> 0FBE08 /MOVSX ECX,BYTE PTR DS:[EAX] 0040130B | 03C9 |ADD ECX,ECX
0040130D | 50 |PUSH EAX
0040130E | 8D14C9 |LEA EDX,DWORD PTR
DS:[ECX+ECX*8]
00401311 | 03EA |ADD EBP,EDX
00401313 | FFD7 |CALL NEAR EDI
00401315 | 803800 |CMP BYTE PTR DS:[EAX],0
00401318 |.\75 EE \JNZ SHORT STARTCLN.00401308
0040131A |> 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10] 0040131E | 55 PUSH EBP ;/<%d>=759A(30106.)
0040131F | 68 74624000 PUSH STARTCLN.00406274
;|Format=”%d-”
00401324 | 50 PUSH EAX ;|s=0012F214
00401325 | FF15 D492400> CALL NEAR DWORD PTR DS:[<&USER32.wsprintfA>] ;\wsprintfA - Đoạn code tính số serial 2 -
0040132B | 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C] 0040132F | 83C4 0C ADD ESP,0C
00401332 | 50 PUSH EAX ;/StringToAdd=”30106-“
00401333 | 56 PUSH ESI ;|ConcatString=”3106-“
00401334 | FF15 3C92400> CALL NEAR DWORD PTR DS:[<&KERNEL32.lstrcatA>] ;\lstrcatA
0040133A | 8BC3 MOV EAX,EBX ;STARTCLN.00406130 0040133C | 803B 00 CMP BYTE PTR DS:[EBX],0
0040133F |./74 18 JE SHORT STARTCLN.00401359
- Đoạn code tính số serial 3 -
00401341 |> 0FBE08 /MOVSX ECX,BYTE PTR DS:[EAX]
00401344 | 50 |PUSH EAX
Trang 400401345 | 8D2C89 |LEA EBP,DWORD PTR
DS:[ECX+ECX*4]
00401348 | 8D0C69 |LEA ECX,DWORD PTR
DS:[ECX+EBP*2]
0040134B | 8D2C4D 01000> |LEA EBP,DWORD PTR
DS:[ECX*2+1]
00401352 | FFD7 |CALL NEAR EDI
00401354 | 8038 00 |CMP BYTE PTR DS:[EAX],0
00401357 |.\75 E8 \JNZ SHORT STARTCLN.00401341
00401359 |> 8D4424 10 LEA EAX,DWORD PTR SS:[EBP+10] 0040135D | 55 PUSH EBP ;/<%d>=8AF(2223.)
0040135E | 68 74624000 PUSH STARTCLN.00406274
;|Format=”%d-“
00401363 | 50 PUSH EAX ;|s=0012F214
00401364 | FF15 D492400> CALL NEAR DWORD PTR DS:[<&USER32.wsprintfA>] ;\wsprintfA - Đoạn code tính số serial 3 -
0040136A | 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C] 0040136E | 83C4 0C ADD ESP,0C
00401371 | 50 PUSH EAX ;/StringToAdd=”2223-“
00401372 | 56 PUSH ESI ;|ConcatString=”3106-30106”
00401373 | FF15 3C92400> CALL NEAR DWORD PTR DS:[<&KERNEL32.lstrcatA>] ;\lstrcatA
00401379 | 8BC3 MOV EAX,EBX ;STARTCLN.00406130 0040137B | 803B 00 CMP BYTE PTR DS:[EBX],0
0040137E |./74 12 JE SHORT STARTCLN.00401392
- Đoạn code tính số serial 4 -
00401380 |> 0FBE08 /MOVSX ECX,BYTE PTR DS:[EAX]
00401383 | 50 |PUSH EAX ;STARTCLN.00406130
00401384 | 8D2C8D 1D000> |LEA EBP,DWORD PTR
DS:[ECX*4+10]
0040138B | FFD7 |CALL NEAR EDI ;USER32.CharNext 0040138D | 8038 00 |CMP BYTE PTR DS:[EAX],0
00401390 |.\75 EE \JNZ SHORT STARTCLN.00401380
00401392 |> 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10]
00401396 | 55 PUSH EBP ;/<%d>=1B1(433.)
00401397 | 68 70624000 PUSH STARTCLN.00406270
;|Format=”%d”
0040139C | 50 PUSH EAX ;|s=0012F214
Trang 50040139D | FF15 D492400> CALL NEAR DWORD PTR DS:[<&USER32.wsprintfA>] ;\wsprintfA
- Đoạn code tính số serial 4 -
004013A3 | 8D4424 1C LEA EAX,DWORD PTR SS:[ESP+1C] 004013A7 | 83C4 0C ADD ESP,0C
004013AA | 50 PUSH EAX ;/StringToAdd=”433“
004013AB | 56 PUSH ESI ;|ConcatString=”3106-30106-2223-“
004013AC | FF15 3C92400> CALL NEAR DWORD PTR DS:[<&KERNEL32.lstrcatA>] ;\lstrcatA
004013B2 | 5D POP EBP ;0012F568
004013B3 | 5F POP EDI ;USER32.CharNextA
004013B4 | 5E POP ESI ;USER32.GetDlgItemTextA 004013B5 | 5B POP EBX ;STARTCLN.00406130
004013B6 | 81C4 0001000> ADD ESP,100
004013BC | C3 RET
-=== Trace Into === -
004011D6 | 8D4424 18 LEA EAX,DWORD PTR SS:[ESP+18] 004011DA | 83C4 08 ADD ESP,8
004011DD | 50 PUSH EAX ;/String2=”1234567890” <== fake serial
004011DE | 68 30604000 PUSH STARTCLN.00406030
;|String1=”3106-30106-2223-433” <== chuỗi serial chúng ta cần tìm
004011E3 | FF15 2092400> CALL NEAR DWORD PTR
DS:[<&KERNEL32.lstrcmpA>] ;\lstrcmpA
004011E9 | 85C0 TEST EAX,EAX
004011EB | 0F85 8000000> JNZ STARTCLN.00401271
(đoạn sau là đoạn code dùng để tạo key trong registry, chúng ta không để cập đến ở đây)
( )
-=== Trace Into === -
004027CA 56 PUSH ESI ;|hOwner
004027CB FF15 3493400> CALL NEAR DWORD PTR
DS:[<&USER32.MessageBoxA>] ;\MessageBoxA
004027D1 B8 01000000 MOV EAX,1
004027D6 5E POP ESI
004027D7 C2 1000 RET 10
Trang 6Serial tương ứng :
Name : the_lighthouse Code : 3106-30106-2223-433
Name : REA-cRaCkErTeAm Code : 2616-25206-2399-465
The_lighthouse(REA)
RealKey_File Recovery Angel 1.13
Soft: File Recovery Angel 1.13
HomePage: http://www.filerecoveryangel.com
Protection: No Packed
Tools: OllyDbg 1.10; Peid 0.93
Cracker: Ha Viet Hung (hvh0904)
Đây là soft cho phép phục hồi những file đã xóa trên ổ cứng rất hay Tuy nhiên nếu chưa đăng ký thì chỉ recover được những file nhỏ còn nếu phục hồi những file lớn thì nó bắn nag báo rằng phải đưa tiền cho nó thì nó mới chịu nghe Do đó, chúng ta cần phải tìm RealSerial để dùng cho bõ tức OK
Chạy thử chương trình, vào Option ->Register rồi nhập Name và Key bạn thích xong nhấn Register Nó sẽ bắn nag báo "Register False!" Nhớ lấy dòng này
Thoát Dùng Peid kiểm tra biết được chương trình không bị pack và được viết bằng Borland Delphi 4.0 - 5.0 Vậy là quá khỏe rồi hehe