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

Cracker Handbook 1.0 part 262 pot

5 75 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

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) 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 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. the_lighthouse(REA) . vào file 00 4 01 1 25 833DE0 304 000 0B cmp dword ptr [00 403 0E0], 0Bh 00 4 01 1 2C 752D jne 00 4 01 1 5B 00 4 01 1 2E 6A 00 push 00 000 000 00 4 01 1 30 687 411 400 0 push 00 4 01 1 74 00 4 01 1 35 6A 00 push 00 000 000 * Possible. A2B5 304 000 mov byte ptr [00 403 0B5], al ; lưu nó trong FileBuffer 00 4 01 0 FB 6A 00 push 00 000 000 00 4 01 0 FD 6A 00 push 00 000 000 00 4 01 0 FF 6A 00 push 00 000 000 00 4 01 1 01 FF3 514 314 00 0 push dword ptr [00 40 311 4]. 00 4 01 1 13 6A0B push 00 000 00B 00 4 01 1 15 68AB 304 000 push 00 403 0AB 00 4 01 1 1A FF3 514 314 00 0 push dword ptr [00 40 311 4] * Reference To: KERNEL32.WriteFile, Ord :02 B9h 00 4 01 1 20 E 805 01 0 00 0 Call 00 4 01 2 2A

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

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN