Mã:
http://hcegroup.net/hceteam/showthread.php?t=416
Mục tiêu: Autorun Remover v2.3
Mức độ: Dễ (1/10)
Người hướng dẫn: hongtho
Dưới đây là đoạn mã tạo serrial của phần mềm:

Còn nếu các bạn hỏi làm sao để đến được đó thì vui lòng đọc bài tại link trên ^_^
Mình sẽ cố gắng hướng dẫn đơn giản nhất để các bạn có thể hiểu
Đoạn mã
Mã:
004D0F26 |. E8 2542F3FF CALL AutorunR.00405150
004D0F2B |. 33C0 XOR EAX,EAX
004D0F2D |. 55 PUSH EBP
004D0F2E |. 68 D90F4D00 PUSH AutorunR.004D0FD9
004D0F33 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D0F36 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D0F39 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004D0F3C |. E8 5F3DF3FF CALL AutorunR.00404CA0
004D0F41 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D0F44 |. E8 1740F3FF CALL AutorunR.00404F60
004D0F4F |. BB 01000000 MOV EBX,1 -> Set giá trị thanh ghi EBX là 1
004D0F54 |> /8D43 1E /LEA EAX,DWORD PTR DS:[EBX+1E] -> Set giá trị thanh ghi EAX là 1F (vì 1E + EBX)
004D0F57 |. 50 |PUSH EAX -> Lưu giữ giá trị thanh ghi EAX lên ngăn xếp
004D0F58 |. 8BC3 |MOV EAX,EBX -> chuyển giá trị EAX thành 1 (vì EBX = 1)
004D0F5A |. 5A |POP EDX -> Lấy giá trị lưu cuối cùng trên ngăn xếp xuống EDX -> EDX = 1F
004D0F5B |. 8BCA |MOV ECX,EDX -> Chuyển giá trị EDX sang ECX -> ECX = 1F
004D0F5D |. 99 |CDQ -> Sao chép 4 bit cao nhất của EAX sang EDX
Vậy lúc này giá trị các thanh ghi như sau

4 bit cao nhất của EAX là 0000 -> copy sang toàn bộ EDX sẽ là 00000000
004D0F5E |. F7F9 |IDIV ECX -> Lấy EAX chia ECX, phần nguyên lưu trên EAX, phần dư lưu trên EDX
Lúc này giá trị các thanh ghi như sau:

IDIV ECX = 1 / 1F -> EAX = 0 và EDX = 1
004D0F60 |. 8BF2 |MOV ESI,EDX -> Chuyển giá trị EDX lên ESI -> ESI = 1
004D0F62 |. 8D43 14 |LEA EAX,DWORD PTR DS:[EBX+14] -> Chuyển 15 lên EAX
004D0F65 |. 50 |PUSH EAX -> Lưu EAX
004D0F66 |. 8BC3 |MOV EAX,EBX -> Sao chép nội dung EBX sang EAX -> EAX = 1
004D0F68 |. 5A |POP EDX -> Lấy nội dung lưu lên EDX -> EDX = 15
004D0F69 |. 8BCA |MOV ECX,EDX -> Sao chép EDX sang ECX -> ECX = 15
004D0F6B |. 99 |CDQ -> Như trên
004D0F6C |. F7F9 |IDIV ECX -> Như trên
Vậy lúc này EAX = 0 và EDX = 1
004D0F6E |. 03F2 |ADD ESI,EDX -> Cộng EDX vào ESI -> ESI = 2
004D0F70 |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] -> Sao chép địa chỉ bộ nhớ [EBP-4] vào EAX (Và đây là địa chỉ chứa chuỗi Username)
004D0F73 |. 0FB64418 FF |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]
Lấy ký tự thứ EBX -1 vào EAX (Tức là ký tự thứ 0 trong mảng địa chỉ bộ nhớ, vì EBX lúc này là 1)
Vậy EAX lúc này là ký tự đầu tiên trong chuỗi Username
004D0F78 |. 03C6 |ADD EAX,ESI -> Cộng EAX với ESI và lưu kết quả trên EAX
Đoạn mã dưới đây:
Mã:
004D0F7A |. 83C0 D0 |ADD EAX,-30
004D0F7D |. 83E8 0A |SUB EAX,0A
004D0F80 |. 72 08 |JB SHORT AutorunR.004D0F8A
004D0F82 |. 83C0 F9 |ADD EAX,-7
004D0F85 |. 83E8 1A |SUB EAX,1A
004D0F88 |. 73 1D |JNB SHORT AutorunR.004D0FA7
Đoạn mã a1:
Mã:
004D0F8A |> \8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
004D0F8D |. 8B55 FC |MOV EDX,DWORD PTR SS:[EBP-4]
004D0F90 |. 0FB6541A FF |MOVZX EDX,BYTE PTR DS:[EDX+EBX-1]
004D0F95 |. 03D6 |ADD EDX,ESI
004D0F97 |. E8 EC3EF3FF |CALL AutorunR.00404E88
004D0F9C |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10]
004D0F9F |. 8D45 F4 |LEA EAX,DWORD PTR SS:[EBP-C]
004D0FA2 |. E8 C13FF3FF |CALL AutorunR.00404F68
Đoạn mã a2:
Mã:
004D0FA7 |> \43 |INC EBX
004D0FA8 |. 4F |DEC EDI
004D0FA9 |.^ 75 A9 \JNZ SHORT AutorunR.004D0F54
Và ta nhìn qua sơ lược trên ta thấy, giá trị ESI luôn là: 2*i, với i = 1 ...n
Thuật toán tạo Serrial:
Lấy từng ký tự, đổi sang mã Ascii rồi cộng cho 2*i và lưu vào Temp
so sánh Temp với 5Ah(90) và 41h (65) hoặc 31h (49) và 39h (57), nếu (Temp> 90 và Temp < 65) hoặc (temp < 49 và Temp > 57) thì bỏ qua, tăng i lên 1 và lam lại từ đầu. Nếu không thỏa điều kiện thì đổi Temp sang ký tự và lưu vào chuỗi Serrial.
Hết tut ...
Ai rảnh code keygen đi hi hi
Keygen:
Mã:
http://www.mediafire.com/?ndtmiyciom1

Tin cũ hơn:
- 27/01/2010 02:24 - code bom mail, fake mail
- 27/01/2010 01:20 - 2 Code DOS viết bằng AutoIT
- 26/01/2010 23:55 - Windows 7 - 10 phím tắt nên biết trong Win 7
- 26/01/2010 23:54 - Windows 7 - Kích hoạt tài khoản Administrator tron…
- 26/01/2010 23:53 - Windows 7 - Cài đặt Windows Movie Maker 2.6 for Vi…


