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

Cracker Handbook 1.0 part 108 potx

9 229 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 9
Dung lượng 92,48 KB

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

Nội dung

Time Sync Pro v1.3 Copyright by : All copyrights to Time Sync Pro Cracked File : timesync.exe unpacked file dumped_.exe Microsoft Visual C++ 6.0 Type : Name / Serials Packed : UPX 0.71

Trang 1

Posted by: moonbaby Jan 28 2004, 08:05 AM

QUOTE

Homepage : http:// www.SoftCab.com ( load from

www.softpile.com )

Production : SoftCab, Inc (Time Sync Pro v1.3)

Copyright by : All copyrights to Time Sync Pro

Cracked File : timesync.exe ( unpacked file dumped_.exe Microsoft Visual C++ 6.0 )

Type : Name / Serials

Packed : UPX 0.71 - 0.72 -> Markus & Laszlo

Crack Tool : OllyDbg 1.09d, ImportREC

Unpack Type : Unpack Manual

Carried Out : Correct Serial

Note : None

About Time Sync Pro v1.3

Little program that controls your computer clock

Dùng PEiD ta biết được chương trình được nén bằng UPX 0.71 - 0.72 -> Markus & Laszlo

I - UNPACK :

Load chương trình lên bằng Olly Chọn No ( không Analysis ) Ta sẽ đến đây :

Trang 2

QUOTE

00415000 > $ 60 PUSHAD

00415001 E8 00000000 CALL timesync.00415006

Kéo màn hình xuống phía dưới cho đến khi gặp dòng lệnh :

QUOTE

00415197 > \61 POPAD

00415198 - E9 A61EFFFF JMP timesync.00407043 < === Đặt

BreakPoint tại đây

0041519D 55 DB 55 ; CHAR 'U'

0041519E 50 DB 50 ; CHAR 'P'

Sau khi đặt BreakPoint ta nhấn F9, chương trình sẽ dừng tại đây Nhấn F7

ta đến :

QUOTE

00407043 55 PUSH EBP < === Dừng tại đây

00407044 8BEC MOV EBP,ESP

Trang 3

Ngay tại đây ta chọn Plugins === > OllyDump === > Dump debugged process Ghi giá trị tại ô

> Modify ( ở đây là 7043 ) Nhấn OK và lưu lại chương trình ở bất cứ tên gì mà bạn thích Với đuôi là exe

Giữ nguyên chương trình , dùng chương trình ImportREC v1.6 load

timesync.exe, thay giá trị OEP mà ta vừa tìm được ở trên vào (7043 ) Nhấn IAT Auto Search, sau khi hoàn tất nhấn tiếp Get Imports, cuối cùng nhất Fix Dump Chọn lấy file mà ta đã lưu ở trên

Thế là chương trình đã được UNPACK thành công

Để làm sạch chương trình và giảm thiểu kích thước file sau khi được unpack ta dùng LordPE delux v1.4, chọn Rebuild PE, chọn lấy file đã được unpack

Kiểm tra file cuối cùng bằng PEiD, ta biết chương trình được viết bằng Microsoft Visual C++ 6.0

II - SERIAL :

Chương trình này không có AntiDebug

Chương trình này sau khi tôi UNPACK xong thì chạy bình thường, nhưng khi load lên bằng Olly thì xuất hiện thông báo : Entry Point Alert Vi thế nên khi dùng Search String không thể tìm thấy gì, đòng thời dùng

Win32dsmv10 cũng không thể load lên được Chính vì thế phải dùng chuột kéo màn hình để tìm

>>>>>>>> Sau khi kéo chuột lên trên một đoạn ta tìm thấy dòng :

QUOTE

0040476D 68 78F24000 PUSH dumped_.0040F278 ;

Trang 4

ASCII "Thank you for your support!"

>>>> Ta chọn đọan code sau để tiến hành phân tích:

QUOTE

0040475D E8 DE010000 CALL dumped_.00404940 < === Đặt BreakPoint tại đây

00404762 85C0 TEST EAX,EAX < === Kiểm tra giá trị trả

về

00404764 74 0E JE SHORT dumped_.00404774 < == Nếu EAX = 0 thì nhảy đến báo sai

00404766 6A 40 PUSH 40 < === Còn không thì chuyển đến thông báo đúng

00404768 68 94F24000 PUSH dumped_.0040F294 ; ASCII "Thanks"

0040476D 68 78F24000 PUSH dumped_.0040F278 ; ASCII "Thank you for your support!"

00404772 EB 1A JMP SHORT dumped_.0040478E

00404774 6A 10 PUSH 10

00404776 68 60F14000 PUSH dumped_.0040F160 ; ASCII "Error"

0040477B C605 C80D4100 0>MOV BYTE PTR DS:[410DC8],0

00404782 C605 480E4100 0>MOV BYTE PTR DS:[410E48],0

00404789 68 40F24000 PUSH dumped_.0040F240 ; ASCII "You have entered wrong key or name! Please try again" 0040478E 8BCE MOV ECX,ESI

00404790 E8 ABD5FFFF CALL dumped_.00401D40

Trang 5

Quan sát đoạn code trên ta nhận thấy lệnh CALL ở địa chỉ 0040475D là cốt lõi của quá trình mã hoá Trace vào trong lệnh này ta đến :

QUOTE

00404940 68 C80D4100 PUSH

dumped_.00410DC8 ; ASCII "123456789"

00404945 68 480E4100 PUSH dumped_.00410E48 ; ASCII "Moonbaby"

0040494A E8 E1FEFFFF CALL dumped_.00404830 < ===

Trace thẳng vào trong

0040494F 83C4 08 ADD ESP,8

00404952 33C9 XOR ECX,ECX

00404954 85C0 TEST EAX,EAX < === Kiểm tra giá trị trả

về

00404956 0F9FC1 SETG CL < ==== Đúng hay Sai

00404959 8BC1 MOV EAX,ECX

0040495B C3 RETN < == Trở về chương trình chính

Cũng thế, ở đoạn code này thì lệnh CALL ở 0040494A là cốt lõi Sau khi trace vào trong ta đến :

QUOTE

00404830 53 PUSH EBX < === Ta đến đây

Trace xuống tiếp một đoạn ta đến :

Trang 6

QUOTE

0040483E FFD6 CALL ESI < === Chiều dài chuỗi S nhập

00404840 83F8 03 CMP EAX,3 < === Phải lớn hơn 3 ký tự

00404843 /0F8C EA000000 JL dumped_.00404933 < ==== Nếu không nhảy đến báo sai

0040484E FFD6 CALL ESI < === Chiều dài chuỗi U nhập

00404850 83F8 03 CMP EAX,3 < === Phải lớn hơn 3 ký tự

00404853 0F8C DA000000 JL dumped_.00404933 < ==== Nếu không nhảy đến báo sai

Trace tiếp ta đến :

QUOTE

004048AD 8A03 MOV AL,BYTE PTR DS:[EBX] < == Đưa từng ký tự U nhập vào AL

004048AF 33C9 XOR ECX,ECX < === ECX = 00

004048B1 84C0 TEST AL,AL < == Kiểm tra đến hết chuỗi chưa hay có khoảng trắng không

004048B3 8BD3 MOV EDX,EBX < === EDX chứa chuỗi

U nhập

004048B5 74 33 JE SHORT dumped_.004048EA < ===

Trang 7

Thoát vòng lặp nếu AL = 0

004048B7 3C 20 CMP AL,20 < === So sánh với 20h

004048B9 74 27 JE SHORT dumped_.004048E2 < == Nhảy nếu bằng

004048BB 3C 0D CMP AL,0D < ==== So sánh với 0Dh 004048BD 74 23 JE SHORT dumped_.004048E2 < == Nhảy nếu bằng

004048BF 3C 0A CMP AL,0A < ==== So sánh với 0Ah 004048C1 74 1F JE SHORT dumped_.004048E2 < == Nhảy nếu bằng

004048C3 3C 09 CMP AL,9 < ====== So sánh với 09h 004048C5 74 1B JE SHORT dumped_.004048E2 < == Nhảy nếu bằng

004048C7 3C 61 CMP AL,61 < ====== So sánh với 61h 004048C9 7C 0C JL SHORT dumped_.004048D7 < == Nhảy nếu nhỏ hơn

004048CB 3C 7A CMP AL,7A < ====== So sánh với 7Ah 004048CD 7F 08 JG SHORT dumped_.004048D7 < == Nhảy nếu lớn hơn

004048CF 0FBEC0 MOVSX EAX,AL < === EAX chứa ký

tự của U được lưu ở AL

004048D2 83E8 20 SUB EAX,20 < === EAX = EAX – 20h 004048D5 EB 03 JMP SHORT dumped_.004048DA <

==Nhảy đến địa chỉ

004048D7 0FBEC0 MOVSX EAX,AL < == EAX chứa ký tự của U được lưu ở AL

ESI = EAX + EAX * 4

004048DA 8D3480 LEA ESI,DWORD PTR

DS:[EAX+EAX*4]

ECX = ECX + ESI * 2

004048DD 8D0C71 LEA ECX,DWORD PTR

DS:[ECX+ESI*2]

004048E0 03C8 ADD ECX,EAX < == ECX = ECX + EAX

Trang 8

004048E2 8A42 01 MOV AL,BYTE PTR DS:[EDX+1] < == Đưa ký tự kế vào AL

004048E5 42 INC EDX < == EDX ++

004048E6 84C0 TEST AL,AL < == Kiểm tra đến hết chuỗi chưa hay có khoảng trắng không

004048E8 ^ 75 CD JNZ SHORT dumped_.004048B7 < == Chưa thì tiếp tục vòng lặp

Vậy sau khi thoát khỏi vòng lặp thì giá trị sẽ được lưu tại ECX

Trace tiếp ta đến :

QUOTE

00404928 3BC6 CMP EAX,ESI < === So sánh S nhập và S thực ESI : S thực; EAX : S nhập

0040492A 0F94C2 SETE DL < === Đúng hay Sai ( EDX sẽ

là giá trị 0 hay 1 )

0040492D 5F POP EDI

0040492E 5E POP ESI

0040492F 8BC2 MOV EAX,EDX < === Giá trị đúng ( 0 hay 1 ) đuợc lưu ở EAX

00404931 5B POP EBX

00404932 C3 RETN < == Trở về chương trình trước đó

Sau khi đăng ký thành công Giá trị của U và S được lưu ở file

timesync.ini của chương trình

Trang 9

>>>>>>>> Vậy :

QUOTE

User : Moonbaby Serial : 6589

User : HVA-CrAcKeRtEaM Serial : 11770

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

TỪ KHÓA LIÊN QUAN