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

Cracker Handbook 1.0 part 246 ppsx

6 106 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 126,12 KB

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

Nội dung

Nếu textbox YourName rỗng thì bắn nag.. Như vậy chúng ta đã giải quyết xong EXE Scope 6.41.. Thông tin đăng ký sẽ được lưu vào file "eXeScope.ini".. Bây giờ thì edit thoải mái nó cũng kh

Trang 1

004C219C | 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]

004C219F | A1 D8EE4C00 MOV EAX,DWORD PTR DS:[4CEED8]

004C21A4 | 8B00 MOV EAX,DWORD PTR DS:[EAX]

Tại 4C2193 là một hàm CALL với đối số EAX Trong đó EAX =

Length(YourName) Nếu textbox YourName rỗng thì bắn nag Như vậy chúng ta

đã giải quyết xong EXE Scope 6.41 Thông tin đăng ký sẽ được lưu vào file

"eXeScope.ini" Bây giờ thì edit thoải mái nó cũng không kêu ca phàn nàn gì nữa đâu D: :D

Ha Viet Hung(REA)

GameHouse Keygen & Keygen Bundled How 2 !?

Cũng như cũ Muốn làm Bundled thì phải xứ lý được vài em để có cách nhìn khái quát thuật toán của nó đã

Zom lấy rnd một số Games

SCRABBLE

Bước phân tích tìm & set breakpoints Zom xin được pass qua vì nó là điều cơ bản,

mà khi bạn đã làm Bundled tức là đã có một khả năng tương đối gòi

Code:

003528C3 | 6A 7F PUSH 7F ; /Count = 7F (127.)

003528C5 | 8D4C24 44 LEA ECX, DWORD PTR SS:[ESP+44] ; | 003528C9 | 51 PUSH ECX ; |Buffer

003528CA | 68 E8030000 PUSH 3E8 ; |ControlID = 3E8 (1000.)

003528CF | 56 PUSH ESI ; |hWnd

003528D0 | FFD7 CALL NEAR EDI ; \GetDlgItemTextA 003528D2 | 6A 18 PUSH 18 ; /Count = 18 (24.)

003528D4 | 8D5424 28 LEA EDX, DWORD PTR SS:[ESP+28] ; | 003528D8 | 52 PUSH EDX ; |Buffer

003528D9 | 68 E9030000 PUSH 3E9 ; |ControlID = 3E9 (1001.)

003528DE | 56 PUSH ESI ; |hWnd

003528DF | FFD7 CALL NEAR EDI ; \GetDlgItemTextA Nhận Name & Serials

Code:

Trang 2

003528FE | E8 7DE8FFFF CALL scrabb_1.00351180 ; Check Length (Only Alphabe & Number)

Xem nào Xem thử trong hàm này nó làm gì đây

Code:

00351180 /$ 8B4C24 04 MOV ECX, DWORD PTR SS:[ESP+4]

00351184 | 8A01 MOV AL, BYTE PTR DS:[ECX] < Gán AL = Kí tự đầu

tiên của fSerials.

00351186 | 33D2 XOR EDX, EDX

00351188 | 84C0 TEST AL, AL

0035118A | 7E 10 JLE SHORT scrabb_1.0035119C

0035118C | 8D6424 00 LEA ESP, DWORD PTR SS:[ESP]

00351190 |> 3C 20 /CMP AL, 20

00351192 | 7F 08 |JG SHORT scrabb_1.0035119C

00351194 | 8A41 01 |MOV AL, BYTE PTR DS:[ECX+1]

00351197 | 41 |INC ECX

00351198 | 84C0 |TEST AL, AL

0035119A |.^ 7F F4 \JG SHORT scrabb_1.00351190

Không có gì Chỉ là bước đầu tiên kiểm tra & loại bỏ các kí tự " " ở đầu chuỗi fSerials

Code:

003511A2 |> /41 /INC ECX

003511A3 | |3C 2D |CMP AL, 2D

003511A5 | |74 19 |JE SHORT scrabb_1.003511C0

003511A7 | |3C 61 |CMP AL, 61

003511A9 | |7C 04 |JL SHORT scrabb_1.003511AF

003511AB | |3C 7A |CMP AL, 7A

003511AD | |7E 10 |JLE SHORT scrabb_1.003511BF

003511AF |> |3C 41 |CMP AL, 41

003511B1 | |7C 04 |JL SHORT scrabb_1.003511B7

003511B3 | |3C 5A |CMP AL, 5A

003511B5 | |7E 08 |JLE SHORT scrabb_1.003511BF

003511B7 |> |3C 30 |CMP AL, 30

003511B9 | |7C 0B |JL SHORT scrabb_1.003511C6

003511BB | |3C 39 |CMP AL, 39

003511BD | |7F 07 |JG SHORT scrabb_1.003511C6

003511BF |> |42 |INC EDX

Trang 3

003511C0 |> |8A01 |MOV AL, BYTE PTR DS:[ECX]

003511C2 | |84C0 |TEST AL, AL

003511C4 |.^\75 DC \JNZ SHORT scrabb_1.003511A2

Nhìn thì khá phức tạp nhỉ Tuy nhiên xem kĩ thì

61 = a

7A = z

41 = A

5A = Z

30 - 39 = 0 - 9

Vậy nó làm gì nhỉ ?

- Đầu tiên kiểm tra nếu = 2D ("-") thì nhảy đến cuối Loop gán AL là kí tự tiếp theo EDX không tăng

-

Code:

003511A7 | 3C 61 |CMP AL, 61

003511A9 | /7C 04 |JL SHORT scrabb_1.003511AF

003511AB | |3C 7A |CMP AL, 7A

003511AD | |7E 10 |JLE SHORT scrabb_1.003511BF

Nếu AL nằm trong khoảng 61 < AL < 7A ( a<AL<z ) thì nhảy đến 003511BF tức

là lệnh INC EDX

- Tương tự với 2 cặp 41 - 5A & 30 - 39 Nếu kí tự nằm trong các khoảng này thì EDX tăng 1 đơn vị

- Tóm lại là đếm các kí tự Alphabe (LCase & UPCase & Numberic) EDX là biến lưu giữ đếm các kí tự này

Code:

003511C6 |> \33C0 XOR EAX, EAX

003511C8 | 83FA 0F CMP EDX, 0F

003511CB | 0F94C0 SETE AL

003511CE \ C3 RET

- Clear EAX = 0 hén

- CMP EDX, 0F EDX là biến lưu các kí tự đã đếm ở trên

-

Quote:

SETE/SETZ ZF = 1 Set if Equal/Zero

Trang 4

Lệnh SETE gán toán hạng đích = 1 nếu ZF =1

- Trong trường hợp này nếu EDX = 0F thì ZF = 1 thi đó SETE sẽ set AL = 1

Ra khỏi Function này

Code:

00352906 | 85C0 TEST EAX, EAX

00352908 | 75 23 JNZ SHORT scrabb_1.0035292D

Khà Đúng hông Nếu EAX = 0 coi như em nó tiêu với các Nag chà pá gòi

Đến đây ta có thể biết là fSerials.Length = F với các kí Alphabe (UCase & LCase)

& Numberic

Vậy tạm gán fSerials = 1234567890ABCDE Rite !

Tiếp

Code:

0035292D |> \6A 01 PUSH 1

0035292F | 8D5424 28 LEA EDX, DWORD PTR SS:[ESP+28]

00352933 | 52 PUSH EDX

00352934 | 8D4424 48 LEA EAX, DWORD PTR SS:[ESP+48]

00352938 | 50 PUSH EAX

00352939 | 8D8C24 CC0000>LEA ECX, DWORD PTR SS:[ESP+CC]

00352940 | 51 PUSH ECX

