1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 313 pdf

10 119 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 757,03 KB

Nội dung

=== Calculation 2 === 0040C7FD |. 83C4 0C ADD ESP,0C 0040C800 |. 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10] 0040C804 |. 51 PUSH ECX ; /StringToAdd 0040C805 |. 53 PUSH EBX ; |ConcatString 0040C806 |. FF15 C4614200 CALL DWORD PTR DS:[<&KERNEL32.lstrcatA>] ; \lstrcatA 0040C80C |. 33C9 XOR ECX,ECX ;<== Sec4 = 0; 0040C80E |. 33C0 XOR EAX,EAX ;<== i = 0; 0040C810 |. 85F6 TEST ESI,ESI 0040C812 |. 76 14 JBE SHORT FolderVi.0040C828 0040C814 |. 8B15 60B54200 MOV EDX,DWORD PTR DS:[42B560] <=4th Default Value (0x0B) === Calculation 3 === 0040C81A |> 0FBE2C38 /MOVSX EBP,BYTE PTR DS:[EAX+EDI] ;<== FU[i] 0040C81E |. 0FAFEA |IMUL EBP,EDX ; Temp = FU[i] * 4th Default Value (0x0B) 0040C821 |. 03CD |ADD ECX,EBP ; Sec4 =Sec4 + Temp 0040C823 |. 40 |INC EAX ;i ++ 0040C824 |. 3BC6 |CMP EAX,ESI ;While (i < Length (FU)) 0040C826 |.^ 72 F2 \JB SHORT FolderVi.0040C81A ; Continue Loop 0040C828 |> 51 PUSH ECX ; /<%u> ; Sec4 (Convert hex > dec) 0040C829 |. 8D5424 14 LEA EDX,DWORD PTR SS:[ESP+14] ; | 0040C82D |. 68 749E4200 PUSH FolderVi.00429E74 ; |Format = "%u" 0040C832 |. 52 PUSH EDX ; |s 0040C833 |. FF15 70624200 CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA === Calculation 3 === 0040C839 |. 83C4 0C ADD ESP,0C 0040C83C |. 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10] 0040C840 |. 50 PUSH EAX ; /StringToAdd 0040C841 |. 53 PUSH EBX ; |ConcatString 0040C842 |. FF15 C4614200 CALL DWORD PTR DS:[<&KERNEL32.lstrcatA>] ; \ lstrcatA <== EAX : Right Code 0040C848 |. 5F POP EDI 0040C849 |. 5E POP ESI 0040C84A |. 5D POP EBP 0040C84B |. 5B POP EBX 0040C84C |. 81C4 00010000 ADD ESP,100 0040C852 \. C3 RETN === Trace Into === 0040C680 |. 8B9424 140100>MOV EDX,DWORD PTR SS:[ESP+114] ;<=== FS 0040C687 |. 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C] ;<=== Right Serial 0040C68B |. 51 PUSH ECX 0040C68C |. 52 PUSH EDX 0040C68D |. E8 2EFEFFFF CALL FolderVi.0040C4C0 ;<== Compare 0040C692 |. 83C4 10 ADD ESP,10 0040C695 |. F7D8 NEG EAX 0040C697 |. 1BC0 SBB EAX,EAX 0040C699 |. 5E POP ESI 0040C69A |. F7D8 NEG EAX 0040C69C |. 81C4 00010000 ADD ESP,100 0040C6A2 \. C3 RETN === Trace Into === 0040C178 . 83C4 08 ADD ESP,8 0040C17B . 85C0 TEST EAX,EAX ;<=== Wrong Code Jump to Nag 0040C17D . 74 43 JE SHORT FolderVi.0040C1C2 0040C17F . 8D5424 04 LEA EDX,DWORD PTR SS:[ESP+4] 0040C183 . 8D8424 040100>LEA EAX,DWORD PTR SS:[ESP+104] 0040C18A . 52 PUSH EDX 0040C18B . 50 PUSH EAX 0040C18C . 68 18964200 PUSH FolderVi.00429618 ; ASCII "Software\FolderView\Registration" 0040C191 . 68 01000080 PUSH 80000001 0040C196 . E8 15050000 CALL FolderVi.0040C6B0 0040C19B . 68 18964200 PUSH FolderVi.00429618 ; ASCII "Software\FolderView\Registration" 0040C1A0 . 68 01000080 PUSH 80000001 0040C1A5 . E8 16020000 CALL FolderVi.0040C3C0 0040C1AA . 83C4 18 ADD ESP,18 0040C1AD . 6A 01 PUSH 1 ; /Result = 1 0040C1AF . 56 PUSH ESI ; |hWnd 0040C1B0 . FF15 34624200 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog 0040C1B6 . 33C0 XOR EAX,EAX 0040C1B8 . 5E POP ESI 0040C1B9 . 81C4 00020000 ADD ESP,200 0040C1BF . C2 1000 RETN 10 0040C1C2 > 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL 0040C1C4 . 68 74964200 PUSH FolderVi.00429674 ; |Title = "FolderView" [B]0040C1C9 . 68 90B84200 PUSH FolderVi.0042B890 ; |Text = "Sorry, you have entered an incorrect registration code."[/b] 0040C1CE . 56 PUSH ESI ; |hOwner 0040C1CF . FF15 78624200 CALL DWORD PTR DS:[<&USER32.MessageBoxA>] ; \MessageBoxA 0040C1D5 > 33C0 XOR EAX,EAX ; Default case of switch 0040C0CD 0040C1D7 . 5E POP ESI 0040C1D8 . 81C4 00020000 ADD ESP,200 0040C1DE . C2 1000 RETN 10 /*/*/*/ - SERIAL tương ứng : User : kienmanowar Serial : 1730-47200-1510-12980 User : REA-cRaCkErTeAm Serial : 2005-50200-1705-13805 III – Keygen : Code: char reaName[64]={0}; char reaSerial[64]={0}; int LenName=0; int i=0,j=0; int Temp=0, Temp1 = 0; char Sec1[10] = {0}, Sec2[10] = {0}, Sec3[10] = {0}, Sec4[10] = {0}; int Sec1_temp = 0, Sec2_temp = 0, Sec3_temp = 0,Sec4_temp = 0; LenName=GetDlgItemText(IDC_NAME,reaName,64); if (LenName < 1) { MessageBox(" ===== Your name atleast 1 chart ===== ","Hey !! Please input your name again !! "); } else { // Caculation 0 while (i < LenName) { Temp = reaName[i] + 0x32; Temp1 = Temp1 + Temp ; i++; } Sec1_temp = Temp1; wsprintf(Sec1,"%u-",Sec1_temp); i = 0; Temp = 0; Temp1 = 0; // Calculation 1 while (i < LenName) { Temp = reaName[i] * 0x28; Temp1 = Temp1 + Temp; i++; } Sec2_temp = Temp1; wsprintf(Sec2,"%u-",Sec2_temp); //Calculation 2 i = 0; Temp = 0 ; Temp1 = 0; while ( i < LenName) { Temp = reaName[i] + 0x1E; Temp1 = Temp1 + Temp; i++; } Sec3_temp = Temp1; wsprintf(Sec3,"%u-",Sec3_temp); OK } Temp = reaName[i] + j + 4*Temp; Trace tiếp tới đây. Đoạn code này check xem FN ta nhập vào có nằm trong danh sách BlackList của nó hay không. Nếu có thì bắn “HACKER” : N ếu không thì nhảy qua : Đặt vệt sáng tại địa chỉ 180039D4 rồi nhìn xuống phía dưới : Oki và chúng ta sẽ thấy tại địa chỉ [1800A9B8] nó sẽ chứa các Magic String. Mỗi Magic String này có 10 kí tự được ngăn cách nhau bởi dấu ‘.’ Trace tiếp chúng ta sẽ thấy tại địa chỉ 180039E3 chương trình so sánh EBX với giá trị chứa trong [18009008] (so sánh EBX với 0x66). Và EBX ở đây chính là số lần lặp của đoạn code này. Như vậy đoạn code này sẽ lặp đi lặp lại tối đa là 102 lần, tùy thuộc vào lệnh nhảy tại 180039FD có được Set hay không. Muốn biết thì chúng ta phải xem xem tại địa chỉ 180039F3 chương trình s ẽ kiểm tra cái gì và như th ế n ào. Trace into : Đoạn code này tính giá trị EBX từ chuỗi “Bejeweled1240409” cuối cùng EBX = 0x29. Trace tiếp: Đoạn code này sẽ check 10 kí tự đầu tiên trong chuỗi FS. Quá trình kiểm tra như sau : - Đầu tiên chương trình sẽ check xem vị trí xuất hiện của kí tự FS[0] trong chuỗi Str1 = "ZXHYGKLQ9867WEPRCDSANMJBVFTU5342" - CL = vị trí xuất hiện. - Sau đó chương trình đem kí tự đầu tiên của chuỗi MagicStr mà EDI đang tr ỏ tới để tính : + DL = MagicStr[1] + DL = DL AND 0x7F + DL = DL ^ 0x29 - EAX = DL - EDX = EAX % 0x20 = Temp1 - EAX = CL - Compare EAX và EDX - Nếu bằng thì lặp lại quá trình check như trên cho các kí tự tiếp theo trong FS và MagicStr cho đến hết, cuối cùng EAX = 1 còn không thì EAX = 0, EDI sẽ trỏ tới chuỗi MagicStr tiếp theo và lại lặp lại quá trình kiểm tra 10 kí tự đầu tiên trong FS với chuỗi MagicStr này. Vậy để 10 kí tự đầu tiên thỏa mãn đoạn code này thì các FS[i] (i = 0 9) = Str1[Temp1] Có tất cả 0x66 chuỗi MagicStr tất cả. Chúng ta hãy tìm cách copy tất cả các MagicStr này và Paste vào Notepad đ ể còn dùng khi code Keygen (sử dụng Follow Value in Dump). - Sau khi quá trình kiểm tra trên được thỏa mãn thì chương trình sẽ check tiếp : Quá trình này kiểm tra như sau : Chương trình lấy giá trị Temp tính được ở trên đem chia 0x66 lấy phần dư, rồi đem so sánh với số lần lặp. Có nghĩa là EBX = Temp % 0x66 hay là chúng ta phải lấy chuỗi MagicStr thứ [Temp % 0x66] để tính 10 kí tự đầu tiên trong Serial chứ không thể lấy ngẫu nhiên bất kì một MagicStr nào để tính số Serial. N ếu 10 kí tự đầu tiên mà thỏa mãn đoạn code trên thì nó sẽ nhảy qua RETN và check tiếp 5 kí tự còn lại : Trace tiếp : Trace tiếp. Đoạn code này còn chuyển giá trị Temp (<100000) sang dạng chuỗi. Tiếp tục tới đây; nếu chỉ patch thì tại 18003B00 : Chuyển 75 à 74 Tại địa chỉ 18003AE9 ta Trace into : Đây chính là đoạn code check 5 kí tự còn lại trong FS. Quá trình kiểm tra như sau : - Đầu tiên nó check xem giá trị Temp có lớn hơn 100000 hay không. Nếu có thì SAR Temp,1 cho đến khi Temp < 100000 - Convert Temp thành xâu rồi lấy từng kí tự Temp[i] để tính : + EDX = Temp[i] % 20 = Temp2 – vị trí xuất hiện FS[i] (i = 10 14) trong chuỗi Str1 + FS[i] (i = 10 14) = Str1[Temp2] OK tới đây ta có thể thấy toàn bộ quá trình check Serial của cái Game này. Và bây gi ờ là Keygen : III. Keygen : //Khai bao; . 00 40C1A0 . 68 01 0 00 0 80 PUSH 800 000 01 00 40C1A5 . E8 16 02 000 0 CALL FolderVi .00 40C3C0 00 40C1AA . 83C4 18 ADD ESP ,18 00 40C1AD . 6A 01 PUSH 1 ; /Result = 1 00 40C1AF . 56 PUSH ESI ; |hWnd 00 40C1B0. 00 40C1 91 . 68 01 0 00 0 80 PUSH 800 000 01 00 40C196 . E8 15 05 000 0 CALL FolderVi .00 40C6B0 00 40C19B . 68 18 964 200 PUSH FolderVi .00 429 618 ; ASCII "SoftwareFolderViewRegistration" 00 40C1A0. 00 40C0CD 00 40C1D7 . 5E POP ESI 00 40C1D8 . 81C4 00 0 200 00 ADD ESP, 200 00 40C1DE . C2 10 00 RETN 10 /*/*/*/ - SERIAL tương ứng : User : kienmanowar Serial : 17 30- 47 200 -15 10 -12 9 80 User : REA-cRaCkErTeAm

Ngày đăng: 03/07/2014, 18:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN