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

Cracker Handbook 1.0 part 289 ppsx

6 162 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 6
Dung lượng 121,2 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

-**** Double click lên String trên , chúng ta sẽ quay trở lại màn hình chính của Olly... 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 t

Trang 1

-**** 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>

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

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

TỪ KHÓA LIÊN QUAN