00352941 | E8 EAEAFFFF CALL scrabb_1.00351430 ; KeyGen ? Làm trỏ khỉ gì mà nó PUSH Name & Serials ta Có khả năng đây là Function Keygen ? Vô xem thử coi sao (Thực tế nó chính la Function Gen & Check

Serials)

Code:

00351447 |> /81F9 FF000000 /CMP ECX, 0FF

0035144D | |7D 36 |JGE SHORT scrabb_1.00351485 ; Jump If ECX

>= FF

0035144F | |3C 61 |CMP AL, 61

00351451 | |7C 13 |JL SHORT scrabb_1.00351466

00351453 | |3C 7A |CMP AL, 7A

00351455 | |7F 0F |JG SHORT scrabb_1.00351466

00351457 | |0FBEF0 |MOVSX ESI, AL ; Case 61h < Char < 7Ah (a-z)

0035145A | |8BD9 |MOV EBX, ECX ; EBX = ECX

Trang 5

0035145C | |03DE |ADD EBX, ESI ; EBX = EBX + ESI 0035145E | |8D7CBB E0 |LEA EDI, DWORD PTR DS:[EBX+EDI*4-20] ; EDI = EBX+EDI*4-20

00351462 | |2C 20 |SUB AL, 20 ; AL = UCase

00351464 | |EB 12 |JMP SHORT scrabb_1.00351478

00351466 |> |3C 41 |CMP AL, 41

00351468 | |7C 13 |JL SHORT scrabb_1.0035147D

0035146A | |3C 5A |CMP AL, 5A

0035146C | |7F 0F |JG SHORT scrabb_1.0035147D

0035146E | |0FBEF0 |MOVSX ESI, AL ; Case 41h < Char < 5Ah (A-Z)

00351471 | |8BD9 |MOV EBX, ECX

00351473 | |03DE |ADD EBX, ESI ; EBX = EBX + ESI (ESI=Char)

00351475 | |8D3CBB |LEA EDI, DWORD PTR DS:[EBX+EDI*4] ; EDI = EBX+EDI*4

00351478 |> |88440C 10 |MOV BYTE PTR SS:[ESP+ECX+10], AL

0035147C | |41 |INC ECX

0035147D |> |8A42 01 |MOV AL, BYTE PTR DS:[EDX+1] ; AL = Next Char

00351480 | |42 |INC EDX

00351481 | |84C0 |TEST AL, AL ; End Of Name ?

00351483 |.^\75 C2 \JNZ SHORT scrabb_1.00351447

Code gì mà tè le Nhìn phát chán Đúng hông

Hey But nhìn kĩ xem sao

Code:

0035144F | 3C 61 |CMP AL, 61

00351451 | 7C 13 |JL SHORT scrabb_1.00351466

00351453 | 3C 7A |CMP AL, 7A

00351455 | 7F 0F |JG SHORT scrabb_1.00351466

Đoạn code này wen chứ nhỉ Nó là lọc ra kí tự trong khoảng 61 - 7A (a-z)

Code:

00351466 |> \3C 41 |CMP AL, 41

00351468 | 7C 13 |JL SHORT scrabb_1.0035147D

0035146A | 3C 5A |CMP AL, 5A

0035146C | 7F 0F |JG SHORT scrabb_1.0035147D

Trang 6

Còn đoạn này Lọc kí tự trong khoảng 41 - 5A (A-Z)

Như vậy nghĩa là nó chỉ tính toán xử lý với các kí tự Alphabe (L & UCase) thôi Còn các kí tự khác thì Dẹp tiệm há

Code:

00351457 | 0FBEF0 |MOVSX ESI, AL ; Case 61h < Char < 7Ah (a-z)

0035145A | 8BD9 |MOV EBX, ECX ; EBX = ECX

0035145C | 03DE |ADD EBX, ESI ; EBX = EBX + ESI

Ngày đăng: 03/07/2014, 17:21

TỪ KHÓA LIÊN QUAN