Cracker Handbook 1.0 part 248 potx

6 91 1
Cracker Handbook 1.0 part 248 potx

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

Thông tin tài liệu

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: 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 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: 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 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 Code: . 3C 61 CMP AL, 61 00 3 5 10 48 |. 7C 07 JL SHORT scrabb _1. 00 3 5 10 51 00 3 5 10 4A |. 3C 7A CMP AL, 7A 00 3 5 10 4C |. 7F 03 JG SHORT scrabb _1. 00 3 5 10 51 00 3 5 10 4E |. 83E8 20 SUB EAX, 20 00 3 5 10 51 > C3 RET. 00 3 511 F8 |. 84C0 |TEST AL, AL 00 3 511 FA |. 74 52 |JE SHORT scrabb _1. 00 3 512 4E 00 3 511 FC |. 3C 30 |CMP AL, 30 00 3 511 FE |. 7C 48 |JL SHORT scrabb _1. 00 3 512 48 00 3 512 00 |. 3C 7A |CMP AL, 7A 00 3 512 02 . Code: 00 3 512 15 |> /3AC8 |/CMP CL, AL 00 3 512 17 |. |74 2B ||JE SHORT scrabb _1. 00 3 512 44 00 3 512 19 |. |8A8A 316 03 500 ||MOV CL, BYTE PTR DS:[EDX+35 60 31] 00 3 512 1F |. |42 ||INC EDX 00 3 512 20 |.

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan