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

Cracker Handbook 1.0 part 100 doc

7 178 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 7
Dung lượng 83,23 KB

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

Nội dung

Posted by: moonbaby Dec 18 2003, 03:09 PM Homepage : http://www.southbaypc.com/download/ACSetup.exe Production : FirasE AutoConnect 1.01 Copyright by : Copyright © 1998-2003 All Rights

Trang 1

Posted by: moonbaby Dec 18 2003, 03:09 PM

Homepage : http://www.southbaypc.com/download/ACSetup.exe

Production : FirasE ( AutoConnect 1.01 )

Copyright by : Copyright © 1998-2003 All Rights Reserved

Cracked File : AutoConnect.exe ( Microsoft Visual C++ 6.0 )

Type : Name/Serials

Packed : N / A

Crack Tool : OllyDbg 1.09d, W32dsmv10, Hex Workshop 4.1

Unpack Tool : N / A

Carried Out : Get Correct Serials

Note : None

About AutoConnect 1.01

AutoConnect will automatically hit the Reconnect button for you when your ISP disconnects you from your Dial Up Connection

-

Dùng PeiD ta biết chương trình này không bị pack và được viết bằng

Microsoft Visual C++ 6.0

Dùng W32dsm89 để tìm đoạn thông báo cho dễ "Sorry, you have entered an incorrect "

Sau đó dùng Olly chuyển đến địa chỉ đó, ta thấy thông báo nhập sai Serial 00401CE1 | 68 98624000 PUSH AUTOCONN.00406298 ; |Text = "Sorry, you have entered an incorrect registration code."

Trace lên một chút, ta thấy có hai điểm để đặt BreakPoint

>>>> Set BreakPoint

00401C5F | FF15 F4504000 CALL DWORD PTR

DS:[<&USER32.GetDlgItemTe>; \GetDlgItemTextA

00401C7A | FF15 F4504000 CALL DWORD PTR

Trang 2

DS:[<&USER32.GetDlgItemTe>; \GetDlgItemTextA

>>>> Ở đây ta tiến hành hai quá trình, Patch và tìm số Serial đúng

>>>>>>>> Quá trình thứ nhất : PATCH

>>>> Từ điểm set BreakPoint thứ hai, trace xuống chút xíu, ta thấy đoạn mã sau :

00401C8E | E8 CC030000 CALL AUTOCONN.0040205F ;

\AUTOCONN.0040205F

00401C93 | 83C4 08 ADD ESP,8 < ====

00401C96 | 85C0 TEST EAX,EAX

00401C98 | 74 40 JE SHORT AUTOCONN.00401CDA < == Patch here = > change JE to JNZ

>> Sau khi chuyển thành JNZ ta thấy mã đổi thừ 74 40 thành 75 40 Dùng Hex Workshop 4.1 chỉnh sửa lại mã lệnh này

======== > Hoàn thành quá trình PATCH

>>>>>>>> Quá trình thứ hai : SERIAL

>>>> Từ điểm BreakPoint thứ hai trace xuống chút ta thấy mã lệnh sau Trace thẳng vào đoạn này để chuẩn bị đến đoạn mã hoá chương trình

00401C8E | E8 CC030000 CALL AUTOCONN.0040205F ;

\AUTOCONN.0040205F

>>>> Trace thêm một đoạn ngắn ta thấy đọan này Trace thẳng vào đây để đi đến đoạn mã xử lý chuỗi U nhập

0040207A | E8 B5000000 CALL AUTOCONN.00402134

>> Nếu trace qua đoạn này thì sẽ thấy ngay Serial thực

>> Sau khi trace vào lệnh CALL trên, ta đến

00402134 /$ 55 PUSH EBP

Trang 3

>>>> Giai đọan mã hoá chuỗi U nhập vào lần đầu tiên :

>> Đầu tiên, nhảy đến địa chỉ 00402190, đến vòng lặp thứ hai, sẽ bắt đầu từ

00402181

0040217F | EB 0F JMP SHORT AUTOCONN.00402190

00402181 |> 8B95 FCFEFFFF /MOV EDX,DWORD PTR SS:[EBP-104]

00402187 | 83C2 01 |ADD EDX,1 < ==== Sau mỗi vòng lặp tăng EAX lên 1

== > biến đếm

0040218A | 8995 FCFEFFFF |MOV DWORD PTR SS:[EBP-104],EDX

00402190 |> 8B85 FCFEFFFF MOV EAX,DWORD PTR SS:[EBP-104]

00402196 | 3B85 F4FEFFFF |CMP EAX,DWORD PTR SS:[EBP-10C] 0040219C | 73 22 |JNB SHORT AUTOCONN.004021C0

0040219E | 8B4D 08 |MOV ECX,DWORD PTR SS:[EBP+8]

004021A1 | 038D FCFEFFFF |ADD ECX,DWORD PTR SS:[EBP-104] 004021A7 | 0FBE11 |MOVSX EDX,BYTE PTR DS:[ECX]

>> Tại địa chỉ 40603C ta tìm được giá trị 1Fh ==== đây là số mặc định 004021AA | 0315 3C604000 |ADD EDX,DWORD PTR DS:[40603C] <

==== 1Fh

004021B0 | 8B85 F8FEFFFF |MOV EAX,DWORD PTR SS:[EBP-108] 004021B6 | 03C2 |ADD EAX,EDX

004021B8 | 8985 F8FEFFFF |MOV DWORD PTR SS:[EBP-108],EAX 004021BE |.^ EB C1 \JMP SHORT AUTOCONN.00402181

>> >> Quá trình này được hiểu là :

a- Lấy ký tự đầu tiên + 1Fh === > giá trị được lưu ở [EBP-108]

b- Lấy kết quả trước đó + ( ký tự kế + 1Fh ) === > giá trị được lưu ở [EBP-108]

c- Kết quả cuỗi cùng được lưu ở [EBP-108]

>> Chuỗi thứ nhất có định dạng là XXXX-

004021C6 | 51 PUSH ECX ; /<%u>

004021C7 | 68 2C634000 PUSH AUTOCONN.0040632C ; |Format = "%u-"

>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thứ hai :

004021ED | EB 0F JMP SHORT AUTOCONN.004021FE

Trang 4

004021EF |> 8B85 FCFEFFFF /MOV EAX,DWORD PTR SS:[EBP-104] 004021F5 | 83C0 01 |ADD EAX,1

004021F8 | 8985 FCFEFFFF |MOV DWORD PTR SS:[EBP-104],EAX 004021FE |> 8B8D FCFEFFFF MOV ECX,DWORD PTR SS:[EBP-104]

00402204 | 3B8D F4FEFFFF |CMP ECX,DWORD PTR SS:[EBP-10C] 0040220A | 73 23 |JNB SHORT AUTOCONN.0040222F

0040220C | 8B55 08 |MOV EDX,DWORD PTR SS:[EBP+8]

0040220F | 0395 FCFEFFFF |ADD EDX,DWORD PTR SS:[EBP-104]

00402215 | 0FBE02 |MOVSX EAX,BYTE PTR DS:[EDX]

00402218 | 0FAF05 406040>|IMUL EAX,DWORD PTR DS:[406040] <

==== 0Ch

0040221F | 8B8D F8FEFFFF |MOV ECX,DWORD PTR SS:[EBP-108]

00402225 | 03C8 |ADD ECX,EAX

00402227 | 898D F8FEFFFF |MOV DWORD PTR SS:[EBP-108],ECX 0040222D |.^ EB C0 \JMP SHORT AUTOCONN.004021EF

>> >> Quá trình này được diễn tả lại như sau :

d- Lấy ký tự đầu tiên x Ch === > giá trị được lưu ở [EBP-108] < == Khác đoạn đầu

e- Lấy kết quả trước đó + ( ký tự kế x Ch ) === > giá trị được lưu ở [EBP-108]

f- Kết quả cuỗi cùng được lưu ở [EBP-108]

>> Chuỗi thứ hai cũng có định dạng XXXX-

00402235 | 52 PUSH EDX ; /<%u>

00402236 | 68 30634000 PUSH AUTOCONN.00406330 ; |Format = "%u-"

>> Kết hợp hai chuỗi lại với nhau, chúng có định dạng là XXXX-XXXX-

00402251 | 51 PUSH ECX ; /StringToAdd

00402252 | 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; |

00402255 | 52 PUSH EDX ; |ConcatString

00402256 | FF15 28504000 CALL DWORD PTR

DS:[<&KERNEL32.lstrcatA>] ; \lstrcatA

>>>> Giai đoạn mã hoá chuỗi U nhập vào lần thứ ba :

Trang 5

00402270 | EB 0F JMP SHORT AUTOCONN.00402281

00402272 |> 8B85 FCFEFFFF /MOV EAX,DWORD PTR SS:[EBP-104]

00402278 | 83C0 01 |ADD EAX,1

0040227B | 8985 FCFEFFFF |MOV DWORD PTR SS:[EBP-104],EAX

00402281 |> 8B8D FCFEFFFF MOV ECX,DWORD PTR SS:[EBP-104]

00402287 | 3B8D F4FEFFFF |CMP ECX,DWORD PTR SS:[EBP-10C] 0040228D | 73 22 |JNB SHORT AUTOCONN.004022B1

0040228F | 8B55 08 |MOV EDX,DWORD PTR SS:[EBP+8]

00402292 | 0395 FCFEFFFF |ADD EDX,DWORD PTR SS:[EBP-104]

00402298 | 0FBE02 |MOVSX EAX,BYTE PTR DS:[EDX]

0040229B | 0305 44604000 |ADD EAX,DWORD PTR DS:[406044] < === 0Dh

004022A1 | 8B8D F8FEFFFF |MOV ECX,DWORD PTR SS:[EBP-108] 004022A7 | 03C8 |ADD ECX,EAX

004022A9 | 898D F8FEFFFF |MOV DWORD PTR SS:[EBP-108],ECX 004022AF |.^ EB C1 \JMP SHORT AUTOCONN.00402272

>> >> Quá trình này được hiểu là :

g- Lấy ký tự đầu tiên + 0Dh === > giá trị được lưu ở [EBP-108] < == Khác hai đoạn trước

h- Lấy kết quả trước đó + ( ký tự kế + 0Dh ) === > giá trị được lưu ở [EBP-108]

i- Kết quả cuỗi cùng được lưu ở [EBP-108]

>> Chuỗi thứ ba có định dạng là XXXX-

004022B7 | 52 PUSH EDX ; /<%u>

004022B8 | 68 34634000 PUSH AUTOCONN.00406334 ; |Format = "%u-"

>> Kết hợp ba chuỗi có định dạng : XXXX-XXXX-XXXX-

004022D3 | 51 PUSH ECX ; /StringToAdd

004022D4 | 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; |

004022D7 | 52 PUSH EDX ; |ConcatString

004022D8 | FF15 28504000 CALL DWORD PTR

DS:[<&KERNEL32.lstrcatA>] ; \lstrcatA

Trang 6

>>>> Giai đoạn mã hoá chuối U nhập vào lần thứ tư :

004022F2 | EB 0F JMP SHORT AUTOCONN.00402303

004022F4 |> 8B85 FCFEFFFF /MOV EAX,DWORD PTR SS:[EBP-104] 004022FA | 83C0 01 |ADD EAX,1

004022FD | 8985 FCFEFFFF |MOV DWORD PTR SS:[EBP-104],EAX

00402303 |> 8B8D FCFEFFFF MOV ECX,DWORD PTR SS:[EBP-104]

00402309 | 3B8D F4FEFFFF |CMP ECX,DWORD PTR SS:[EBP-10C] 0040230F | 73 23 |JNB SHORT AUTOCONN.00402334

00402311 | 8B55 08 |MOV EDX,DWORD PTR SS:[EBP+8]

00402314 | 0395 FCFEFFFF |ADD EDX,DWORD PTR SS:[EBP-104] 0040231A | 0FBE02 |MOVSX EAX,BYTE PTR DS:[EDX]

0040231D | 0FAF05 486040>|IMUL EAX,DWORD PTR DS:[406048] <

=== 20h

00402324 | 8B8D F8FEFFFF |MOV ECX,DWORD PTR SS:[EBP-108] 0040232A | 03C8 |ADD ECX,EAX

0040232C | 898D F8FEFFFF |MOV DWORD PTR SS:[EBP-108],ECX

00402332 |.^ EB C0 \JMP SHORT AUTOCONN.004022F4

>> >> Quá trình này được diễn tả lại như sau :

j- Lấy ký tự đầu tiên x 20h === > giá trị được lưu ở [EBP-108] < == Khác ba đoạn trước

k- Lấy kết quả trước đó + ( ký tự kế x Ch ) === > giá trị được lưu ở [EBP-108]

l- Kết quả cuỗi cùng được lưu ở [EBP-108]

>> Chuỗi thứ tư có định dạng là XXXX

0040233A | 52 PUSH EDX ; /<%u>

0040233B | 68 38634000 PUSH AUTOCONN.00406338 ; |Format = "%u"

>> Kết hợp bốn chuỗi có định dạng là XXXX-XXXX-XXXX-XXXX

00402356 | 51 PUSH ECX ; /StringToAdd

00402357 | 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; |

0040235A | 52 PUSH EDX ; |ConcatString

0040235B | FF15 28504000 CALL DWORD PTR

DS:[<&KERNEL32.lstrcatA>] ; \lstrcatA

Trang 7

>>>>>>>> Vậy là ta đã hoàn toàn hiểu được cách tạo Serial của chương trình này

User : Moonbaby Serial : 1071-9876-927-26336

User : HVA-CrAkErTeAm Serial : 1597-13956-1345-37216

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN