Ok bấy giờ vào Menu Help -> Register chúng ta sẽ Ice tại địa chỉ trên.. Tiếp tục bạn lai nhấn F9 2 lần thì cái cửa sổ bắt đăng kí sẽ được load lên.. Đây là đoạn nhận hai giá trị FU và F
Trang 1Quote:
0045022B | FF15 0CE54600 CALL DWORD PTR
DS:[<&USER32.GetWindowTex>; \GetWindowTextA=> we are here
00450231 | 3BC6 CMP EAX,ESI
00450233 | 75 14 JNZ SHORT pro.00450249
thì thằng TelePort Pro sẽ load lên Ok bấy giờ vào Menu Help -> Register chúng
ta sẽ Ice tại địa chỉ trên Tiếp tục bạn lai nhấn F9 2 lần thì cái cửa sổ bắt đăng kí sẽ được load lên Bây giờ chúng ta tiến hành nhập FU và FS (cụ thể mình nhập :
kienmanowar và 11111982 ) vào và nhấn OK
- Chúng ta lại quay trở lại Olly và Ice tại đây Ta sẽ có được như sau :
Code :
Quote:
00450D68 | FF15 0CE54600 CALL DWORD PTR
DS:[<&USER32.GetWindowTex>; \GetWindowTextA == > We ‘re here
00450D6E | 8B4D 10 MOV ECX,[ARG.3]
00450D71 | 6A FF PUSH -1
00450D73 | E8 E48DFFFF CALL pro.00449B5C
00450D78 | EB 0B JMP SHORT pro.00450D85
00450D7A |> 8B45 10 MOV EAX,[ARG.3]
00450D7D | FF30 PUSH DWORD PTR DS:[EAX] ; /Arg2
00450D7F | 56 PUSH ESI ; |Arg1
00450D80 | E8 7DF4FFFF CALL pro.00450202 ; \pro.00450202
00450D85 |> 5F POP EDI
00450D86 | 5E POP ESI
00450D87 | 5D POP EBP
00450D88 \ C2 0C00 RETN 0C
- Nhấn F8 để trace Đây là đoạn nhận hai giá trị FU và FS mà chúng ta vừa gõ Cụ
thể là tại 00450D73 | E8 E48DFFFF CALL pro.00449B5C Bạn có thể Trace
into vào trong hàm này để biết thêm thông tin :
Code:
Quote:
00449B5C /$ 56 PUSH ESI
00449B5D | 8BF1 MOV ESI,ECX
00449B5F | E8 6EFBFFFF CALL pro.004496D2
00449B64 | 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
Trang 200449B68 | 83F8 FF CMP EAX,-1
00449B6B | 75 08 JNZ SHORT pro.00449B75
00449B6D | FF36 PUSH DWORD PTR DS:[ESI] ; /String = "kienmanowar" 00449B6F | FF15 6CE34600 CALL DWORD PTR
DS:[<&KERNEL32.lstrlenA>] ; \lstrlenA == > lấy chiều dài
00449B75 |> 8B0E MOV ECX,DWORD PTR DS:[ESI]
00449B77 | 8941 F8 MOV DWORD PTR DS:[ECX-8],EAX
00449B7A | 8B0E MOV ECX,DWORD PTR DS:[ESI]
00449B7C | 5E POP ESI
00449B7D | 802401 00 AND BYTE PTR DS:[ECX+EAX],0
00449B81 \ C2 0400 RETN 4
………
- Sau khi Trace qua đoạn Code này các bạn sẽ đến một đoạn Code khác:
Code :
Quote:
0042BB4D 5F POP EDI ; 00174A30== > We’ re here
0042BB4E 5E POP ESI
0042BB4F 5B POP EBX
0042BB50 C2 0400 RETN 4
0042BB53 B8 80164700 MOV EAX,pro.00471680 ; ASCII "8 G"
0042BB58 C3 RETN
- Bạn tiếp tục nhấn F8 để Trace tiếp tục cho đên khi các bạn nhìn thấy đoạn Code sau :
Code :
Quote:
0042BCC0 8B87 D9000000 MOV EAX,DWORD PTR DS:[EDI+D9] =>eax (FS : ‘11111982’)
0042BCC6 33DB XOR EBX,EBX = > ebx = 0
0042BCC8 6A 0A PUSH 0A
0042BCCA 53 PUSH EBX
0042BCCB 50 PUSH EAX
0042BCCC E8 94670000 CALL pro.00432465 = > đổi chuỗi FS sang Hex ( eax : 00A98E2E)
0042BCD1 8BF0 MOV ESI,EAX = > esi = eax = 00A98E2E
0042BCD3 A1 A4134900 MOV EAX,DWORD PTR DS:[4913A4] = >
0042BCD8 83C4 0C ADD ESP,0C
Trang 30042BCDB 897424 10 MOV DWORD PTR SS:[ESP+10],ESI
0042BCDF 3898 CD040000 CMP BYTE PTR DS:[EAX+4CD],BL
0042BCE5 0F84 33010000 JE pro.0042BE1E
0042BCEB 3BF3 CMP ESI,EBX
0042BCED BD 64714800 MOV EBP,pro.00487164 ; ASCII "User"
0042BCF2 74 59 JE SHORT pro.0042BD4D
0042BCF4 FFB7 D5000000 PUSH DWORD PTR DS:[EDI+D5] = > Cất FU vào Stack
0042BCFA E8 BA090000 CALL pro.0042C6B9 = > Gọi hàm mã hóa chuỗi FU
0042BCFF 3BF0 CMP ESI,EAX
0042BD01 59 POP ECX
0042BD02 75 0F JNZ SHORT pro.0042BD13
0042BD04 53 PUSH EBX ; /Arg3
0042BD05 53 PUSH EBX ; |Arg2
0042BD06 FF35 447B4800 PUSH DWORD PTR DS:[487B44] ; |Arg1 = 0048CF40 ASCII "Thank you! Your copy of Teleport Pro is now registered All limits have been removed."
0042BD0C E8 D1540200 CALL pro.004511E2 ; \pro.004511E2
Ke ke đến đây là sắp thành công rồi đấy các bạn Để ý các dòng in đậm bạn sẽ thấy là sau câu lệnh so sánh nếu 2 giá trị được lưu giữ trong thanh ghi esi và eax
mà không bằng nhau thi cái Nag sẽ văng ra và thế là hết hehe Còn nếu đúng thì
quá ổn rồi Bạn Trace Into vào 004BCFA để xem quá trình mã hóa :
Code :
Quote:
0042C6B9 /$ 57 PUSH EDI
0042C6BA | 8B7C24 08 MOV EDI,DWORD PTR SS:[ESP+8]
0042C6BE | 85FF TEST EDI,EDI
0042C6C0 | 74 09 JE SHORT pro.0042C6CB
0042C6C2 | 57 PUSH EDI
0042C6C3 | E8 F8590000 CALL pro.004320C0 = > Tính Len của FU
0042C6C8 | 59 POP ECX
0042C6C9 | EB 02 JMP SHORT pro.0042C6CD
0042C6CB |> 33C0 XOR EAX,EAX
0042C6CD |> 83F8 05 CMP EAX,5 == > He he phải tối thiểu là 5 kí tự may quá
0042C6D0 | 73 04 JNB SHORT pro.0042C6D6
0042C6D2 | 33C0 XOR EAX,EAX
Trang 40042C6D4 | 5F POP EDI
0042C6D5 | C3 RETN
0042C6D6 |> 53 PUSH EBX
0042C6D7 | 56 PUSH ESI
0042C6D8 | BE A4E4FE5D MOV ESI,5DFEE4A4
- Đây là đoạn Code mã hóa của nó
Code :
Quote:
0042C6DD | 33DB XOR EBX,EBX
0042C6DF |> 85FF /TEST EDI,EDI
0042C6E1 | 74 09 |JE SHORT pro.0042C6EC
0042C6E3 | 57 |PUSH EDI
0042C6E4 | E8 D7590000 |CALL pro.004320C0
0042C6E9 | 59 |POP ECX
0042C6EA | EB 02 |JMP SHORT pro.0042C6EE
0042C6EC |> 33C0 |XOR EAX,EAX
0042C6EE |> 83C0 FC |ADD EAX,-4 = > Len (FU) – 4 ( của mình là 11 – 4 = 7) 0042C6F1 | 3BD8 |CMP EBX,EAX = > Nếu bằng thì
0042C6F3 | 73 0C |JNB SHORT pro.0042C701 == > nhảy nhảy nhảy
0042C6F5 | 33343B |XOR ESI,DWORD PTR DS:[EBX+EDI]
0042C6F8 | F6C3 40 |TEST BL,40
0042C6FB | 74 01 |JE SHORT pro.0042C6FE
0042C6FD | 43 |INC EBX == > tăng ebx tới khi giá trị của nó bằng 7 thì thoát khỏi đoạn mã hóa
0042C6FE |> 43 |INC EBX
0042C6FF |.^ EB DE \JMP SHORT pro.0042C6DF
0042C701 |> \8BC6 MOV EAX,ESI === > Esi chính là chuỗi FU đã mã hóa và Eax sẽ lưu giữ chuỗi này(288F8BCF)
0042C703 | 5E POP ESI == > Lấy lại giá trị FS (00A98E2E)
0042C704 | 5B POP EBX
0042C705 | 5F POP EDI
0042C706 \ C3 RETN
- Cuối cùng chúng ta trở về :
Code :
Quote:
0042BCFF 3BF0 CMP ESI,EAX
Trang 50042BD01 59 POP ECX
0042BD02 75 0F JNZ SHORT pro.0042BD13
0042BD04 53 PUSH EBX ; /Arg3
0042BD05 53 PUSH EBX ; |Arg2
0042BD06 FF35 447B4800 PUSH DWORD PTR DS:[487B44] ; |Arg1 = 0048CF40 ASCII "Thank you! Your copy of Teleport Pro is now registered All limits have been removed."
Đến đây thì chúng ta đã Crack xong thằng TelePort Pro rồi đó Còn chần chừ gì
nữa ghi cái giá trị mà thanh ghi EAX đang lưu giữ ra giấy 288F8BCF , rồi dùng Calculator cua Window ra đổi về dạng Decimal … Oa oa đây rồi : 680496079
Thế là cũng xong
Quote: