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

Cracker Handbook 1.0 part 248 potx

6 91 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 130,86 KB

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

Nội dung

Giờ thì bạn biết EDX sẽ là gì rồi há.. Rồi giờ thì vào trong CALL nào.. Còn em này thì gọi là MagicString hen... Nếu muốn gọn thì đầu Function chính bạn UCase luôn fSerials.. Thay vì UCa

Trang 1

YNAVTLHURL

JAXWXSBGAI

CFOAXVQLBI

NBIWKQWWPQ

Thử đếm xem có tất cả bao nhiêu chuỗi 100 (64h) tất cả Giờ thì bạn biết EDX sẽ

là gì rồi há

Rồi giờ thì vào trong CALL nào

Code:

003511D8 | 68 30603500 PUSH scrabb_1.00356030 ; /String =

"ZXHYGKLQ9867WEPRCDSANMJBVFTU5342"

003511DD | FF15 3C503500 CALL NEAR DWORD PTR

DS:[<&KERNEL32.lstrl>; \lstrlenA

Thêm 1 MagicString

Vậy tạm gọi như sau Các dãy string vừa rồi ta gọi là TableString

Còn em này thì gọi là MagicString hen

Code:

003511EA | 8A1D 30603500 MOV BL, BYTE PTR DS:[356030]

003511F0 | 8B7C24 14 MOV EDI, DWORD PTR SS:[ESP+14]

BL = Name.Char

EDI =fSerials

Code:

003511F4 |> /33C0 /XOR EAX, EAX

003511F6 | |8A07 |MOV AL, BYTE PTR DS:[EDI]

003511F8 | |84C0 |TEST AL, AL

003511FA | |74 52 |JE SHORT scrabb_1.0035124E

003511FC | |3C 30 |CMP AL, 30

003511FE | |7C 48 |JL SHORT scrabb_1.00351248

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

00351202 | |7F 44 |JG SHORT scrabb_1.00351248

AL = fSerials.Char

If AL = Then Exit Loop

Code:

Trang 2

003511FC | 3C 30 |CMP AL, 30

003511FE | 7C 48 |JL SHORT scrabb_1.00351248

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

00351202 | 7F 44 |JG SHORT scrabb_1.00351248

If AL nằm trong khoảng 30 - 7A (alphabe - Numberic) thì xử lý Else Exit Loop Code:

00351204 | 50 |PUSH EAX

00351205 | E8 36FEFFFF |CALL scrabb_1.00351040

PUSH Char vào Stack

Trong CALL

Code:

00351040 /$ 33C0 XOR EAX, EAX

00351042 | 8A4424 04 MOV AL, BYTE PTR SS:[ESP+4]

00351046 | 3C 61 CMP AL, 61

00351048 | 7C 07 JL SHORT scrabb_1.00351051

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

0035104C | 7F 03 JG SHORT scrabb_1.00351051

0035104E | 83E8 20 SUB EAX, 20

00351051 \> C3 RET

Khúc này thì mọi ng chắc đã wen Đại khái là UCase Char thôi Nếu muốn gọn thì đầu Function chính bạn UCase luôn fSerials Thay vì UCase từng Char như thế này

Code:

0035120F | 84DB |TEST BL, BL

00351211 | /74 11 |JE SHORT scrabb_1.00351224

BL lúc này đang chứa Name.Char Nên khúc này chỉ là kiểm tra Char đó có phải là

kí tự NULL không Nếu không thì Jump còn không thì tính tiếp

Code:

00351215 |> /3AC8 |/CMP CL, AL

00351217 | |74 2B ||JE SHORT scrabb_1.00351244

00351219 | |8A8A 31603500 ||MOV CL, BYTE PTR DS:[EDX+356031]

0035121F | |42 ||INC EDX

00351220 | |84C9 ||TEST CL, CL

Trang 3

00351222 |.^\75 F1 |\JNZ SHORT scrabb_1.00351215

CL = MagicString.Char

AL = fSeriasl.Char

Đoạn Loop trên nhằm kiểm tra trong fSerials có chứa kí tự tương ứng trong

MagicString

Code:

00351228 | 8A06 |MOV AL, BYTE PTR DS:[ESI]

0035122A | 50 |PUSH EAX

0035122B | E8 10FEFFFF |CALL scrabb_1.00351040

AL = TableString(Index).Char

Gán AL là kí tự trong chuỗi thuộc TableString đang xử lý (được PUSH ở ngoài Function này) Sau đó UCase

Code:

00351230 | 0FBEC0 |MOVSX EAX, AL

00351233 | 99 |CDQ

00351234 | F7FD |IDIV EBP

Thực hiện phép chia AL với EBP (EBP = MagicString.Length)

Code:

0035123C | 3BD1 |CMP EDX, ECX

Kiểm tra EDX là số dư phép chia = 0 hay không (ECX đang = 0 do phép XOR trc đó)

Nếu không bằng nhau then Exit Function Else Point đến kí tự tiếp theo của

fSerials & TableString(Index)

Chà Xui thật Tut đầu tiên mà đụng ngay em GameHouse loại này Đoạn code nó tuy cũng như các loại khác nhưng bị biến đổi đi tí chút dẫn đến hơi khó nhìn để Keygen

Vậy ta gút lại Function này xem sao

Code:

Trang 4

Public Function CheckSerials (ByVal in_strfSerials As String, ByVal

in_strTableString As String)

Const strMagicString As String =

"ZXHYGKLQ9867WEPRCDSANMJBVFTU5342"

Code:

003511D8 | 68 30603500 PUSH scrabb_1.00356030 ; /String =

"ZXHYGKLQ9867WEPRCDSANMJBVFTU5342"

003511DD | FF15 3C503500 CALL NEAR DWORD PTR

DS:[<&KERNEL32.lstrl>; \lstrlenA

003511E3 | 8BE8 MOV EBP, EAX

Quote:

* MagicString.Length Sau đó gán Length đó vào EBP

Code:

003511F6 | 8A07 |MOV AL, BYTE PTR DS:[EDI] ; MOV AL, fSerials.Char

003511F8 | 84C0 |TEST AL, AL

003511FA | 74 52 |JE SHORT scrabb_1.0035124E

003511FC | 3C 30 |CMP AL, 30

003511FE | 7C 48 |JL SHORT scrabb_1.00351248

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

00351202 | 7F 44 |JG SHORT scrabb_1.00351248 ; 30 < AL < 7A (Numberic & Alphabe)

00351204 | 50 |PUSH EAX

Trang 5

00351205 | E8 36FEFFFF |CALL scrabb_1.00351040 ; UCase

Quote:

* Đơn giản chỉ là lấy kí tự đầu tiên của fSerials gán vào AL, sau đó kiểm tra

nó có phải là Alphabe & Numric hay không (If Not Then DIE) sau đó UCase

Code:

00351213 | 8ACB |MOV CL, BL ; CL =

MagicString.Char

00351215 |> 3AC8 |/CMP CL, AL

00351217 | 74 2B ||JE SHORT scrabb_1.00351244

00351219 | 8A8A 31603500 ||MOV CL, BYTE PTR DS:[EDX+356031] ; MOV CL, MagicString.Char.Next

0035121F | 42 ||INC EDX ; MagicString.NextChar

00351220 | 84C9 ||TEST CL, CL

00351222 |.^ 75 F1 |\JNZ SHORT scrabb_1.00351215 ; End Of MagicString

00351224 |> \32C9 |XOR CL, CL

Quote:

* Gán CL là từng kí tự trong MagicString và kiểm tra kí tự đó với

fSerials.Char ban nãy xem có bằng hay không Nếu bằng thì Exit Loop với EDX là vị trí kí tự đó trong MagicString Trong trường hợp sau khi check hết

cả MagicString mà không tìm ra kí tự tương ứng thí CL sẽ clear = 0

Trang 6

Code:

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN