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

Cracker Handbook 1.0 part 262 pot

5 75 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 5
Dung lượng 175,46 KB

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

Nội dung

Nếu giá trị difference lớn hơn 3 ngày, chương trình sẽ tự kết thúc... theo, byte thứ 11 trong file được kiểm tra, và đó chính là số lần các bác đã sử dụng chương trình.. Nó sẽ từ trừ 1 s

Trang 1

00401092 66356969 xor ax, 6969

:00401096 668981AB304000 mov word ptr [ecx+004030AB], ax

:0040109D 83C102 add ecx, 00000002

* Referenced by a (U)nconditional or (C)onditional Jump at Address:00401089(U)

004010A0 83F908 cmp ecx, 00000008 ; nếu 8 byte đã được cộng

004010A3 76E6 jbe 0040108B ; kết thúc loop

004010A6 EB3A jmp 004010E2

Nhìn vào đoạn code trên, chúng ta biết được quá trình hoạt động diễn ra như sau : file timetrial được mở (chỉ nếu chương trình đang tồn tại hoặc không có chương trình nào đang dùng nó), nội dung được đọc từ file Nó chỉ gồm 11 byte 10 byte đầu tiên là 1 phần của cấu trúc SYSTEMTIME (năm, tháng, thứ ngày, ngày, giờ - mỗi giá trị gồm 2 byte), và mỗi byte được cộng thêm 069h Chúng ta thấy ở trên chỉ mới có 10 byte, vậy 1 byte đã đi đâu mất ???

Chúng ta hãy tiếp tục nhìn xuống dưới :

Code:

004010A8 8B0DAB304000 mov ecx, dword ptr [004030AB] ; chuyển dword

từ buffer vào ecx

004010AE 81F169696969 xor ecx, 69696969 ; Decrypt dword sang dữ liệu năm - tháng

004010B4 A1E4304000 mov eax, dword ptr [004030E4] ; chuyển

SYSTEMTIME vào eax

004010B9 3BC1 cmp eax, ecx ; so sánh eax, ecx

004010BB 0F8585000000 jne 00401146 ; nếu không bằng -> nhảy đến bad-guy

004010C1 668B0DB1304000 mov cx, word ptr [004030B1] ; chuyển ngày từ buffer vào cx

004010C8 6681F16969 xor cx, 6969 ; Decrypt day

004010CD 66A1EA304000 mov ax, word ptr [004030EA] ; chuyển ngày hiện tại vào ax

004010D3 662BC1 sub ax, cx ; lấy ngày hiện tại trừ ngày bắt đầu dùng chương trình

004010D6 6683F803 cmp ax, 0003 ; so sánh kết quả với 3 ngày

004010DA 776A ja 00401146 ; nếu lớn hơn -> nhảy đến bad-guy 004010DC 280500304000 sub byte ptr [00403000], al ; lấy difference trừ giá trị ngày được lưu lại lớn nhất

* Referenced by a (U)nconditional or (C)onditional Jump at Address:004010A6(U)

Trang 2

004010E2 A0B5304000 mov al, byte ptr [004030B5] ; nhận byte thứ 11 từ buffer

004010E7 3469 xor al, 69 ; decrypt byte thứ 11 này

004010E9 3C00 cmp al, 00 ; so sánh với 0

004010EB 7459 je 00401146 ; nếu bằng -> nhảy đến bad-guy

004010ED FEC8 dec al ; giảm 1

004010EF A201304000 mov byte ptr [00403001], al ; lưu giá trị

004010F4 3469 xor al, 69 ; crypt lại lần nữa

004010F6 A2B5304000 mov byte ptr [004030B5], al ; lưu nó trong

FileBuffer

004010FB 6A00 push 00000000

004010FD 6A00 push 00000000

004010FF 6A00 push 00000000

00401101 FF3514314000 push dword ptr [00403114]

* Reference To: KERNEL32.SetFilePointer, Ord:024Bh

00401107 E818010000 Call 00401224 ; đặt FilePointer bắt đầu file

0040110C 6A00 push 00000000

0040110E 68E0304000 push 004030E0

00401113 6A0B push 0000000B

00401115 68AB304000 push 004030AB

0040111A FF3514314000 push dword ptr [00403114]

* Reference To: KERNEL32.WriteFile, Ord:02B9h

00401120 E805010000 Call 0040122A ; viết buffer vào file

00401125 833DE03040000B cmp dword ptr [004030E0], 0Bh

0040112C 752D jne 0040115B

0040112E 6A00 push 00000000

00401130 6874114000 push 00401174

00401135 6A00 push 00000000

* Possible Reference to Dialog: DialogID_0001

00401137 6A01 push 00000001

00401139 FF35F4304000 push dword ptr [004030F4]

* Reference To: USER32.DialogBoxParamA, Ord:0092h

0040113F E8B0000000 Call 004011F4 ; hiện Dialog

Okey, nếu đã có 1 vài thứ trong file, nó sẽ decrypt ra, và so sánh với ngày hiện hành Nếu giá trị difference lớn hơn 3 (ngày), chương trình sẽ tự kết thúc Tiếp

Trang 3

theo, byte thứ 11 trong file được kiểm tra, và đó chính là số lần các bác đã sử dụng chương trình Nó sẽ từ trừ 1 sau mỗi lần chương trình được sử dụng, cộng lại và viết vào trong file

Bây giờ, công việc cuối cùng của chúng ta là thay đổi 3 lệnh JMP : 2 cái dành cho ngày và 1 cái dành cho số lần sử dụng

Patching:

Mở HACKER VIEW, load file timetrial lên, nhấn F4 -> chọn Decode, sau đó NOP các lệnh JMP bằng cách :

Code:

004010BB 0F8585000000 jne 00401146

Đổi 0F8585000000 -> 909090909090

Cách làm : nhấn F5 -> gõ 004010BB -> nhấn F3 -> nhấn 90 6 lần -> nhấn F9

Code:

004010DA 776A ja 00401146

Đổi 776A -> 9090

Cách làm : nhấn F5 -> gõ 004010DA -> nhấn F3 -> nhấn 90 2 lần -> nhấn F9 Code:

004010EB 7459 je 00401146

Đổi 7459 -> 9090

Cách làm : nhấn F5 -> gõ 004010EB -> nhấn F3 -> nhấn 90 2 lần -> nhấn F9

Nhấn F10 để lưu lại những thay đỗi và thoát khỏi chương trình

Chạy lại timetrial, số ngày và số làn sử dụng vẫn thay đỗi Sai ư? không đâu Bây giờ cho dù các bác có mở nó đến 1000 lần hay để đến năm 2005 thì nó vân chạy ngon ơ ;)

Nếu các bác muốn số trong khung days left và sessions left "bền vững theo thời gian" thì các bác chỉ việc patch thêm 2 chỗ sau :

Code:

004010DC 280500304000 sub byte ptr [00403000], al -> mov byte ptr [00403000], 03h

004010EF A201304000 mov byte ptr [00403001], al -> mov byte ptr [00403001], 09h

Chú ý : số 03 và 09 ở trên có thể thay đổi tùy ý

=========THE END=========

Hi vọng qua tut này có thể giúp các bác nhiều trong việc crack time trial ;)

Nếu bác nào có gì không hiểu, hãy hỏi các bác Admin ( đừng hỏi em, em chả biết

gì đâu - Newbie mà )

Chúc các bác may mắn

Trang 4

the_lighthouse(REA)

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

TỪ KHÓA LIÊN QUAN