Cracking part 9

Chia sẻ: Dqwdasdasd Qwdasdasdasd | Ngày: | Loại File: PDF | Số trang:8

0
44
lượt xem
8
download

Cracking part 9

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: Cracking part 9

  1. Series : 63210$7890123456 OK ! Done ! Chương trình cảm ơn chúng rối rít ta kìa “thank you ……”, ngại quá :wub: (chúng ta đâu có đưa $ cho họ , chỉ đưa vài con số thui mà , có gì đâu mà thanx :laugh: ) . Thế mà vừa lúc trước mắng ta te tua : serial tầm bậy . Đã bảo là chờ tý sẽ có Serial ngay mà lại ko nghe , cứ pop-up ra nhắc nhở ta đăng ký hoài . Suỵt ! :whistling mà nói nhỏ thôi nha , họ mà biết là 1 nửa trong số software của họ bị mất bản quyền là họ ko thanks nữa đâu . Hihiiiiiiiii……..! :) Enjoy ! SOURCE CODE FOR PDF Split-Merge v1.1: Code: char reaSerial[20]={0}; char reaRandChart[37]="1478523690POIUYTREWQASDFGHJKLMNBVCXZ"; int i=0; i=0; while ( i < 16 ) { reaSerial[i] = reaRandChart[rand()%36]; i++; } reaSerial[0] = reaRandChart[rand()%8]; reaSerial[1] = (0x9 - ((reaSerial[0] & 0xFF) - 0x30)) + 0x30; reaSerial[14] = reaRandChart[rand()%9]; reaSerial[15] = (0xB - ((reaSerial[1] & 0xFF) - 0x30)) + 0x30; reaSerial[5] = 0x24; SetDlgItemText(IDC_Serial,reaSerial); Chúc thành công ! :smiling: SoftWare : EnCrypt PDF v2.1 Copyright by : Copyright @ 2001-2003 verypdf.com Inc Packed : UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo Language : Microsoft Visual C++ 6.0 Crack Tools : OllyDbg 1.09d, PEiD v0.92 Unpack tools : UPX Unpack , hoặc dùng plugin của PeiD (có RebuildPE )
  2. Request : Real Serial . Introduction : EnCrypt PDF v2.1 Encrypt PDF software is a very flexible and powerful program, Encrypt PDF software allows you to encrypt (using standard 40-bit or 128-bit supported by Acrobat Reader 5.0 and up) existing PDFs, set permissions, add user and owner password. For example you can encrypt a PDF without to allow to print it. The button to print the file will be disabled in Acrobat Reader application, you also can encrypt a PDF allowing the user to read it only if he know the correct password. Note, The source PDF must be an unencrypted PDF. Acrobat Reader will show a key in the bottom status bar if the PDF is encrypted………. I/ Information : - Now , bây giờ chúng ta lại tiếp tục lôi đồ nghề ra nào . :wink: Và như được lập trình sẵn ta lại làm : Dùng PEid v0.92 để Detect , chúng ta biết chương trình được pack bằng UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo. Ta dùng tool : UPX Unpack để unpack chương trình này , hoặc chúng ta cũng có thể dùng Plugin của PEiD (có ReBuildPE ) để unpack . Trước khi Unpack Size là : 24KB , sau khi Unpack Size là : 260 KB . Sau khi unpack xong , lại dùng PEiD v0.92 để Detect , chúng ta biết chương trình được viết bằng Microsoft Visual C++ 6.0 - Vẫn là động tác quen thuộc :) : Chạy thử chương trình , chúng ta thấy hiện lên một 1 Dialog Box : “Please register EnCrypt PDF v2.1”, và chương trình chỉ cho phép chúng ta dùng thử 100 lần (chậc chậc…. sao ít thế :pinch: ) nếu chúng ta ko đưa money cho họ và đổi lại họ sẽ đưa số Serial cho chúng ta . Đưa money để buy soft á . Nghe hơi lạ tai , chúng ta đâu có thói quen này , và lần này cũng vậy thôi hãng VeryPdf ạ (trừ khi Free All cho chúng ta :D )! Hihiiiii....... Muốn vậy thì chúng ta chỉ có 1 cách duy nhất là Kill & Kill nó thôi . Thông cảm nhé hãng VeryPdf , tớ còn đang là SV chưa earn $ được, với lại $ còn phải dùng vào nhiều việc lém . Hihiiii……..! :laugh: - OK ! bây giờ nhìn vào Dialog ta thấy mã ID của Software : Product ID : [ZLTA987654325JNX] (cái này ta ko cần quan tâm làm gì cho mệt óc ) . Nhìn xuống phía dưới là chỗ mà ta phải nhập Series , đây mới là chỗ ta cần . OK ! :wink: ta nhập đại vào 1 cái Series xem nó bảo sao . Ở đây em nhập là : Series : 0361985 . Nhấn OK . Oh ! Tất lẽ dĩ ngẫu là 1 cái nag sẽ văng ra, đập ngay vào mặt chúng ta ( ko văng nag ra mới là chuyện lạ :(( ) : "Series number error , please check it and try again " . Nó chửi Serial của chúng ta tầm bậy các bạn ạ . Thế có ức ko cơ chứ , ức đến tận cổ :(( , đã vậy khi chúng ta exit cái Dialog Box đó nó còn pop-up ra 1 cái nag nhắc nhở ta : "Please register ...." , đòi tiền như đòi nợ ấy . :sad: Biết rồi nói mãi , làm gì mà cứ nhắc hoài thế , chờ tý nữa tớ sẽ đưa Serial (not $ ) cho ngay thôi mà . Hihi.......! :) Ok , chúng ta hãy ghi nhớ lấy tất cả những thứ đó . - Bây giờ chúng ta hãy load chương trình vào trong OllyDbg . Nếu nó hiện ra 1 bảng
  3. thông báo thì cứ nhấn OK , sau đó nó lại cho ta chọn Yes (Analysis) & No (Analysis) . Ta chọn No (Analysis) . Sau đó click chuột phải chọn Search for / All referenced text strings để tìm chuỗi thông báo trên . Ặc ặc....... :(( mấy 1 phút mà vẫn không thấy cái chuỗi thông báo đó đâu cả . Chẳng nhẽ chúng ta lại chịu bó tay trước thời cuộc sao . Không đâu các bạn cứ bình tĩnh , chúng ta lại sử dụng phương pháp Stack của anh Moonbaby . :w00t: - Nhấn Ctrl + F2 để load lại chương trình vào trong OllyDbg . Nhấn F9 để Run chương trình . Chúng ta lại nhập FS như ở trên vào . Xong nhấn OK , xuất hiện thông báo : "Series number error , please check it and try again ". Giữ nguyên chương trình , quay trở lại Ollydbg , nhấn F12 , Olly sẽ dừng chương trình lại . Nhấn tiếp Alt + K để hiện cửa sổ : “Call stack of main thread “ . Ta thấy ngay thông báo : *** Ở đây chúng ta chú ý đến dòng màu đỏ : Code: Call stack of main thread Address Stack Procedure / arguments Called from Frame 0012EE08 003218A9 ? USER32.MessageBoxA verypdf.003218A3 0012EE0C 001803CA hOwner = 001803CA ('Please registe 0012EE10 00324254 Text = "Series number error, pleas 0012EE14 00000000 Title = NULL 0012EE18 00000010 Style = MB_OK|MB_ICONHAND|MB_APPLM ***Double-click vào cột Called from của dòng này , chúng ta đến địa chỉ : Code: 0032189D 68 54423200 PUSH verypdf.00324254 ; ASCII "Series number error, please check it and try again." 003218A2 56 PUSH ESI 003218A3 FF15 88313200 CALL NEAR DWORD PTR DS:[323188] ; USER32.MessageBoxA ===> We’re here . 003218A9 68 FB030000 PUSH 3FB ===> Set BreakPoint here . 003218AE 56 PUSH ESI *** Sau khi đặt BP tại đây , Ollydbg sẽ dừng chương trình lại , nhấn F8 để xuất hiện lại thông báo : "Series number error, please check it and try again " Nhấn OK để chấp nhận thông báo này , chương trình sẽ dừng lại tại điểm BP mà chúng ta vừa đặt . Xoá điểm BP này đi . RETN , nhìn lên trên 1 chút chúng ta sẽ thấy đoạn code sau . Đây là tử huyệt , chúng ta sẽ đặt BP tại đây : Code: 00321849 FF15 80313200 CALL NEAR DWORD PTR DS:[323180] ; USER32.GetDlgItemTextA ===> Set BreakPoint Here .
  4. 0032184F 68 C8433200 PUSH verypdf.003243C8 ; ASCII "0361985" II/ Cracking : ***OK, sau khi đặt BP tại đó , chúng ta nhấn F9 để Run chương trình , ta sẽ thấy hộp thoại đăng kí xuất hiện lại , sau khi đã nhập FS đầy đủ như ở trên ta đã làm , nhấn OK . Chúng ta sẽ quay trở lai Olly và chương trình sẽ Ice tại điểm mà chúng ta set BP. Nhìn xuống phía dưới 1 chút , chúng ta sẽ thấy hàm Call . Đây chính là lệnh gọi hàm kiểm tra Series : :w00t: Code: 00321854 E8 A7F7FFFF CALL verypdf.00321000 *** Ở đây chúng ta cũng thấy lệnh text thanh ghi EAX . Vì vậy chúng ta sẽ Trace Into vào trong hàm Call trên xem nó làm gì với FS của chúng ta : Code: 00321849 FF15 80313200 CALL NEAR DWORD PTR DS:[323180] ; USER32.GetDlgItemTextA ===> We're here . 0032184F 68 C8433200 PUSH verypdf.003243C8 ; ASCII "0361985" 00321854 E8 A7F7FFFF CALL verypdf.00321000 ===> gọi hàm check Serial . --------------------------------------------Trace Into------------------------------------------ 00321000 83EC 18 SUB ESP, 18 00321003 53 PUSH EBX 00321004 55 PUSH EBP 00321005 56 PUSH ESI 00321006 8B7424 28 MOV ESI, DWORD PTR SS:[ESP+28] ===> Đưa Input vào ESI 0032100A 8D5424 0C LEA EDX, DWORD PTR SS:[ESP+C] 0032100E 57 PUSH EDI 0032100F 8A46 0E MOV AL, BYTE PTR DS:[ESI+E] ===> Đưa ký tự thứ 15 trong chuỗi FS vào AL 00321012 8A4E 0F MOV CL, BYTE PTR DS:[ESI+F] ===> Đưa ký tự thứ 16 trong chuỗi FS vào CL 00321015 8B3D 60313200 MOV EDI, DWORD PTR DS:[323160] ; msvcrt.atoi 0032101B 32DB XOR BL, BL 0032101D 52 PUSH EDX 0032101E 884424 20 MOV BYTE PTR SS:[ESP+20], AL ===> đoạn SS:[ESP+20] chứa ký tự thứ 15 00321022 885C24 21 MOV BYTE PTR SS:[ESP+21], BL
  5. 00321026 884C24 14 MOV BYTE PTR SS:[ESP+14], CL ===> đoạn SS:[ESP+14] chứa ký tự thứ 16 0032102A 885C24 15 MOV BYTE PTR SS:[ESP+15], BL 0032102E FFD7 CALL NEAR EDI 00321030 8BE8 MOV EBP, EAX ===> Đưa ký tự thứ 16 trong chuỗi FS vào EBP 00321032 8D4424 20 LEA EAX, DWORD PTR SS:[ESP+20] ===> EAX chứa ký tự thứ 15 00321036 50 PUSH EAX 00321037 FFD7 CALL NEAR EDI 00321039 03E8 ADD EBP, EAX ===> lấy tổng của ký tự 15 + ký tự 16 0032103B 83C4 08 ADD ESP, 8 0032103E 83FD 0B CMP EBP, 0B ===> so sánh với 0B 00321041 74 0A JE SHORT verypdf.0032104D ==> Nếu bằng thì tiếp tục quá trình tính toán Serial . 00321043 5F POP EDI 00321044 5E POP ESI 00321045 5D POP EBP 00321046 33C0 XOR EAX, EAX 00321048 5B POP EBX 00321049 83C4 18 ADD ESP, 18 0032104C C3 RETN 0032104D 8A0E MOV CL, BYTE PTR DS:[ESI] ===> Đưa ký tự thứ nhất trong chuỗi FS vào CL 0032104F 8A56 01 MOV DL, BYTE PTR DS:[ESI+1] ===> Đưa ký tự thứ 2 trong chuỗi FS vào DL 00321052 8D4424 10 LEA EAX, DWORD PTR SS:[ESP+10] 00321056 884C24 1C MOV BYTE PTR SS:[ESP+1C], CL 0032105A 50 PUSH EAX 0032105B 885C24 21 MOV BYTE PTR SS:[ESP+21], BL 0032105F 885424 14 MOV BYTE PTR SS:[ESP+14], DL 00321063 885C24 15 MOV BYTE PTR SS:[ESP+15], BL 00321067 FFD7 CALL NEAR EDI 00321069 8D4C24 20 LEA ECX, DWORD PTR SS:[ESP+20] 0032106D 8BD8 MOV EBX, EAX 0032106F 51 PUSH ECX 00321070 FFD7 CALL NEAR EDI 00321072 03D8 ADD EBX, EAX ===> lấy tổng của ký tự thứ nhất + ký tự thứ 2 00321074 83C4 08 ADD ESP, 8 00321077 83FB 09 CMP EBX, 9 ===> so sánh với 9 0032107A 74 0A JE SHORT verypdf.00321086 ===> Nếu bằng thì tiếp tục quá trình tính toán Serial .
  6. 0032107C 5F POP EDI 0032107D 5E POP ESI 0032107E 5D POP EBP 0032107F 33C0 XOR EAX, EAX 00321081 5B POP EBX 00321082 83C4 18 ADD ESP, 18 00321085 C3 RETN 00321086 8A4E 05 MOV CL, BYTE PTR DS:[ESI+5] ===> Đưa ký tự thứ 6 trong chuỗi FS vào CL 00321089 33C0 XOR EAX, EAX 0032108B 5F POP EDI 0032108C 80F9 2A CMP CL, 2A ===> so sánh ký tự thứ 6 với ký tự ' * ' 0032108F 5E POP ESI 00321090 5D POP EBP 00321091 0F94C0 SETE AL 00321094 5B POP EBX 00321095 83C4 18 ADD ESP, 18 00321098 C3 RETN --------------------------------------------------------------------------------------------- 00321859 83C4 04 ADD ESP, 4 0032185C 85C0 TEST EAX, EAX ===> kiểm tra EAX= 0 ? 0032185E 74 39 JE SHORT verypdf.00321899 ===> nếu EAX=0 thì nhảy đến bắn Bad boy . 00321860 6A 40 PUSH 40 00321862 68 B4423200 PUSH verypdf.003242B4 ; ASCII "Thank you purchased the" 00321867 68 88423200 PUSH verypdf.00324288 ; ASCII "Thank you purchased the encryptpdf v2.1." 0032186C 56 PUSH ESI *** Như vậy theo phân tích ở trên ta thấy Real Serial của chương trình sẽ phải thoả mãn các yêu cầu sau : 1. Chiều dài tối thiểu phải là 16 ký tự 2. ở vị trí thứ 6 trong chuỗi Ser phải là ký tự mặc định ‘ * ’ 3. Các ký tự ở vị trí S[0] , S[1] , S[14] , S[15] phải là các ký tự thoả mãn điều kiện sau : S[0] + S[1] = 0x9 S[14] + S[15] = 0xB 4. Các ký tự còn lại là mặc định .
  7. *** Từ đó ta có thể dễ dàng suy ra Real Serial của chương trình là : 54321*0123456783 ****** Chúng ta lại làm tiếp những động tác quen thuộc cuối cùng , tắt Ollydbg , chạy thử chương trình , nhập vào : Series : 54321*0123456783 OK ! Done ! Chương trình cảm ơn chúng rối rít ta kìa “thank you ……”, ngại quá :wub: (chúng ta đâu có đưa $ cho họ , chỉ đưa vài con số thui mà , có gì đâu mà thanx :D ) . Thế mà vừa lúc trước mắng ta te tua : serial tầm bậy . Đã bảo là chờ tý sẽ có Serial ngay mà lại ko nghe , cứ pop-up ra nhắc nhở ta đăng ký hoài . Suỵt ! :whistling mà nói nhỏ thôi nha , họ mà biết là 1 nửa trong số software của họ bị mất bản quyền là họ ko thanks nữa đâu . Hihiiiiiiiii……..! :) Enjoy ! SOURCE CODE FOR EnCryptPDF v2.1 : Code: char reaSerial[20]={0}; char reaRandChart[37]="1478523690POIUYTREWQASDFGHJKLMNBVCXZ"; int i=0; i=0; while ( i < 16 ) { reaSerial[i] = reaRandChart[rand()%36]; i++; } reaSerial[0] = reaRandChart[rand()%8]; reaSerial[1] = (0x9 - ((reaSerial[0] & 0xFF) - 0x30)) + 0x30; reaSerial[14] = reaRandChart[rand()%9]; reaSerial[15] = (0xB - ((reaSerial[1] & 0xFF) - 0x30)) + 0x30; reaSerial[5] = 0x2A; SetDlgItemText(IDC_Serial,reaSerial); Chúc thành công ! :smiling:
  8. hoadongnoi (http://www.reaonline.net)  
Đồng bộ tài khoản