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

Cracker Handbook 1.0 part 256 doc

6 117 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 79,35 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ờ ta cập nhật lại tổng quan quá trình Gen Serials của em System Mechanic 6 Standard này xem nào.. E8 3CFBFFFF CALL dumped_.007D22A8 ESI = 1Ah EDX = 26h EAX = Name Shared Function Keyge

Trang 1

007D256B | E8 9837C3FF |CALL dumped_.00405D08

Gán Char đó vào Part 3

Code:

007D2570 | 4B |DEC EBX

007D2571 | 46 |INC ESI

007D2572 |.^ 75 E2 \JNZ SHORT dumped_.007D2556

EBX - 1 để lùi dần sang phải

Hey ESI tăng 1 và Loop Until ESI = 0

Nghĩ xem nào Giả sử ta có EncryptedName.Length = 1A

Vậy ESI = 1A - 9 -1A = FFFFFFF7

Còn nếu EncryptedName.Length = 5D ?

ESI = 5D - 9 - 5D = FFFFFFF7

Sau đó lại được trừ 1

ESI = FFFFFFF7 - 1 = FFFFFFF6

Ở vòng Loop thì lập với ESI + 1 dần cho đến khi ESI = 0

Vậy tính xem từ FFFFFFF6 -> 0 là bao nhiêu Loop ?

0 - FFFFFFF6 = A

Xong Tóm lại nó Loop Ah times để lấy Ah kí tự từ phải sang trái :D

Code:

Shared Function Part2(ByVal in_strEncryptedName As String) As String

If (in_strEncryptedName = "") Then

Return ""

Else

Dim intEBX = in_strEncryptedName.Length

Dim out_strPart3 As String

Dim intESI As Integer

Trang 2

intEBX = in_strEncryptedName.Length

intESI = (in_strEncryptedName.Length - &H9 -

in_strEncryptedName.Length)

If intESI > 0 Then

Else

intESI = intESI - 1

Do

out_strPart3 = out_strPart3 & in_strEncryptedName.Substring(intEBX

- 1, 1)

intESI = intESI + 1

intEBX = intEBX - 1

Loop Until intESI = &H0

End If

End If

End Function

Khà hoàn tất Part 3 và cũng là hoàn tất Keygen

Giờ ta cập nhật lại tổng quan quá trình Gen Serials của em System Mechanic 6 (Standard) này xem nào

- Gọi Function Keygen với các Parameters:

Code:

007D275B |> \56 PUSH ESI ; Case 9 of switch

007D2677

007D275C | 57 PUSH EDI

007D275D | 8BCB MOV ECX, EBX

007D275F | BA 26000000 MOV EDX, 26

007D2764 | 8B45 FC MOV EAX, [LOCAL.1]

007D2767 | E8 3CFBFFFF CALL dumped_.007D22A8

ESI = 1Ah

EDX = 26h

EAX = Name

Shared Function KeygenBaseEx(ByVal in_strName As String, _

ByVal in_intStarESI As Integer, ByVal in_intStarEDX As Integer, ByVal

in_strPrefix As String) As String

Trang 3

- Trong Function Keygen:

+ Vòng Loop fixNameLength với EBX = 21h và không có giá trị max EBX Count Loop = Ah

Code:

007D22DC | BB 21000000 MOV EBX, 21 ; MOV EBX = 21h StartIndex 4 Loop

007D22E1 | EB 16 JMP SHORT dumped_.007D22F9

007D22E3 |> 8D45 EC /LEA EAX, [LOCAL.5]

007D22E6 | 8BD3 |MOV EDX, EBX ; EDX = EBX (StartIndex)

007D22E8 | E8 0F39C3FF |CALL dumped_.00405BFC

007D22ED | 8B55 EC |MOV EDX, [LOCAL.5]

007D22F0 | 8D45 FC |LEA EAX, [LOCAL.1]

007D22F3 | E8 103AC3FF |CALL dumped_.00405D08 ; Name = Name & Char(EDX)

007D22F8 | 43 |INC EBX

007D22F9 |> 8B45 FC MOV EAX, [LOCAL.1]

007D22FC | E8 FF39C3FF |CALL dumped_.00405D00

007D2301 | 83F8 0A |CMP EAX, 0A

007D2304 |.^ 7C DD \JL SHORT dumped_.007D22E3 ; Loop fix Name.Length Until A

Như vậy ta gọi Function này như sau:

Code:

Shared Function FixLength(ByVal in_strName As String, ByVal

in_byteLoopCount As Byte, _

ByVal in_byteStart4CrypName As Byte, Optional ByVal in_byteMaxValue As Byte = 0) As String

in_strName = FixLength(in_strName, &HA, &H21)

in_byteMaxValue: Không cần vì không có giá trị max

+ Name.UCase

+ Vòng Loop để tính Part 1:

+ Check Name.Length Nếu <0 thì nhảy đến đoạn Loop fixName với EBX = 31h

& Count Loop = 14h

Trang 4

Code:

If in_strName.Length <= 0 Then

in_strName = FixLength(in_strName, &H14, &H31)

End If

+ Tiếp theo mã hóa Name:

Code:

007D232A | BB 01000000 MOV EBX, 1

007D232F |> 8B45 FC /MOV EAX, [LOCAL.1]

007D2332 | 0FB64418 FF |MOVZX EAX, BYTE PTR DS:[EAX+EBX-1] ; MOVZX EAX = Name.SubString(EBX-1,1)

007D2337 | 8B55 0C |MOV EDX, [ARG.2] ; EDX = 1A (Const)

007D233A | 83C2 46 |ADD EDX, 46 ; EDX = EDX + 46 007D233D | 3BC2 |CMP EAX, EDX

007D233F | 7E 22 |JLE SHORT dumped_.007D2363 ; If EAX (Name.SubString) <= EDX Then Jump

007D2341 | 8B45 FC |MOV EAX, [LOCAL.1]

007D2344 | 0FB64418 FF |MOVZX EAX, BYTE PTR DS:[EAX+EBX-1] 007D2349 | 8D143B |LEA EDX, DWORD PTR DS:[EBX+EDI]

007D234C | 2BC2 |SUB EAX, EDX

007D234E | 8D55 E4 |LEA EDX, [LOCAL.7]

007D2351 | E8 FA9AC3FF |CALL dumped_.0040BE50

007D2356 | 8B55 E4 |MOV EDX, [LOCAL.7]

007D2359 | 8D45 F4 |LEA EAX, [LOCAL.3]

007D235C | E8 A739C3FF |CALL dumped_.00405D08

007D2361 | EB 20 |JMP SHORT dumped_.007D2383

007D2363 |> 8B45 FC |MOV EAX, [LOCAL.1] ; EAX =

NameEncrypted

007D2366 | 0FB64418 FF |MOVZX EAX, BYTE PTR DS:[EAX+EBX-1] ; EAX = Name.SubString(EBX-1,1)

007D236B | 8D143B |LEA EDX, DWORD PTR DS:[EBX+EDI] ; EDX = EBX + EDI

007D236E | 03C2 |ADD EAX, EDX ; EAX = EAX + EDX

007D2370 | 8D55 E0 |LEA EDX, [LOCAL.8]

007D2373 | E8 D89AC3FF |CALL dumped_.0040BE50 ; Convert 2 HexString

007D2378 | 8B55 E0 |MOV EDX, [LOCAL.8]

Trang 5

007D237B | 8D45 F4 |LEA EAX, [LOCAL.3]

007D237E | E8 8539C3FF |CALL dumped_.00405D08

007D2383 |> 47 |INC EDI

007D2384 | 43 |INC EBX

007D2385 | 4E |DEC ESI

007D2386 |.^ 75 A7 \JNZ SHORT dumped_.007D232F ; Encrytp Name

Ở Loop mã hóa này sử dụng Function EncryptName với các Parameters

Code:

Shared Function EncryptName(ByVal in_strName As String, _

ByVal in_intStartEDI As Integer, Optional ByVal in_intStartEDX As Integer

= 0) As String

Dim out_strEncryptedName As String

Dim intEAX As Integer

Dim intEBX As Integer

Dim intEDI As Integer = in_intStartEDI

Dim intEDX As Integer

If in_strName = "" Then

Return ""

Else

For intEBX = 1 To in_strName.Length

intEAX = Asc(in_strName.Substring(intEBX - 1, 1))

intEDX = intEBX + intEDI

If intEAX <= &H46 + in_intStartEDX Then

intEAX = intEAX + intEDX

Else

intEAX = intEAX - intEDX

End If

out_strEncryptedName = out_strEncryptedName & intEAX.ToString intEDI = intEDI + 1

Next

Return out_strEncryptedName

End If

End Function

Trang 6

in_intStartEDI: Parameter này của Function EncryptName chính là ở

Code:

007D22C1 | 8BFA MOV EDI, EDX ; EDI = EDX (StartEDI 4 Encryption) = 26h

Ở đầu Function Keygen chính

ByVal in_intStartEDX: ESI = 1Ah Nó là Parameter ESI ở Function Keygen chính

Khi này Function EncryptName sẽ được gọi như sau:

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

TỪ KHÓA LIÊN QUAN