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

Cracker Handbook 1.0 part 289 ppsx

6 161 1

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

THÔNG TIN TÀI LIỆU

-**** Double click lên String trên , chúng ta sẽ quay trở lại màn hình chính của Olly. Dịch lên một chút chúng ta đặt BP tại hàm sau : Quote: 0042DB17 . FF91 A0000000 CALL DWORD PTR DS:[ECX+A0] ;<== Set BP here II – Cracking : -**** Sau khi đặt BP tại hàm trên , chúng ta nhấn Ctrl +F2 để Restart lại , tiếp theo nhấn F9 để run chương trình. Chúng ta tiến hành nhập Fake Serial vào (chú ý các bạn nên gõ FS ra một file sau đó copy lại và paste vào, lý do là vì nếu bạn gõ thì chỉ cần gõ 1 kí tự thôi nó sẽ tự Break trong Olly ngay ). Sau khi nhập xong chúng ta sẽ Break tại hàm trên : Quote: 0042DB17 . FF91 A0000000 CALL DWORD PTR DS:[ECX+A0] ;<== We’ re here -**** Trace qua đoạn code này , chúng ta sẽ đến đây: Code: 0042DB35 > \8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; <== Fake Serial 0042DB38 . 50 PUSH EAX 0042DB39 . FF15 24104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaLenBs>; MSVBVM60.__vbaLenBstr ; <== Get Length(FS) 0042DB3F . 33C9 XOR ECX,ECX 0042DB41 . 83F8 06 CMP EAX,6 ; <== Length (FS) must equal 6 0042DB44 . 0F95C1 SETNE CL ; <== CL = 1 if Length (FS) <> 6 0042DB47 . F7D9 NEG ECX 0042DB49 . 8BF9 MOV EDI,ECX ; <== EDI = ECX 0042DB4B . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18] 0042DB4E . FF15 E8114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr 0042DB54 . 8B1D E4114000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObj 0042DB5A . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 0042DB5D . FFD3 CALL EBX ; <&MSVBVM60.__vbaFreeObj> 0042DB5F . 66:85FF TEST DI,DI ; <== If EDI <> 0 then 0042DB62 . 0F85 BC010000 JNZ CMB_Audi.0042DD24 ; <== Jump out of check Serial -**** Qua đoạn code trên bạn đã hiểu tại sao lại phải gõ FS ra rùi paste vô textbox rùi chứ. Bởi vì nếu bạn nhập bằng tay vào thì chúng ta chỉ được một kí tự thôi và Olly sẽ Break ngay lập tức , do đó chúng ta sẽ không thể vượt qua được đoạn check length . He he nhưng có một mẹo nhỏ để các bạn có thể vượt qua được đoạn check length nếu chỉ nhập một kí tự , đó là khi đến lệnh Test DI, DI bạn hãy Assemble (click Space) tại câu lệnh nhảy JNZ ở phía dưới và sửa lại câu lệnh này. Oki -**** Bây giờ sau khi chúng ta đã vượt qua được đoạn check Length trên , trace tiếp chúng ta sẽ tới đoạn code sau : Code: 0042DBA3 > \8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ;<== Fake Serial 0042DBA6 . 50 PUSH EAX 0042DBA7 . FF15 C4104000 CALL DWORD PTR DS:[<&MSVBVM60.#527>] ; MSVBVM60.rtcUpperCaseBstr 0042DBAD . 8BD0 MOV EDX,EAX 0042DBAF . B9 B4F04200 MOV ECX,CMB_Audi.0042F0B4 0042DBB4 . FF15 BC114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove 0042DBBA . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18] 0042DBBD . FF15 E8114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr 0042DBC3 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 0042DBC6 . FFD3 CALL EBX 0042DBC8 . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 0042DBCB . 51 PUSH ECX 0042DBCC . E8 5F1DFFFF CALL CMB_Audi.0041F930 ; <== Compare FS with default serial 0042DBD1 . 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C] 0042DBD4 . 8D45 94 LEA EAX,DWORD PTR SS:[EBP-6C] 0042DBD7 . 52 PUSH EDX 0042DBD8 . 50 PUSH EAX 0042DBD9 . C745 9C FFFFF>MOV DWORD PTR SS:[EBP-64],-1 0042DBE0 . C745 94 0B800>MOV DWORD PTR SS:[EBP-6C],800B 0042DBE7 . FF15 D8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarTs>; MSVBVM60.__vbaVarTstEq 0042DBED . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 0042DBF0 . 66:8BF8 MOV DI,AX 0042DBF3 . FF15 20104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVar 0042DBF9 . 66:85FF TEST DI,DI 0042DBFC . 0F84 22010000 JE CMB_Audi.0042DD24 0042DC02 . 8B0E MOV ECX,DWORD PTR DS:[ESI] 0042DC04 . 56 PUSH ESI 0042DC05 . FF91 8C030000 CALL DWORD PTR DS:[ECX+38C] 0042DC0B . 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C] 0042DC0E . 50 PUSH EAX 0042DC0F . 52 PUSH EDX 0042DC10 . FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaObjSe>; MSVBVM60.__vbaObjSet 0042DC16 . 8BF8 MOV EDI,EAX 0042DC18 . 6A FF PUSH -1 0042DC1A . 57 PUSH EDI 0042DC1B . 8B07 MOV EAX,DWORD PTR DS:[EDI] 0042DC1D . FF90 B4010000 CALL DWORD PTR DS:[EAX+1B4] 0042DC23 . 85C0 TEST EAX,EAX 0042DC25 . DBE2 FCLEX 0042DC27 . 7D 12 JGE SHORT CMB_Audi.0042DC3B 0042DC29 . 68 B4010000 PUSH 1B4 0042DC2E . 68 40A44000 PUSH CMB_Audi.0040A440 0042DC33 . 57 PUSH EDI 0042DC34 . 50 PUSH EAX 0042DC35 . FF15 60104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>; MSVBVM60.__vbaHresultCheckObj 0042DC3B > 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 0042DC3E . FFD3 CALL EBX 0042DC40 . 8B0E MOV ECX,DWORD PTR DS:[ESI] 0042DC42 . 56 PUSH ESI 0042DC43 . FF91 8C030000 CALL DWORD PTR DS:[ECX+38C] 0042DC49 . 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C] 0042DC4C . 50 PUSH EAX 0042DC4D . 52 PUSH EDX 0042DC4E . FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaObjSe>; MSVBVM60.__vbaObjSet 0042DC54 . 8BF0 MOV ESI,EAX 0042DC56 . 68 78BA4000 PUSH CMB_Audi.0040BA78 ; UNICODE "Thank you for registering!" -**** Oki , trong đoạn code trên các bạn để ý thấy có một câu lệnh TEST và một câu lệnh JE tại 0042DBF9 và 0042DBFC . Các bạn sẽ thấy là nếu như sau một hồi kiểm tra ở trước hai câu lệnh này mà giá trị của DI là 0 thì câu lệnh nhảy sẽ cho chúng ta nhảy qua dòng “Thank you for resgistering “ như các bạn đã thấy ở trên. Đây là điều mà chúng ta không hề mong muốn. Vậy thì chắc chắn sẽ phải có một hàm nào đó kiểm tra Serial của chúng ta nhập vào và kết quả đúng sai sẽ trả về cho DI Sau khi tìm hiều thì đoạn check đó nằm tại đỉa chỉ sau 0042DBCC : Quote: 0042DBCC . E8 5F1DFFFF CALL CMB_Audi.0041F930 ; <== Compare FS with default serial (Trace Into) -**** Đã xác định được mục tiêu chính chúng ta hãy Trace Into vào trong hàm này . Oki sau khi trace vào trong hàm này thì nhìn xuống một chút các bạn sẽ thấy các Default Serial của chương trình này . Chương trình sẽ nạp từng Default Serial này vào sau đó đem check với Fake Serial mà chúng ta gõ vào . Các Default Serial của chương trình này như sau: Quote: …………… 0041FA19 . C785 D4FEFFFF>MOV DWORD PTR SS:[EBP- 12C],CMB_Audi.0040>; UNICODE "FGA485" …………. 0041FA4D . C785 B4FEFFFF>MOV DWORD PTR SS:[EBP- 14C],CMB_Audi.0040>; UNICODE "FHA486" …………… 0041FA81 . C785 94FEFFFF>MOV DWORD PTR SS:[EBP- 16C],CMB_Audi.0040>; UNICODE "FAH487" …………… 0041FAB5 . C785 74FEFFFF>MOV DWORD PTR SS:[EBP- 18C],CMB_Audi.0040>; UNICODE "FWH488" ……………. 0041FADE . C785 54FEFFFF>MOV DWORD PTR SS:[EBP- 1AC],CMB_Audi.0040>; UNICODE "FGH489" ……………. -**** Keke , lấy giấy bút ra và ghi lại thôi còn chần chừ gì nữa . Qua đoạn trên các bạn có thể đặt ra câu hỏi là tại sao lại có thể biết được hàm đó là check Serial thì xin thưa với các bạn như sau. Sau khi chúng ta đã thu hẹp lại khoảng cần quan tâm là nằm phía trên của lệnh TEST DI, DI. Các bạn để ý thấy có rất nhiều hàm nằm trong từng hàm Call khác nhau. Vậy thì tại sao và làm thế nào để biết chính xác đâu là hàm cần tìm ?. Một câu trả lời ngắn gọn theo sự hiểu biết của mình như sau, trong một chương trình nó sẽ có những hàm chuẩn và những hàm mà coder tự viết. Hàm chuẩn thường là các hàm gọi API hay là các hàm bắt đầu bằng tiếp đầu ngữ là MSVB đối với Visual Basic , còn đối với Visual C++ là MFC Còn hàm coder tự viết thì không có các tiếp đầu ngữ như vậy, do đó việc xác định đâu là mục tiêu cần tìm sẽ được tiếp tục thu hẹp và chúng ta có được kết quả như trên :D . /*/*/*/* Serial tương ứng : FGA485 Or FHA486 Or FAH487 Or FWH488 Or FGH489 III – KeyGen : N/A IV – End of Tut : - Finished – December 29, 2004 - Thank to my family, Computer_Angel, Moonbaby , Zombie_Deathman, Littleboy, Benina, QHQCrker, the_Lighthouse, Hoadongnoi, Nini all REA‘s members, HacNho, RongChauA, Deux all my friend, and YOU :wub: . REVERSE ENGINEERING ASSOCIATION http://www.reaonline.net Kienmanowar(REA) === www.enins.com === Reverse Engineering Association SoftWare Home page : http://www.enins.com Production : ENIN Software Software : Batch Launcher v1.1.4 Copyright by : Nikolay Enin 2003 Packed : N / A Language : Borland Delphi 6.0 - 7.0 Crack tool : OllyDBG v1.10, PEiD v0.92 Unpack : N / A Request : Correct Serial Comment : Quote: Batch Launcher v1.1.4 Start more than one application at once, make shortcut to the such batch. Using created batches as the startup sequences and more . 85C0 TEST EAX,EAX 00 42DC25 . DBE2 FCLEX 00 42DC27 . 7D 12 JGE SHORT CMB_Audi .00 42DC3B 00 42DC29 . 68 B4 01 0 00 0 PUSH 1B4 00 42DC2E . 68 40A4 400 0 PUSH CMB_Audi .00 40A4 40 00 42DC33 . 57 PUSH EDI 00 42DC34. MSVBVM 60. __vbaFreeVar 00 42DBF9 . 66:85FF TEST DI,DI 00 42DBFC . 0F84 22 01 0 00 0 JE CMB_Audi .00 42DD24 00 42DC02 . 8B0E MOV ECX,DWORD PTR DS:[ESI] 00 42DC04 . 56 PUSH ESI 00 42DC05 . FF 91 8C0 300 00 CALL. MSVBVM 60. __vbaObjSet 00 42DC16 . 8BF8 MOV EDI,EAX 00 42DC18 . 6A FF PUSH -1 00 42DC1A . 57 PUSH EDI 00 42DC1B . 8B07 MOV EAX,DWORD PTR DS:[EDI] 00 42DC1D . FF 90 B4 01 0 00 0 CALL DWORD PTR DS:[EAX+1B4] 00 42DC23

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

Xem thêm: Cracker Handbook 1.0 part 289 ppsx

TỪ KHÓA LIÊN QUAN