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

Hướng dẫn Crack phần mềm chi tiết

56 3K 4

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Tại sao cần phải crack phần mềm? Nếu không crack thì tùy mỗi loại phần mềm bạn muốn dùng sẽ có một thời hạn nhất định bên cạnh đó sẽ có những giới hạn nhất định và kèm theo đó đôi khi là những dòng quảng cáo kèm theo khi sử dụng. Vậy làm thế nào để crack phần mềm? Tùy mỗi loại phần mềm mà thuật ngữ crack được gọi với những cái tên khác nhau nhưng khi bạn sử dụng Key bản quyền thì không còn gọi là crack nữa mà là đăng ký bản quyền

CỘNG ĐỒNG KHÔNG BẢN QUYỀN TÀI LIỆU HƯỚNG DẪN CRACK, PATCH PHẦN MỀM Lưu hành nội HƯỚNG DẪN CRACK PHẦN MỀM - CHI TIẾT CỤ THỂ tham gia topic nhận tìm crack serial cho bạn có yêu cầu Mà nghĩ bạn thích xài chùa hoài đâu hay đâu, không ? Hôm lang thang mạng bắt gặp viết hay HAV online http://www.havonline.com , mod nhiệt tình thật, xin chia sẻ viết hướng dẫn crack phần mềm cho bạn Bài viết gồm nhiều phần nên post cho bạn xem, mong hữu ích Bắt đầu ! Do thi nên chưa có thời gian để nghiên cứu kĩ, có thắc mắc bạn đọc lạ thật kĩ nhé, soft nói tìm google ! Thân! Ah, link soft viết ! HT view 2.0 ( giao diện dos nhá ) : http://www.mediafire.com/?nntwum3j41w Win32deassemble 10 : http://www.mediafire.com/?mwgmfzruxwr ollydbg110 : http://www.mediafire.com/?m3jozhymhjz softice : http://www.mediafire.com/?y1ejxqyz2gn xin lưu ý bác dùng softice dễ gặp trường hợp máy bị "màn hình xanh chết chóc" nha, gặp trường hợp khởi động máy không bác mở máy chọn "Last known good confignturation that most recent setting are worked" ( chả biêt ghi có sai tả k ), khởi động lại hông HAV online http://www.hvaonline.net Tác giả: (Someone) Hacnho or Zombie??? PHẦN I: Chuẩn Bị I.Công cụ cần có a.Debug : -SoftICe 4.05 for 9x, NT -Công cụ debug mạnh nhiên chuyên làm Win bị Ice -Numega SoftICE Driver Suite 2.6 for XP ; thường dùng làm PC bị đóng băng -Smart Check 603(601 đươc): debug for VB (chạy tốt 9x) -Quaid Analyser :debug for DOS không dùng Win9X nên không dùng dubug for 9X TRW2k, bác dùng Win9X dùng b.Debug add_on: -BreakICE for SoftICe4.05: tìm breakpoint -FrogsICE: tạo ngắt ảo làm chương trình detect SoftICE không detect SI…Điển VK2000 build 10727 –không chạy đuợc Nt,Xp -SoftICe tools: công cụ hỗ trợ SI như: ICE-HIDE, ICE-SET,INT6TEST,TRACEME, UCF 2000 -Icedump: đổ nhớ từ Si tới file Virtual address to file offset: Si tìm offset ảo giúp Si tìm offset thật… c HexEditor: chỉnh sửa file hexa - HexaWorkShop3.0 : chỉnh sửa file hexa mạnh - Hacker View 602(HIEW): công cụ chỉnh sửa file hexa mạnh (45% phần mềm muốn crk nhờ nó) d DeCompliers: dùng để dịch ngược file nguồn exe, dll assembly - WinDeAssembly893: công cụ mạnh dùng dịch ngược file (nên kiếm fix để khỏI cần dùng HIEW, vi thêm menu EDIT toolsbar, ta chỉnh sửa file trực tiếp WDASM) Chú Ý; để WDASM chạy ngon lành bạn cần kiếm cho file patch cho sau: *.SDR Enable for VB: WD893SDR.exe: giúp WDASM deassembly VB *.W32Dasm V8.93 Permanent Patch Maker: This patcher will add a button to your W32Dasm CodePatcher screen which will allow you to save your patches directly into the program It will also change the W32Dasm CreateFile call so that you can then edit and save files whilst you have them open in W32Dasm *.Modifying pro loaded in WDASM: W32D-LaZ.exe: sửa lỗI cho WDASM *.W32pp: thêm menu edit, thay đổI hình cho WDASM làm WDASM xịn, fix,patch hết, bác có host up lên cho anh em tảI xài, đỡ công tìm file.rar khoang 0.9mb Riêng chương trình viết Delphi nên dùng hai chương trình sau để decompliers: EXE TO DPR,EIRE -Install Shied decomplier: decomplier cho Install Shied -BorlandC,Turbo Pascal,Vb,VC,Win32Asm,MASm611,: dùng để viết keygen e.Quan trọng không chương trình dùng để pack, unpack soft (Các bạn lưu ý, dùng thuật ngữ mà không giảI thích, bởI có phần dùng để giảI thích thuật ngữ, bạn chịu khó theo dõi-Phần3) -Procdump32: giảI nén cho nhiều dạng file – thích hợp cho file pack mà ta pack -DeShrink: dùng giảI nén cho Shrink -Upx093w: giảI nén UPX -unpetite: giảI nén petite( tui sợ nó, thank LE VU HOANG tui nó) -I5Comp : giảI nén file.cab -Install Shied decompressor: giảI nén Install Shied decompressor -UnPEprot: giảI nén cho khoá PE ….vào nhiều dạng nén khác ASP, Pklite…tuỳ theo mà bạn tìm unpacker cho thích hợp f Ngoài có chương trình dùng để sửa giao diện file nguồn như: Resource Hacker, Exe Scope,Symantec Resource Studio,Restorator v2.50 build 757…cũng hữu dụng II Cài Đặt: tất soft hướng dẫn dễ cài, tảI tiến hành cài bình thường …bạn tìm chúng trang tools HVA, hay vào www.ctools.net để tảI chúng về…Riêng SoftICE405 Numega SoftICE Driver Suite2.6 xin hướng dẫn chút xíu.tài liệu cài đặt SoftICe405 post từ anh NVH©… *.Cách cài đặt Numega SoftICE Driver Suite2.6 tiến hành cài bình thường, nhập serial :7804-17786F-73 or 7808-21675E-F4, sau cài xong bảng Driver Studio Config, bạn nên chọn Manual, nghĩa muốn xài lúc cần vào mục Numega SoftICE Driver Suite Start, chọn Start SoftICE, không muốn xài chon disable…rất đơn giản…Có điều Numega SoftICE Driver Suite2.6 không hiểu không set breakpoint Hmemcpy( dùng cho chương trình viết Vb) biết giùm *.Cài SoftIce405, he he he trước cài nên backup data máy lạI nhe, tốt ghost lạI Ok? Vì dễ làm crash máy bạn lắm…kinh nghiêm tui cài lần đàu tiên tưởng dễ xơi dè tiêu window phảI format cài lạI, toàn mail bồ tui gửI cho…cẩn thận nhe bác…Dù xài mòn mỗI lần cài tui xanh mặt, lúc khởi động máy…TrờI bồ tui có bầu tui không sợ lúc load lên đâu…sau cách cài Download Softice for Win 9x www.numega.com Tiến hành cài đặt Softice cách nhấn vào trình cài đặt Setup Khi cài đặt SoftIce yêu cầu bạn đánh số Serial tiếp tục Bạn đánh 1900-0000DD-9B OK Tiếp tục cài Softice, trước yêu cầu restart lại máy bạn làm: Mở Notepad hay trình soạn thảo đó, mở file winice.dat thư mục Numega cài vào máy bạn theo đường dẫn C:\WINDOWS\system32\drivers\WINICE.DAT Cố gắng tìm dòng ghi INIT="WR;X;" (ở gần đầu file) sửa thành INIT="WD;WR;WL;CODE ON;X;" Cố gắng tìm dòng sau : (ở gần cuối file) ; ***** Examples of export symbols that can be inluded for Windows 9x ***** ; Change the path to the appropriate drive and directory ;EXP=c:\windows\system\kernel32.dll ;EXP=c:\windows\system\user32.dll ;EXP=c:\windows\system\gdi32.dll ;EXP=c:\windows\system\comdlg32.dll ;EXP=c:\windows\system\shell32.dll ;EXP=c:\windows\system\advapi32.dll ;EXP=c:\windows\system\shell232.dll ;EXP=c:\windows\system\comctl32.dll ;EXP=c:\windows\system\crtdll.dll ;EXP=c:\windows\system\version.dll ;EXP=c:\windows\system\netlib32.dll ;EXP=c:\windows\system\msshrui.dll ;EXP=c:\windows\system\msnet32.dll ;EXP=c:\windows\system\mspwl32.dll ;EXP=c:\windows\system\mpr.dll Và xoá tất dấu chấm phẩy ( đầu dòng đoạn OK save lại restart lại máy để bắt đầu sử dụng Bai viet cua hacnho from HVA (xin vui long de dong ban trich dan lai thanx a lot) Trong phần hướng dẫn bác sử dụng SoftICe, câu lệnh, hàm…rất cặn kẽ dễ hiểu PHẦN II: Chào bạn lại gặp phần II này, qua viết phần I hẳn bạn chuẩn bị đầy đủ “súng ống đạn dược” để chiến đấu với soft rồI phải không? Ok phần II xin hướng dẫn bạn sử dụng công cụ SoftIce, công cụ debug mạnh cực kỳ, ví M-16 chiến sỹ marine chiến trường Muốn “giết chết” phần mềm bạn phảI hiểu rõ sử dụng nó, không cẩn thận bạn bị kill đấy… Chú ý: có tham khảo viết DTK,NVH©—thanx a lot for support I.SoffICE phải dùng nó? Chúng ta biết SoftIce công cụ hãng Numega viết dùng cho programmer dùng để debug chương trình…Tuy nhiên cracker giới dùng để crack phần mềm…Do nguyên gốc dùng để phục vụ cho mục đích crack…Có nhiều bạn hỏ tui SoftIce công cụ dùng để crack mà lại đòi số serial, ta không dùng để crack Trời ạ, có bạn lại dùng SoftIce để crack nó, có bạn crack không la lên “ Trời ạ, SoftIce lại detect SoftIce…”!!! he he bạn hiều lai lịch SofIce chứ, phần mềm viết riêng cho cracker đâu mà tìm sử dụng vào mục đích đen tối Không thân cracker người nghèo, nghèo tiền, nghèo tình, có giàu lòng đam mê, luôn tìm tòi khám phá…Thử hỏi cracker giới IT đâu phát triển…(vì có phá để rồI có sửa …rồi bị phá tiếp ke ke) Các nhà lập trình chắn căm thù cracker, họ không nghĩ đến người nghèo tiền giàu lòng đam mê Đơn cử hãng SoftTex họ viết EV Tran Tech 2.0 lại bán với giá cắt cổ, 4000000VND, trời tui tháng má tui gửi cho triệu , trừ khoản chi phí tui lại vỏn vẹn có 50000, muốn xài Ev Tran tui phải để dành dài cổ luôn…Do cách crack M-16 thôi…Oh bác thử tưởng tượng tui dùng có vỏn vẹn có lệnh (? Edx )và set hai break point(bpx getwindowtexta, bpx 4xxxBC) : offset xxx bác tìm nhé:: tui số returncode Không phải tui ham crack mà họ ép tui II.Những kiến thức sử dụng SoftICE Bật cửa sổ SoftICE Bạn bật (hiển thị) cửa sổ SoftICE lúc sau cài SoftICE cách nhấn Ctrl-D, mặc định vậy, bạn thay đổi lệnh: ALTKEY [Alt letter | Ctrl letter] Thí dụ bạn muốn dùng Alt-E để bật/tắt SoftICE thay cho Ctrl-D, Command Window (khung SoftICE) nhập: ALTKEY Alt E Giao diện SoftICE Cửa sổ SoftICE chia làm nhiều khung, bạn cấu file Winice.dat tui thấy khung quan trọng nhất: • Khung Register Window, hiển thị giá trị hành ghi, sau câu lệnh thi hành, ghi hay cờ bị thay đổi câu lệnh màu hiển thị thay đổi, có màu xanh (bình thường trắng) Bạn bật/tắt khung lệnh WR Trong Command Window (khung cùng) nhập: WR (enter) lần thứ tắt (hay bật) Register Window, gọi lần thứ để bật (hay tắt) Để thay đổi giá trị ghi bạn dùng chuột kích vào giá trị ghi cần thay đổi Register Window sau nhập giá trị cần thay đổi Command Window bạn dùng lệnh: R Tên_thanh_ghi Giá_trị_cần_thay_đổi Thí dụ để thay đổi giá trị ghi EAX đến 400000h, nhập: R EAX 400000 Để bật tắt cờ dùng cú pháp sau: R FL Tên_cờ Thí dụ cờ nhớ tắt, để set lên, nhập: R FL C Tương tự để tắt dùng lệnh: R FL C • Khung thứ hai Data Windows dùng hiển thị liệu, bạn sử dụng qua trình biên tập Hex thấy quen thuộc với khung Được chia thành cột, cột thứ cho biết địa vùng nhớ liệu hiển thị, cột thứ giá trị Byte liệu (mặc định vậy, bạn thay đổi để hiển thị kiểu liệu khác) cột cuối liệu hiển thị dạng kí tự ASCII, cột SoftICE hiển thị kí tự in kí tự đồ họa Bạn dùng chuột để kéo lên hàng hay trang liệu cửa sổ nhờ vào Scrollbar cạnh phải khung Bạn dùng bàn phím: Alt-Up : lên hàng Alt-Down : xuống hàng Alt-Page Up : lên trang Alt-Page Down : xuống trang Để bật/tắt Data Window dùng lệnh WD Để thay đổi kích thước (chiều cao) Data Window dùng lệnh: WD kích_thước_muốn_đặt Thí dụ bạn muốn đặt kích thước Data Window 20 hàng, Command Window nhập: WD 20 Bạn biên tập trực tiếp giá trị Data Window cách kích chuột vào khung Data Windows (hoặc nhấn Alt-D) để chuyển trỏ vào khung này, sau nhập giá trị cần sửa đổi Để thay đổi kiểu hiển thị liệu Data Window thí dụ Byte, Word, DWord, Short Real, Long Real hay 10 Byte Real bạn dùng chuột kích vào text hiển thị kiểu liệu dùng nằm phía khung Data Window • Khung thứ Code Window, hiển thị lệnh hợp ngữ, chia thành cột, cột bên trái hiển thị địa nhớ câu lệnh, cột thứ hai mã Byte câu lệnh cột thứ hiển thị lệnh disassembly Bạn dùng chuột để kéo lên hàng hay trang liệu cửa sổ nhờ vào Scrollbar cạnh phải khung Bạn dùng bàn phím: Ctrl-Up : lên hàng Ctrl-Down : xuống hàng Ctrl-Page Up : lên trang Ctrl-Page Down : xuống trang Để bật/tắt Code Window dùng lệnh WC Để thay đổi kích thước (chiều cao) Code Window dùng lệnh: WC kích_thước_muốn_đặt Thí dụ bạn muốn đặt kích thước Code Window 10 hàng, Command Window nhập: WC 10 Nếu thấy cột chứa mã Byte câu lệnh (cột thứ 2) không cần thiết, bạn tắt cách nhập lệnh Code Off Command Window, bật lại lệnh Code On Để di chuyển trỏ vào Code Window bạn nhấn Alt-C Câu lệnh nằm ngang màu đỏ Code Window câu lệnh thực thi thời điểm SoftICE bật lên, SoftICE làm "đóng băng" tạm thời • Khung thứ Command Window dùng để nhập lệnh hiển thị thông báo SoftICE Để xoá lệnh nhập thông báo tạo SoftICE trước dùng lệnh Cls Để bật/tắt khung khác cửa sổ SoftICE bạn dùng lệnh sau: • WF : bật/tắt Floating Point Stack Window • WL : bật/tắt Locals Window • WW : bật/tắt Watch Window Thanh nằm cửa sổ SoftICE để hiển thị trợ giúp tức thời (bên trái) tên Process (tiến trình) theo dõi SoftICE (bên phải) Thoát khỏi cửa sổ SoftICE Để thoát tạm thời khỏi cửa sổ SoftICE dùng lệnh X Bạn tạm thoát SoftICE cách nhấn F5 Ctrl-D Thay đổi kích thước cửa sổ SoftICE Để thay đổi kích thước cửa sổ SoftICE dùng lệnh: Lines kích_thước_mới Thí dụ để thay đổi cửa sổ SoftICE thành 60 dòng, nhập: Lines 60 Lấy trợ giúp từ SoftICE Để hiển thị trợ giúp SoftICE bạn dùng lệnh H Help Để nhận trợ giúp riêng biệt lệnh dùng cú pháp sau: H [command] hay Help [command] Thí dụ lệnh: H AltKey hiển thị trợ giúp SoftICE cho lệnh AltKey sau: Set key sequence to invoke window ALTKEY [ALT letter | CTRL letter] Ex : ALTKEY ALT D Khó khăn với SoftICE SoftICE chương trình khó chịu, bạn thi hành ứng dụng bị lỗi xung đột với SoftICE, cửa sổ SoftICE bật lên ngay, gặp trường hợp đó, bạn nhấn phím C để tiếp tục thi hành ứng dụng hay nhấn phím R để trở SoftICE (con trỏ xuất lại Command Window SoftICE phép nhập lệnh), bạn nhập lệnh EXIT để nhờ SoftICE ép Process gặp lỗi thoát cưỡng Nếu sau làm vậy, bạn gặp lỗi màn-hình-xanh( hình xanhchết chóc Won9x,và WinME), bình tĩnh nhấn Enter Esc, hệ thống trở lại bình thường hệ thống bị "đóng băng" thật sự, hay chấp nhận điều Nhân vô thập toàn vô thập mỹ mà!!! III.Dùng Breakpoint (điểm ngắt) SoftICE Breakpoint phải dùng nó? Có thể hiểu cách gần Breakpoint tương tự gài bẫy hệ thống Khi bạn tạo Breakpoint SoftICE (hay chương trình Debug tương tự khác), hệ thống xuất tình trạng mà thoả mãn điều kiện Breakpoint bạn, SoftICE đóng băng tiến trình xảy Breakpoint, bạn theo dõi tình trạng hành hệ thống (mã, liệu, ghi ) nhờ vào cửa sổ SoftICE Đặt Breakpoint xác, điều kiện để bạn trở thành Cracker IV.Giới thiệu Breakpoint SoftICE Bạn dùng SoftICE để thiết lập Breakpoint mã chương trình thi hành, thao tác đọc viết vào vị trí nhớ, ngắt (interrupts) đọc viết tới I/O ports SoftICE gán số, từ đến FFh cho Breakpoint thiết lập Bạn dùng số Breakpoint để nhận diện Breakpoint đặt, xóa, vô hiệu hóa, kích hoạt hay biên tập chúng Tất Breakpoint SoftICE bền vững, nghĩa SottICE theo dõi trì Breakpoint bạn xoá vô hiệu hóa lệnh BC hay BD Sau xoá Breakpoint, xem lại chúng lệnh BH, điều hiển thị danh sách Breakpoint dùng Trong SoftICE, bạn đặt lần tới 256 Breakpoint Tuy nhiên, số Breakpoint Memory (BPM) I/O (BPIO) không 4, điều hạn chế vi xử lí x86 Những dạng Breakpoint hổ trợ SoftICE SoftICE cung cấp loạt khả Breakpoint đầy sức mạnh sau: • Execution Breakpoints : SoftICE thay thị máy (lệnh) có INT Bạn dùng lệnh BPX để thiết lập Execution Breakpoints • Memory Breakpoints : SoftICE dùng ghi debug x86 để ngắt hay nhiều Byte/Word/DWord xác định nhớ đọc, viết thi hành Bạn dùng lệnh BPM để đặt Memory Breakpoints • Interrupt Breakpoints : SoftICE chặn ngắt (interrupt) cách sửa đổi IDT (Interrupt Descriptor Table) vectors Bạn dùng lệnh BPINT để đặt Interrupt Breakpoints • I/O Breakpoints : SoftICE dùng ghi debug mở rộng CPU Pentium Pentium-Pro để theo dõi thị IN hay OUT đến cổng (port) xác định Bạn dùng lệnh BPIO để đặt I/O Breakpoints • Window Message Breakpoints : SoftICE bẫy dãy thông điệp đến cửa sổ xác định Bạn dùng lệnh BMSG để thiết lập Window Message Breakpoints Các tùy biến cho Breakpoint Bạn tùy biến thêm cho dạng Breakpoint cách dùng tùy chọn sau: • Biểu thức điều kiện [IF expression] : Muốn Breakpoint xảy biểu thức phải có giá trị khác (True) • Hành vi Breakpoint [DO "command1;command2;"] : dãy lệnh SoftICE tự động thi hành xảy Breakpoint Execution Breakpoints Execution Breakpoint chặn thị máy thí dụ lời gọi hàm hay câu lệnh Đây dạng Breakpoint thường dùng Bằng cách thay câu lệnh có lệnh INT 3, SoftICE lấy điều khiển thi hành Breakpoint INT Có cách để đặt Execution Breakpoint SoftICE : dùng chuột dùng lệnh BPX Dùng chuột để đặt Breakpoint Bạn dùng chuột để đặt hay xóa Breakpoint dạng point-and-shoot (Breakpoint bền vững) Breakpoint dạng one-shot (Breakpoint dùng lần) Để đặt Breakpoint dạng point-and-shoot, Code Window kích đôi vào hàng lệnh mà bạn muốn đặt điểm ngắt SoftICE điểm sáng hàng Kích đôi hàng lần để xóa Breakpoint Để đặt Breakpoint dạng one-shot, kích chuột vào hàng mà bạn muốn đặt Breakpoint để di chuyển trỏ đến hàng sau dùng lệnh HERE (hay nhấn phím F7) thi hành đến hàng lệnh đặt Breakpoint, SoftICE cho "đóng băng" Process theo dõi bạn theo dõi tình trạng hành tiến trình Dùng lệnh BPX để đặt Breakpoint Dùng lệnh BPX với tham số sau để đặt Execution Breakpoint: BPX [address] [IF expression] [DO "command1;command2;"] Tìm hiểu thí dụ sau để hiểu kĩ lệnh BPX: Chạy Notepad, gõ 1, từ sau chọn File.New Notepad hiển thị hộp thông báo nhắc nhở có Save lại không Hộp thông báo có title 'Notepad', với chuỗi thông báo 'The text in the Untitled file has changed.\n\nDo you want to save the changes?' Ghi chú: '\n' có nghĩa xuống hàng Bạn nhấn Cancel Để hiển thị hộp thông báo trên, Notepad phải gọi API MessageBoxA Chúng ta đặt Breakpoint cho Notepad gọi API bị SoftICE cho "đóng băng" Vào SoftICE (Ctrl-D), nhập: BPX MessageBoxA Rời SoftICE (Ctrl-D lần hay nhập lệnh X bạn nhấn F5), vào Notepad, chọn File.New Cửa sổ SoftICE bật lên, điểm vào API MessageBoxA Mã mà bạn thấy Code Window mã Notepad mà mã Kernel32.dll ánh xạ qua vùng nhớ Notepad, đừng quan tâm đến chuyện đó, nhớ Breakpoint làm việc tốt Hãy tìm hiểu kĩ thêm chút, xem mẫu hàm API MessageBoxA: int MessageBox( HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType // style of message box ); Nếu Notepad muốn gọi API phải truyền đủ tham số qua Stack (nhờ lệnh Push) Để ý kĩ giá trị đỉnh Stack lúc này: ESP (+ 0h) DWord chứa địa trở mã Notepad, tức địa câu lệnh lệnh gọi API MessageBoxA Notepad ESP + 4h hWnd ESP + 8h lpText ESP + Ch lpCaption ESP + 10h uType Ghi chú: Win32 lần Push vào stack phải Push DWord (4 Byte), khác với Dos lần Push giá trị Byte Nếu bạn không hiểu điều tui vừa nói không sao, bạn tạm chấp nhận Nhưng bạn muốn tìm hiểu kĩ hơn, hẹn gặp lại bạn tài liệu khác dạy lập trình Hợp Ngữ Windows, tui cố gắng viết nhanh để Upload lên cho bạn Khi SoftICE dừng lại điểm vào API MessageBoxA, nhập: D ESP+4 Theo bảng trên, lệnh hiển thị Data Window giá trị tham số hWnd tức Handle cửa sổ Notepad Trên Data Window, bạn thấy byte có dạng 'A0 04 00 00' (máy bạn khác), Handle cửa sô Notepad 4A0h Tiếp tục nhập lệnh: D ESP + thấy byte '38 F8 63 00' (tức DWORD 63F838h) Nhập: D 63F838 Lệnh Dump Byte địa 63F838h bạn thấy dòng text 'The text in the Untitled file has changed.\n\nDo you want to save the changes?' Để ý kĩ Byte cột thứ Data Window, thấy chuỗi kết thúc Byte 00h (NULL) '\n' có giá trị 0Ah Bạn tìm đến chuỗi nhanh cách dùng lệnh sau: D @(ESP + 8) hay D ESP->8 Ở phải định vị gián tiếp giá trị lpText truyền cho API MessageBoxA trỏ trỏ đến chuỗi thông báo Để nhanh hơn, đặt Breakpoint sau: BPX MessageBoxA DO "D @(ESP+8)" Bạn cho SoftICE thi hành lệnh cách dùng lệnh P (hay nhấn F10) lệnh T (hay nhấn F8) Sự khác lệnh chổ lệnh P xem lời gọi hàm Call xxxx lệnh đơn lẻ cho thi hành toàn thủ tục xxxx gọi lệnh Call này, sau dừng lại lệnh sau lệnh Call xxxx, lệnh T nhảy đến dòng lệnh thủ tục xxxx dừng lại Lệnh T tất nhiên sâu sắc lệnh P lúc dùng thay cho lệnh P ý hay, bạn dễ bị lệnh dẫn đến thủ tục không đâu "quên đường về" Điều quan trọng phải biết lúc cần dùng T lúc cần dùng P Thời gian dạy cho bạn điều Trong Code Window, bạn dùng chuột kích vào dòng mã bên dòng mã thực thi để dời trỏ đến đây, sau nhấn F7 (lệnh HERE), mã thi hành đến vị trí trỏ (nếu thực mã thi hành đến vị trí trỏ), SoftICE dừng lại cho bạn Đây cách đặt Breakpoint dạng one-shot Nếu bạn chán muốn trở lệnh sau lệnh gọi API MessageBoxA, nhập lệnh: G @SS:ESP hay nhấn F11 Lệnh kiểm tra ghi trỏ lệnh EIP vươn tới địa rõ SS:ESP, cho "đóng băng" Notepad Như tui nói trên, DWord SS:ESP chứa địa trở mã Notepad, tức địa câu lệnh lệnh gọi API MessageBoxA Notepad Nhấn Cancel, quay lại SoftICE, nhìn lên chút, bạn thấy đoạn mã sau: :004023FC 51 push ecx :004023FD 8D857CFEFFFF lea eax, dword ptr [ebp-0184] :00402403 FF750C push [ebp+0C] :00402406 50 push eax :00402407 FF7508 push [ebp+08] :0040240A FF15A8644000 Call [USER32!MessageBoxA] :00402410 8BE5 mov esp, ebp Dễ dàng thấy câu lệnh Push truyền tham số cho API MessageBoxA Nhập lệnh: BPX 40240A hay kích đôi vào câu lệnh 'Call [USER32!MessageBoxA]' Chúng ta tạo Breakpoint dạng point-and-shoot cho câu lệnh Vào lại Notepad chọn File.New Cửa sổ SoftICE bật lên dừng câu lệnh 'Call [USER32!MessageBoxA]' Breakpoint ta làm việc! Để xoá hết Breakpoint đặt dùng lệnh BC * Một số thao tác Breakpoint Vô hiệu hóa Breakpoint Dùng lệnh: BD list | * Trong đó: • list : dãy số hiệu Breakpoint ngăn cách dấu phẩy khoảng trắng • * : vô hiệu hóa tất Breakpoint Thí dụ lệnh: BD 1,3 vô hiệu hóa Breakpoint có số hiệu Kích hoạt lại Breakpoint Dùng lệnh: 10 Nếu bạn tới đã crack đươ ̣c rồ i Đúng là vâ ̣y, chı̉ là điề u kiêṇ cầ n chưa đủ Mu ̣c đích disable cái nút “ Enter Code”, xoá nút “Buy now!” và nút “Buy”, he he chi vậy, để cho người ta không biế t dòm vô tưởng ta bỏ tiề n mua thâ ̣t Khi ba ̣n crack ở thı̀ vẫn cha ̣y vi vu mấ y cái nút đăng ký la ̣i rấ t ngứa mắ t, mu ̣c đı́ch xoá ( đừng dùng reshack, chán lắ m) Okie ở ta suy luâ ̣n mô ̣t chút, nhập đúng Reg Code thı̀ chương trın ̀ h có mô ̣t đoa ̣n mã để kiể m tra, nế u không đúng thı̀ không xoá nút, ngược la ̣i thı̀ , Được rồ i ba ̣n haỹ vào ref, tı̀m dòng “Config”, ba ̣n có thể chạy hàm call 00499717 ta ̣i (1) cũng cho kế t quả tương tự Thoát ref ta đứng ở đây: * Possible StringData Ref from Data Obj ->"Window00" | :004997DA 68384B5700 push 00574B38 * Possible StringData Ref from Data Obj ->"Config" | :004997DF 68184B5700 push 00574B18 :004997E4 8BC8 mov ecx, eax :004997E6 E8457C0700 call 00511430 :004997EB 85C0 test eax, eax :004997ED 7509 jne 004997F8 < -Cầ n crack, chú ý (3) :004997EF E8D31A0300 call 004CB2C7 :004997F4 85C0 test eax, eax :004997F6 740A je 00499802 * Referenced by a (U)nconditional or ©onditional Jump at Address: |:004997ED© | :004997F8 E886190300 call 004CB183 :004997FD E9401D0000 jmp 0049B542 * Referenced by a (U)nconditional or ©onditional Jump at Addresses: |:004997CF©, :004997F6© | Từ (1), (2), (3), ta sẽ có ba chỗ cần crack là : Đổ i mô ̣t byte ta ̣i RVA 0049F70A (offset 0009EB0A) từ jz thành jnz (74 thành 75) Đổ i mô ̣t byte ta ̣i RVA 0049F6A8 (offset 0009EAA8) từ jz thành jnz (74 thành 75) Đổ i mô ̣t byte ta ̣i RVA 004997ED (offset 00098BED) từ jz thành jnz (74 thành 75) Chú ý : (3) chı̉ đươ ̣c patch ba ̣n thực xong (1) (2) Sau đó trở la ̣i GetRight đăng ký Đăng ký xong mới thực hiêṇ (3) để xoá các nút Get it and try it, ba ̣n sẽ thích mà he he Thâ ̣t còn nhiề u chuyê ̣n để xử lý nó lắ m chı̉ bàn đế n vấ n đề chı́nh thôi, ba ̣n muốn crack tiếp thı̀ nên disable các nút còn lại (các nút liên quan tới đăng ký) Hoă ̣c gỡ bỏ dòng Trial Version v v III Crack game PopCap -bài viế t của Computer_Angel How to crack POPCAP Games : TypeSHARK ver 1.00 Phần mềm: TypeSHARK ver 1.00 - http://www.popcap.com Bảo vệ: Trial version Công cụ : -Softice 4.xx (công cu ̣ để debug chương trı̀nh) -IDA hay W32DASM -Các công cu ̣ Hex Editor (HexWorkshop) File cần crack: WinTS.exe 42 Cracker: Computer_Angel + Tiế n hành: Kiể m tra đố i tươ ̣ng: a) Cha ̣y thử WinTS.exe, ba ̣n thấ y vấ n đề sau: + Màn hıǹ h intro có dòng chữ “REGISTER TYPESHARK”, “FREETRIAL VERSION” + Khi nhấ n vào “REGISTER TYPESHARK”, hộp thoa ̣i nhâ ̣p Username+Serial lên Nhập thử username+pass thı̀ nhâ ̣n đươ ̣c thông báo “The registration code you have entered is incorrect ” + Sau chơi, không ghi tên vào bảng HALL FAME + Khi thoát ra, có hiêṇ hộp thoa ̣i quảng cáo b) Dùng hex editor đó, load tập tin WinTS.exe vào, tı̀m thử vài chuỗi mà bạn ghi nhận ở các bước trên(Ở dùng công cu ̣ thông du ̣ng là HexWorkshop 4.00) Ta tı̀m thử chuỗi “registration code you”, ta tı̀m đươ ̣c ở vi trı ̣ ́ 00111B24 của tâ ̣p tin Nhâ ̣n xét: + WinTS.exe có khả Register (vı̀ có hô ̣p thoại đăng ký) + Không bi unpack Lý là vı̀ bạn có thể tı̀m các chuỗi mà ba ̣n thấ y game ̣ Bắ t đầ u công viê ̣c: a) Dùng IDA để dich ̣ ngươ ̣c WinTS.exe sang mã máy Sau dich ̣ xong, ta tìm tới Tab “Strings”, nhấn Alt-T để gõ vào chuỗi cầ n tı̀m kiếm Gõ vào chuỗi “The registration code you have” IDA sẽ nhảy tới vị trí chuỗi cầ n tı̀m Tab “Strings” b) Double click vào chuỗi vừa tı̀m đó, ba ̣n sẽ đươ ̣c chuyể n tới cửa sổ chứa thông tin sau: aTheRegistratio db 'The registration code you have entered',0Ah rdata:00511B20 ; DATA XREF: text:0043EE54 rdata:00511B20 db 'is incorrect Please try again.',0 rdata:00511B67 db ; Như vậy, ta biết WinTS.exe đọc chuỗi “The registration ” chı̉ mô ̣t lần ở vi trı ̣ ́ mã lênh ̣ là 0043EE54 c) Chuyể n sang Tab IDA-View (Chứa mã asm của WinTS vừa dich ̣ ngươ ̣c), nhảy tới vi ̣trı́ mã lệnh 0043EE54 bằ ng cách gõ phı́m “G”, nhâ ̣p vào 0043EE54 nhấ n Enter, ta đươ ̣c đoa ̣n mã sau: text:0043EE54 push offset aTheRegistratio ; "The registration code you have entered\n" text:0043EE59 mov byte ptr [ebp-4], text:0043EE5D call sub_407250 Nhı̀n lên phı́a xı́u, ta thấy có đoa ̣n so sánh text:0043EE30 push eax text:0043EE31 call dword ptr [edx+54h] < - Lưu ý text:0043EE34 test al, al text:0043EE36 jnz short loc_43EE8C < - Lưu ý text:0043EE38 push text:0043EE3A sub esp, 1Ch text:0043EE3D mov ecx, esp text:0043EE3F mov [ebp+8], esp text:0043EE42 push offset aOk ; "OK" text:0043EE47 call sub_407250 text:0043EE4C sub esp, 1Ch text:0043EE4F mov ecx, esp text:0043EE51 mov [ebp-14h], esp text:0043EE54 push offset aTheRegistratio ; "The registration code you have entered\n" 43 d) Vậy có vị trı́ cầ n lưu ý Ta phải kiể m tra xem chức của vi ̣trı́ đó là gı̀ bằ ng cách dùng Softice Ta kích hoạt Softice, dùng SymBol Loader để load tâ ̣p tin WinTS.exe vào, và nhấ n vào “Load Symbols” toolbar để cha ̣y tâ ̣p tin > Cửa sổ softice debug hiêṇ lên Ta đă ̣t break point ta ̣i vị trı́ lệnh cầ n lưu ý bằ ng cách gõ vào BPX 0043EE31 và nhấ n F5 Chương trình WinTS chạy bình thường, cho ̣n “REGISTER TYPESHARK”, nhâ ̣p username+mã bất kı̀ vào và nhấ n OK Khi đó cửa sổ Softice debug bâ ̣t lên ta ̣i vi trı ̣ ́ 0043EE31, nhấ n F10 để cha ̣y lê ̣nh ta ̣i vı́ trı́ đó, tiế p tu ̣c nhấ n F10 tới vệt sáng dừng la ̣i ta ̣i vi ̣trı́ 0043EE36 Đây lênh ̣ nhảy AL không 0, mà ta thấ y AL=0, vâ ̣y ta đổ i cờ Z bằ ng cách gõ vào R, và dùng Tab di chuyể n nháy tới hàng ở phı́a cao dưới hàng ESI=xxxxxxxxx Dùng mũi tên di chuyể n nháy tới chữ Z nhấ n Insert Để ý, sau nhấn xong, vi trı ̣ ́ lênh ̣ 43EE36 có mũi tên chı̉ xuố ng, đó là biể u thi ̣câu lê ̣nh này sẽ nhảy đế n vi trı ̣ ́ chı̉ định Ta nhấ n F5 và xem kế t quả, ta thấ y chương trình WinTS có hiể n thi sau: ̣ + Dòng chữ “FREE TRIAL version” > “REGISTER VERSION” + Dòng “REGISTER TYPESHARK” o còn nữa Như vâ ̣y, ta có nhâ ̣n xét: + Hàm call vi ̣trí 43EE31 có nhiê ̣m vu ̣ kiểm tra username+password nhâ ̣p vào và trả về kế t quả AL=1 nế u hơ ̣p lê.̣ e) Thoát khỏi WinTS, nhấ n vào nút “Load Symbols” để cha ̣y la ̣i lầ n nữa, cũng nhâ ̣p lại số serial+user tùy ý.Cửa sổ Softice debug lại ra, lần này bạn nhấ n F8 để debug vào hàm kiểm tra Vệt sáng sẽ chuyể n sang địa chı̉ là 4A3D20, nhấn F9 để đă ̣t break point ta ̣i điạ chı̉ này, sau đó nhấ n F5 để chạy chương trı̀nh bıǹ h thường f) Thoát khỏi WinTS, nhấ n vào nút “Load Symbols” để cha ̣y la ̣i lần nữa, lầ n này ta thấ y màn Softice Debug hiê ̣n ra, vê ̣t sáng nằm ta ̣i vị trı́ 4A3D20 -> Nhâ ̣n xét WinTS gọi hàm này khi: + Bắ t đầu cha ̣y để kiể m tra, kế t quả trả về AL=1 thı̀ có nghıã đã đăng ký rồ i + Khi cho ̣n mu ̣c đăng ký nhâ ̣p số serial+username g) Nhấ n F10 để thi hành từng câu lênh, ̣ vê ̣t sáng nằm lê ̣nh RET: text:004A406F pop esi text:004A4070 mov al, bl < - Lưu ý text:004A4072 pop ebx text:004A4073 call loc_4EE297 text:004A4078 mov esp, ebp text:004A407A pop ebp text:004A407B retn < vê ̣t sáng nằ m Khi đó, AL=0 (vı̀ chưa đăng ký hay đăng ký sai) Nhìn lên xı́u, ta thấy ta ̣i vị trı́ 4A4070 chứa mã lê ̣nh mov al,bl Như vâ ̣y, ta có thể thay đổ i lênh ̣ sau cho giá tri ̣của AL là > đổ i từ mov al,bl sang mov al,01 >byte: 8A C3 sang B0 01 Crack tâ ̣p tin WinTS: Trong IDA, nhảy tới vi trí ̣ lệnh 4A4070, nhìn vào status bar nằ m ở dưới, ta thấ y có số : + 4A4070 : là vi trı ̣ ́ lênh ̣ chương trıǹ h + A4070 : là vi ̣trı́ của lênh ̣ tập tin Mở HexWorkshop lên, na ̣p tâ ̣p tin WinTS.exe vào, gõ Ctrl-G, cho ̣n Hex, gõ vào A4070 44 HexWorkshop chuyển tới vị trı́ này Nhấ n TAB để nháy nằ m bên phầ n có số Hex và gõ vào B001 Nhấ n Ctrl-S để save la ̣i Như vâ ̣y ba ̣n đã crack xong game TypeSHARK ver 1.00 của Popcap IV Viế t Patch Gen Khi bạn crack phương pháp patch, xong không lẽ mỗi lầ n xài la ̣i phải crack nó Sao ta không lưu lại mô ̣t chương trıǹ h gı̀ đó mà mỗi cài la ̣i ta không cầ n phải ngồ i crack nữa ??? Do đó patch gen đời, thật có nhiề u patch gen làm sẵn File patcher 4.0, Fast Patch không tự viết patch gen nhı̉ Tôi thı̀ thươngf viế t Patch Gen VC giới thiê ̣u với mô ̣i người mô ̣t patch gen cực kỳ đơn giản bằ ng Pascal, là mô ̣t ngôn ngữ thân thiện với giới tin ho ̣c VN, nên cho ̣n để giới thiệu cùng các ba ̣n Patch Gen anh NVC © viết Ba ̣n có thể “ chế la ̣i theo sở thı́ch của mı̀nh Để hiể u đươ ̣c nó ba ̣n phải biết về Kiểu File Pascal nó thao tác file mà Nó dùng các hàm đơn giản IOResult, Seek,Assign, Reset vv Sau mô ̣t patch gen hoạ cho chương trình crack mIRC 603 Các ba ̣n đem về xem thử nhe Sau dich ̣ và chạy uses crt; const offset1=$000C5A48; {Điạ chı̉ offset cầ n crack} var ch:char; procedure patch(location:longint); var F:file of byte; x:array[0 1]of byte; {Số byte cầ n crack} begin {$I-} Assign(F,'mirc.exe'); {gán tên file cầ n crack} Reset(F); {Mở file vừa gán để đọc } {$I+} If Ioresult0 then { Nế u tı̀m không thấ y file} Begin clrscr; textcolor(lightgreen); Writeln;Writeln; Writeln('Ban Phai Chay File Crack Trong Thu Muc Co Chua File Can CraCk !'); Readln; End Else {nguoc lai} Seek(F,location); x[0]:=$75; {Giá tri cần đổ i file crack} ̣ Write(F,x[0]);{Ghi lên file} Close(F); { Đóng file} End; Begin Clrscr; textcolor(lightgreen); Writeln(' by hacnho from VCT '); Textcolor(white); Gotoxy(10,9); 45 Writeln('Ban hay nhan phim P de Patch, Phim bat ky de thoat:'); Ch:=Readkey; If(ch='p')or(ch='P')then begin patch(offset1); Writeln;Writeln;Writeln; Gotoxy(17,15);Writeln('mIRC603 PaTcH successful !'); Gotoxy(17,17);Writeln('***** More CRaCk, please contact me at *****'); Gotoxy(20,18); Writeln; Gotoxy(20,19); Writeln('*************************************'); Gotoxy(20,20); Writeln('* E-Mail : tommy9982@yahoo.com *'); Gotoxy(20,21); Writeln('* YIM : tommy9982 *'); Gotoxy(20,22); Writeln('* http:\\www.vietcracks.com *'); Gotoxy(20,23); Writeln('*************************************'); Readln; end else Exit end Chương trıǹ h đã dich ̣ rồ i http://www.vietcracks.com/download/test.rar V Thuật toán, thuật ngữ thường dùng…Bổ sung tiếp Các hệ đếm: Thông thường ta có hệ đếm sau: a Hệ Decimal (10): dùng ký tự số 0,1 Ví dụ : 2754 = 4+5.10+7.10.10+2.10.10.10 b Hệ Hexa (16): dùng ký tự số chữ 0,1,…9, A,B F Ví dụ : 3C5F = 15+5.16+16.16.16+3.16.16.16 c Hệ Binary(2): dùng ký số 0,1 Ví dụ : 1001 = 1+0.2+0.2.2+1.2.2.2 (còn tiếp…) Okie hết Giai Đoạn 1: Nhập môn cracker Các bạn cảm thấy nào? Crack dễ dàng ??? Thôi tạm biệt chúc bạn may mắn Trong ngày gần up lên Phần 9—GIAi ĐOẠN, bạn đón theo dõi viết hacnho How to crack WinZip® Version 9.0 PRE-RELEASE BETA TEST VERSION (5661) Phần mềm: WinZip 9.0 beta2 Bảo vệ: Unregistered Version/ Name Serial Công cụ : -W32DASM ver 893 -OllyDBG 1.09b Phương pháp crack: Find real serial Mức độ ()Dễ (x)Vừa ()Hơi khó ()Rất khó File cần crack WINZIP32.EXE Cracker: hacnho (hacnho@hopthu.com) Website: http://kickme.to/VCT/ I Giới thiệu Chào các ba ̣n, lâu lắ m rồ i hacnho mới viế t tut mới, da ̣o này cha ̣y XP nên lười cài SI Cho nên thı́ch crack các soft nhỏ bằ ng Olly 1.09b Hôm WinZip đã bản 9.0 beta build 5611 Tuy là nó không có gı̀ thay đổ i so với bản beta tâm lý mo ̣i người thı́ch cái mới Do đó yêu cầ u đă ̣t là phải crack cho nó nóng số t Okie, chúng ta bắ t đầ u crack Yêu 46 cầ u lầ n crack này là tım ̀ đươ ̣c real serial ứng với name nhâ ̣p vào Từ đó tı̀m hiể u thêm về đoa ̣n mã để tiêṇ viêc̣ code keygen II Bắt tay vào crack Winzip 9.0 beta Đầu tiên, sau cài đặt xong, ta chạy Winzip 9.0 beta thı̀ mô ̣t nag hiêṇ lên bắ t nhâ ̣p số serial Ở hacnho nhập vào : Name = hacnho, Regcode bằ ng 15101983 Mô ̣t nag văng “Incomplete or incorrect information” Do cầm tìm real serial tương ứng với Name = hacnho nên dùng OllyDBG 1.09b có plugin Command Bar load file WINZIP32.EXE lên Righ click phầ n main Olly, chọn Search for ->All referenced text string Cho ̣n search for text Gõ vào chuỗi câu thông báo mà Winzip cho ta là “Incomplete” Wow, không có xảy Hic hic, phút để kiế m cái string “Incomplete or incorrect information” Olly mà chả thấy Ta đành nhờ chàng WinDASM 8.93 xem Okie, mở WinZip bằ ng Wdasm, vào Ref menu kiếm dòng “Incomplete or incorrect information”, xong rồ i double click vào dòng string để nhảy main của WinDasm Xem điạ chı̉ nó là Hà hà thı̀ hắ n nằ m ta ̣i Code Data : 0040D202 Bây ta đóng Wdasm la ̣i Vào main của OllyDBG, gõ Ctrl+G, nhâ ̣p vào 0040D202 Ba ̣n sẽ thấ y những dòng tương tự vầ y : 0040D202 |> E8 C6F7FFFF CALL WINZIP32.0040C9CD 0040D207 | 68 8E020000 PUSH 28E 0040D20C | E8 97C10500 CALL WINZIP32.004693A8 Bây giờ ba ̣n di chuyển cuộn lên vài hàng cho đế n gă ̣p những dòng sau: 0040D18C | FF15 9C954B00 CALL DWORD PTR DS:[] ; \GetDlgItemTextA 0040D192 | 56 PUSH ESi 0040D193 | E8 9EC00500 CALL WINZIP32.00469236 0040D198 | 56 PUSH ESi 0040D199 | E8 C1C00500 CALL WINZIP32.0046925F 0040D19E | 803D 8CA14D00 >CMP BYTE PTR DS:[4DA18C],0 0040D1A5 | 59 POP ECX 0040D1A6 | 59 POP ECX 0040D1A7 | 74 59 JE SHORT WINZIP32.0040D202 >Nhâ ̣n name nhập vào 0040D1A9 | 803D B8A14D00 >CMP BYTE PTR DS:[4DA1B8],0 0040D1B0 | 74 50 JE SHORT WINZIP32.0040D202 >Nhâ ̣n serial name nhâ ̣p vào 0040D1B2 | E8 6DFCFFFF CALL WINZIP32.0040CE24 > Go ̣i đoa ̣n mã ta ̣o key 0040D1B7 | 84C0 TEST AL,AL > so sánh serial nhâ ̣p sinh 0040D1B9 | 74 47 JE SHORT WINZIP32.0040D202 > bắ n nag 0040D1BB | 57 PUSH EDi Vậy xác đinh ̣ đươ ̣c WinZip sử dụng hàm APi GetDlgItemTextA để xét serial và name nhâ ̣p vào Yeah, biết đươ ̣c breakpoint cầ n thiết để trace Bây giờ ba ̣n haỹ nhấn F2 (tương tự F7 SoftIce) để toogle breakpoint ta ̣i dòng 0040D18C Ba ̣n nhấ n F9 (tương tự F5 SoftIce) để cha ̣y Cái nag bắ t đăng ký bâ ̣t lên Nhập vào name hacnho, serial 15101983 Nhấn OK Waa, Olly Ice ta ̣i 0040D18C Ba ̣n bắ t đầ u nhấ n F8 (tương tự F10 SoftIce) để trace downward Khi trace tới dòng: 0040D1B2 | E8 6DFCFFFF CALL WINZIP32.0040CE24 > Go ̣i đoạn mã ta ̣o key 0040D1B7 | 84C0 TEST AL,AL > so sánh serial nhâ ̣p sinh Ta nhận thấy Winzip go ̣i hàm kiể m tra key trước dòng test al, al He he ta cầ n xem đoạn đó nó tạo key Okie ba ̣n nhấ n F7 (tương tự F8 SoftIce) để nhảy vào đoa ̣n call này Bạn sẽ thấ y những dòng này sau đó: 0040CE24 /$ 55 PUSH EBP 0040CE25 | 8BEC MOV EBP,ESP 47 0040CE27 | 81EC 40030000 SUB ESP,340 0040CE2D | A1 B06A4D00 MOV EAX,DWORD PTR DS:[4D6AB0] Tiế p tục trace downward, đế n đoa ̣n: 0040CE8E |> 0FB603 /MOVZX EAX,BYTE PTR DS:[EBX] 0040CE91 | 50 |PUSH EAX 0040CE92 | E8 41270900 |CALL WINZIP32.0049F5D8 0040CE97 | 85C0 |TEST EAX,EAX 0040CE99 | 59 |POP ECX 0040CE9A | 74 05 |JE SHORT WINZIP32.0040CEA1 0040CE9C | 8A03 |MOV AL,BYTE PTR DS:[EBX] 0040CE9E | 8807 |MOV BYTE PTR DS:[EDI],AL 0040CEA0 | 47 |INC EDi 0040CEA1 |> 43 |INC EBX 0040CEA2 | 803B 00 |CMP BYTE PTR DS:[EBX],0 0040CEA5 |.^75 E7 \JNZ SHORT WINZIP32.0040CE8E ba ̣n sẽ phải trace nhiề u lầ n Tại sao, hı̀ Lý là đoa ̣n này sẽ xét ký tự, để ta ̣o số serial tương ứng với ký tự Do chı̉ cần tı̀m real serial không sâu vào phầ n phân tích cách ta ̣o key Tiếp tu ̣c chờ Olly trace vòng vòng cái đoa ̣n mã này lần (ứng với sáu ký tự h a c n h o) Ba ̣n tiế p tu ̣c trace từ từ đoa ̣n mã này: 0040CF66 | 50 PUSH EAX 0040CF67 | 56 PUSH ESi 0040CF68 | E8 51F4FFFF CALL WINZIP32.0040C3BE 0040CF6D | 8D85 C0FCFFFF LEA EAX,DWORD PTR SS:[EBP-340] > hiêṇ real serial : BCDC063C 0040CF73 | 50 PUSH EAX bạn khỏi cầ n d EBP-340 để thấ y real serial làm chi cho cực Các cửa số của OllyDBG tự đô ̣ng hiêṇ chuỗi ASCIi có số serial hà : 0012EE5C 004DA18C ASCIi "hacnho" 0012EE60 0012EE70 ASCIi "BCDC063C" 0012EE64 004DA18C ASCIi "hacnho" 0012EE68 004DA1B8 ASCIi "15101983" Okie, Số serial thực ứng với Name= hacnho là BCDC063C Thế là WinZip9.0 beta2 đã bi ̣crack rồ i đó Lưu ý: các ba ̣n nế u dùng SoftICe để crack mà không thı́ch Olly thı̀ hacnho có mấ y lời khuyên sau đây: + WinZip 9.0 beta có 13 đoạn Call sử dụng hàm APi Getdlgitemtexta Do đó ba ̣n chı̉ đă ̣t khơi khơi breakpoint Getdlgitemtexta nên nhớ chı̉ nhấ n F5 lầ n để nó Ice ta ̣i đoa ̣n mã nhâ ̣p Name Serial Nế u tuỳ tiê ̣n nhấn F5 vài lầ n thı̀ SoftIce sẽ dẫn ba ̣n tới Xômali đó +Olly có giao diện trực quan, dễ analyze, đó ta dễ dàng tìm breakpoint cầ n thiế t Còn thằ ng Si thı̀ không nên rấ t khó đă ̣t breakpoint Muố n đă ̣t chıń h xác ba ̣n phải hiể u rõ cấ u trúc của các hàm API III Kế t luâ ̣n Qua tut ta học đươ ̣c mô ̣t điề u, cầ n phải linh đô ̣ng dùng các soft bổ sung cho nhau, sẽ mang la ̣i kết quả mong ̣i cr@ck thời gian sách có dạy kái hay nè bác 48 +khi có soft cài vào máy hết hạn dùng(bản dùng thử mà).Thì có soft giúp bạn tăng thời gian sử dụng mà không cần phải đăng kí datecrck.Nhưng soft chạy chế độ Command Line (cơ chế dòng lệnh) +đầu tiên bạn download phần mềm Datecrck(vào google.com tìm nha) -Bước 1:copy file Datecrck vào ổ đĩa C, sau vào START -> RUN,gõ vào cmd -Bước2:Tại dấu nhắc lệnh sữ dụng cú pháp sau:Datecrck app.exe,Date[0/1] Nói bác khó hiểu cho ví dụ cho hiểu nha! ví dụ:tôi có phần mềm Softice lưu thư mục d:\new không thời gian sử dụng.bây muốn tăng thời gian sử dụng lên thêm 30 ngày nữa,thực sau: Start -> Run,gõ cmd enter tiếp tục gõ:dateccrck d:\new\softice.exe,30 +chú ý số 30 ngày gia hạn sữ dụng phần mềm bạn tùy thích theo ý muốn kaka!!! +nếu chưa hiễu download hình xem hiểu liền hà:http://www.ziddu.com/download/493464 h_hoa.bmp.html Tự làm k.e.y.g.e.n Chắc hẳn bạn gặp phần mềm dạng Sharewere (chia sẻ) hay Trial Đây phần mềm cho phép dùng thử khoảng thời gian định trước (chẳng hạn 15 ngày, 30 ngày, …) Sau khoảng thời gian đó, bạn định chạy để dùng tiếp bắn cho bạn thông báo kiểu như: “Thời hạn sử dụng hết!”, “Hãy đăng ký để sử dụng tiếp”, … (Dịch tiếng Việt ) Đăng ký nghĩa bạn phải điền vào form Register thông tin (chúng ta gọi chung Key (nghĩa “chìa”)) mà phù hợp, chương trình tự unlock (mở khóa) để xóa giới hạn chương trình (như việc giới hạn thời gian sử dụng nói trên) Làm để có Key? Chúng ta có cách: + mua nhà sản xuất (trang chủ phần mềm đó) + tự tìm Với cách thứ 1, phải bỏ tiền mua N với dân Việt Nam tiền ăn chưa đủ, có tiền để mua soft mà giá toàn tính $ vậy? Cũng có cách khác dùng tiền chùa để mua N cách chưa bàn (dễ bị bóc lịch chơi ) Vì vậy, cách bạn đừng quan tâm Cách thứ an toàn nhiều Chúng ta cần online kiếm Key soft chạy, chả gây với anh CA Chúng ta có cách để cần dùng Key mà soft chạy đăng ký (cái gọi patching) Cả việc việc tìm Key gọi chung Cracking software (nghĩa bẻ khóa phần mềm) Như bạn hiểu sơ qua công việc Cracker (người bẻ khóa) Tiếp theo cần phải trang bị Tools (các công cụ) cần dùng cho cracker + Đầu tiên cần có công cụ để “đánh hơi” xem software viết chương trình có packed (bị nén), protected (được bảo vệ) hay 0? Các bạn tải phần mềm PEiD về: http://peid.has.it/ – Thứ chương trình Debug (gỡ rối) gọi Debuggers Các chương trình dùng để Programmers theo dõi việc lập trình họ N dùng để crack soft Trước tool thường dùng SoftIce n công việc trực quan, dùng OllyDbg Các bạn tải ở: http://www.ollydbg.de/ Bản 1.10 OllyDbg trang bị thêm Plugin Khi bạn download trang chủ có sẵn số plugin rùi Những plugin khác tui nói sau Có nhiều tool hỗ trợ cho việc Cracking, n để dễ cho bạn bắt đầu, tạm thời nghiên cứu tool Sau download tools cần thiết, bạn giải nén đưa chúng vào thư mục (đừng cho vào ổ chứa hệ điều hành) ví dụ “D:\Cracking\” chẳng hạn 49 Chạy PEiD, chọn Options, để mặc định lựa chọn, click chọn thêm “Register Shell Extensions” Điều giúp tạo command menu chuột phải Xong chọn “Save” thoát PEiD Chạy OllyDbg, có thông báo nhấn Yes, nhấn tổ hợp Alt+O, vào tab Exceptions click chọn tất cả; nhìn xuống nhấn “Add range”, Combobox thứ chọn C0000001, Combobox thứ chọn C0009898 Xong OK lần để thoát Tiếp tục vào Options, chọn “Add to Explorer”—–>”Add OllyDbg to menu in Windows Explorer”—–>Done Xong thoát khỏi OllyDbg Lúc thư mục OllyDbg có file “ollydbg.ini” Các bạn mở file lên, cuộn xuống tìm dòng “Custom[0]=C0000001,C0009898” Các bạn đổi C0000001 thành 00000000 đổi C0009898 thành FFFFFFFF Xong lưu lại file “ollydbg.ini” Chúng ta sẵn sàng cho việc crack Ngoài ra, việc biết ngôn ngữ lập trình Asm (Assembly) quan trọng Bởi OllyDbg dịch file cần crack mã Asm, nhìn vào đoạn mã Asm, có cách để bẻ khóa file Asm ngôn ngữ lập trình bậc thấp, mạnh Nó dạy chương trình quy Nếu chuyên ngành bạn CNTT may mắn bạn dạy dỗ đàng hoàng ngôn ngữ Tuy nhiên bạn chưa biết tí Asm đừng lo lắng, bạn crack ầm ầm Chỉ cần hiểu số lệnh quan trọng Tui nói trình crack cụ thể /*—————————————-*\ Để minh họa cho việc cracking software, xử game PopCap Đây trang có nhiều game hay Dán link vào chương trình download manager để tải game Mummy Maze Deluxe 1.1: http://popcap.com/installer_download_ec.php?url=MummyMazeSetup.exe&oid=9 Sau tải cài đặt xong, chạy thử chương trình, bạn thấy dấu hiệu phần mềm shareware là: – Có dòng “UNREGISTERED VERSION” – Có dòng “Register now!” – Bị giới hạn số lần chơi đòi phải đăng ký để tiếp tục chơi Các bạn nhấn “Register now!” điền Name Code vào Chẳng hạn tui điền: Name: hvh0904/KT44 Code: hbb506 Xong nhấn REGISTER bạn nhận thông báo sau: “The registration number you entered is not valid for that name” Hê hê, nhớ lấy dòng thông báo để dùng sau Thực có nhiều cách để crack game này, n để tiện cho bạn newbie, dùng cách cho dễ hiểu Việc phải làm bắt game phải đồng ý Name Code mà điền vào (0 bắn thông báo lỗi nữa) Bây thoát game, chuột phải lên biểu tượng Desktop, chọn “Scan with PEiD” PEiD báo game coded “Microsoft Visual C++ 6.0” Như game bị pack hay protected Thoát PEiD, chuột phải lên biểu tượng game Desktop, chọn “Open with OllyDbg” OllyDbg load lên (file “\Program Files\PopCap Games\Mummy Maze Deluxe\WinMM.exe”) Các bạn chờ chút cho OllyDbg dịch file mã ASM Xong chuột phải lên CPU Window, chọn “Search for”—–>”All referenced text strings” cửa sổ bắn lên, bạn chuột phải chọn “Search for text” Gõ vào textbox dòng thông báo lỗi mà ghi nhớ (“The registration number you entered is not valid for that name”) Tuy nhiên bạn cần gõ vào textbox vài chữ đầu, chẳng hạn “the registration”, nhớ bỏ chọn “Case sensitive chọn “Entire scope”, xong OK Nó tìm cho dòng text có nội dung hightlight dòng Click đôi vào đưa CPU Window: ————————————————————————– 50 0041EF0E 90 NOP 0041EF0F 90 NOP 0041EF10 /$ 6A FF PUSH -1 0041EF12 | 68 A8DE4700 PUSH WinMM.0047DEA8 ; SE handler installation 0041EF17 | 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 0041EF1D | 50 PUSH EAX 0041EF1E | 64:8925 000000>MOV DWORD PTR FS:[0],ESP 0041EF25 | 83EC 38 SUB ESP,38 0041EF28 | 8A4424 03 MOV AL,BYTE PTR SS:[ESP+3] 0041EF2C | 53 PUSH EBX 0041EF2D | 55 PUSH EBP 0041EF2E | 56 PUSH ESI 0041EF2F | 894C24 10 MOV DWORD PTR SS:[ESP+10],ECX 0041EF33 | 57 PUSH EDI 0041EF34 | 884424 38 MOV BYTE PTR SS:[ESP+38],AL 0041EF38 | BF D0224900 MOV EDI,WinMM.004922D0 ; ASCII “OK” 0041EF3D | 83C9 FF OR ECX,FFFFFFFF 0041EF40 | 33C0 XOR EAX,EAX 0041EF42 | 33DB XOR EBX,EBX 0041EF44 | F2:AE REPNE SCAS BYTE PTR ES:[EDI] 0041EF46 | F7D1 NOT ECX 0041EF48 | 49 DEC ECX 0041EF49 | 895C24 3C MOV DWORD PTR SS:[ESP+3C],EBX 0041EF4D | 51 PUSH ECX 0041EF4E | 68 D0224900 PUSH WinMM.004922D0 ; ASCII “OK” 0041EF53 | 8D4C24 40 LEA ECX,DWORD PTR SS:[ESP+40] 0041EF57 | 895C24 48 MOV DWORD PTR SS:[ESP+48],EBX 0041EF5B | 895C24 4C MOV DWORD PTR SS:[ESP+4C],EBX 0041EF5F | E8 9C40FEFF CALL WinMM.00403000 0041EF64 | 8A4C24 13 MOV CL,BYTE PTR SS:[ESP+13] 0041EF68 | 53 PUSH EBX 0041EF69 | 884C24 1C MOVa BYTE PTR SS:[ESP+1C],CL 0041EF6D | 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C] 0041EF71 | 895C24 54 MOV DWORD PTR SS:[ESP+54],EBX 0041EF75 | E8 362AFEFF CALL WinMM.004019B0 0041EF7A | BF 38444900 MOV EDI,WinMM.00494438 ; ASCII “The registration number you entered is not valid for that name Make sure the name and registration number are entered correctly.” 0041EF7F | 83C9 FF OR ECX,FFFFFFFF 0041EF82 | 33C0 XOR EAX,EAX 0041EF84 | 6A 01 PUSH 0041EF86 | F2:AE REPNE SCAS BYTE PTR ES:[EDI] 0041EF88 | F7D1 NOT ECX ———————————————————————————Đây đoạn code liên quan đến thông báo lỗi đăng ký Các bạn click chuột lên đầu đoạn code 0041EF10 để xem đoạn code gọi từ địa Nhìn xuống cửa sổ Information cửa sổ CPU, thấy thông báo “Local calls from 00420610, 00428F3C” Như có địa gọi đến đoạn code thông báo lỗi 00420610 00428F3C 51 Chuột phải lên dòng lệnh 0041EF10 chọn “Go to”—–>”CALL from 00420610″, đến đoạn code: ————————————————————————– 004205FF C68424 D401000>MOV BYTE PTR SS:[ESP+1D4],3 00420607 FF50 3C CALL DWORD PTR DS:[EAX+3C] 0042060A 84C0 TEST AL,AL 0042060C 75 09 JNZ SHORT WinMM.00420617 0042060E 8BCD MOV ECX,EBP 00420610 E8 FBE8FFFF CALL WinMM.0041EF10 00420615 EB 60 JMP SHORT WinMM.00420677 ———————————————————————– Click chuột lên dòng lệnh 00420607 nhấn F2, địa chuyển sang màu đỏ (nghĩa đặt breakpoint (điểm ngắt)) Mục đích tiến hành đăng ký chương trình đóng băng điểm ngắt Xong quay lại địa 0041EF10 cách nhấn dấu “-“ Tương tự, chuột phải lên dòng lệnh 0041EF10 chọn “Go to”—–>”CALL from 00428F3C”, đến đoạn code: ————————————————————— 00428F2D C64424 4C 02 MOV BYTE PTR SS:[ESP+4C],2 00428F32 FF52 3C CALL DWORD PTR DS:[EDX+3C] 00428F35 84C0 TEST AL,AL 00428F37 75 0A JNZ SHORT WinMM.00428F43 00428F39 8B4D 78 MOV ECX,DWORD PTR SS:[EBP+78] 00428F3C E8 CF5FFFFF CALL WinMM.0041EF10 00428F41 EB 4F JMP SHORT WinMM.00428F92 00428F43 > 8B0D 24134800 MOV ECX,DWORD PTR DS:[481324] ———————————————————————Click chuột lên dòng lệnh 00428F32, nhấn F2 Xong nhấn F9 để run chương trình, vào cửa sổ game, click chọn “Register now!” Điền vào Name Code Ở tui điền Name: hvh0904/KT44 Code: hbb506 Xong nhấn REGISTER Hê hê, chương trình đóng băng 00428F32 Tại gọi hàm check Key với đối số AL trả AL=1, sai trả AL=0 Như cần phải crack code cho AL trả Nhấn F7 để vào hàm, kéo xuống tìm lệnh “RETN 8” (Return): —————————————————————– 00435F05 8B8C24 D000000>MOV ECX,DWORD PTR SS:[ESP+D0] 00435F0C 8A4424 13 MOV AL,BYTE PTR SS:[ESP+13] 00435F10 5F POP EDI 00435F11 5E POP ESI 00435F12 5D POP EBP 00435F13 5B POP EBX 00435F14 64:890D 000000>MOV DWORD PTR FS:[0],ECX 00435F1B 81C4 CC000000 ADD ESP,0CC 00435F21 C2 0800 RETN 00435F24 90 NOP —————————————————————— Tại địa 00435F0C, ghi AL nhận giá trị lệnh: MOV AL,BYTE PTR SS:[ESP+13] Chúng ta cần cho AL 1, thay lệnh lệnh: MOV AL,1 52 cách click đúp vào dòng lệnh 00435F0C, gõ vào textbox “MOV AL,1” (0 có dấu ngoặc kép) chắn “Fill with NOP’s” chọn Lúc đoạn code sửa thành: ————————————– 00435F0C B0 01 MOV AL,1 00435F0E 90 NOP 00435F0F 90 NOP —————————————Bôi đen bytes đỏ rùi chọn “Copy to executable”—–>”Selection” Đóng cửa sổ ra, chọn Yes có thông báo Chọn nơi lưu file (tốt ghi đè lên file cũ) save file lại Bây file vừa lưu file crack Các bạn kiểm chứng cách nhấn F9 để run game Cửa sổ Register biến mất, hình lên dòng “Thanks for registering!” “REGISTERED VERSION” Thoát khỏi Olly run game Lúc trở thành phiên đăng ký với đầy đủ function Vậy crack xong game “Mummy Maze Deluxe 1.1” PopCap Games /*———————————cai copy ko biet co lam duco ko———-*\ KeyGen PDF Split/PDF Merge ——————————————————————————– Chúng ta tạo KeyGen cho soft Download tại: http://www.adultpdf.com/ Chạy thử chương trình Nó xuất cửa sổ đòi đăng ký FULL Gõ đại vài ký tự vào nhấn OK Nó bắn thông báo “Series number error …” Vì Key Hộp thông báo nhìn giống MessageBox API Windows Dùng PEiD scan thấy: “ASPack 2.12 -> Alexey Solodovnikov” Như soft packed by ASPack 2.12 Chúng ta UnPack Tool ta cần UnPack thành file mà UnPack in Memory để thấy hàm API mà sử dụng (tìm hàm MessageBox) Load soft lên OllyDbg Có thông báo nhấn OK No Chúng ta đứng dòng lệnh PUSHAD F8 để thực lệnh Lúc chuột phải vào ghi ESP bên tay phải (Cửa sổ Registers) chọn “Follow in Dump” Nhìn xuống góc trái (cửa sổ Dump) Click chọn vào Byte đầu tiên, chuột phải chọn “Breakpoint—–>Hardware, on access—–>Byte” F9 để run soft OllyDbg đóng băng điểm ngắt vừa đặt (tại dòng lệnh JNZ) F8 đến lúc thực xong lệnh RETN Vào menu “Debug—–>Hardware breakpoints” nhấn “Delete 1” Giờ chuột phải vào CPU Window chọn “Search for—–>All intermodular calls” Click vào tab “Destination” để Olly xếp tên hàm theo thứ tự Tìm hàm MessageBoxA Chuột phải vào hàm chọn “Set breakpoint on every call to MessageBoxA” F9 để run soft Cửa sổ Register soft lúc ta chạy thử ban đầu Lại gõ đại vài ký tự vào, chẳng hạn “123456” Nhấn OK để Reg Hê hê, Olly đóng băng hàm MessageBoxA: Code: 0040D672 50 PUSH EAX 0040D673 E8 A0631600 CALL pdfspme_.00573A18 ; JMP to USER32.MessageBoxA 0040D678 FF4D EC DEC DWORD PTR SS:[EBP-14] 0040D67B 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] 0040D67E BA 02000000 MOV EDX,2 0040D683 E8 24241500 CALL pdfspme_.0055FAAC 53 Nhìn lên phía hàm ta thấy có lệnh nhảy kiểu nói phần crack game PopCap: Code: 0040D627 E8 40040000 CALL pdfspme_.0040DA6C 0040D62C 84C0 TEST AL,AL 0040D62E 75 67 JNZ SHORT pdfspme_.0040D697 Tại 0040D627 lệnh CALL Function check Key trả AL=1 Key trả AL=0 Key sai Vậy đặt BreakPoint cách nhấn F2 F9 để run soft Thông báo Key sai bắn Cứ OK Xong nhấn OK để Reg lại lần Olly đóng băng 0040D627 F7 để vào hàm Dưới toàn code hàm check Key: Code: 0040DA6C 56 PUSH ESI 0040DA6D 8BF2 MOV ESI,EDX 0040DA6F 85F6 TEST ESI,ESI 0040DA71 75 04 JNZ SHORT pdfspme_.0040DA77 0040DA73 33C0 XOR EAX,EAX 0040DA75 5E POP ESI 0040DA76 C3 RETN 0040DA77 803E 00 CMP BYTE PTR DS:[ESI],0 0040DA7A 75 04 JNZ SHORT pdfspme_.0040DA80 0040DA7C 33C0 XOR EAX,EAX 0040DA7E 5E POP ESI 0040DA7F C3 RETN 0040DA80 56 PUSH ESI 0040DA81 E8 72221400 CALL pdfspme_.0054FCF8 0040DA86 59 POP ECX 0040DA87 83F8 10 CMP EAX,10 0040DA8A 74 04 JE SHORT pdfspme_.0040DA90 0040DA8C 33C0 XOR EAX,EAX 0040DA8E 5E POP ESI 0040DA8F C3 RETN 0040DA90 33D2 XOR EDX,EDX 0040DA92 8BC6 MOV EAX,ESI 0040DA94 0FBE08 MOVSX ECX,BYTE PTR DS:[EAX] 0040DA97 83F9 41 CMP ECX,41 0040DA9A 7C 05 JL SHORT pdfspme_.0040DAA1 0040DA9C 83F9 5A CMP ECX,5A 0040DA9F 7E 04 JLE SHORT pdfspme_.0040DAA5 0040DAA1 33C0 XOR EAX,EAX 0040DAA3 5E POP ESI 0040DAA4 C3 RETN 0040DAA5 42 INC EDX 0040DAA6 40 INC EAX 0040DAA7 83FA 10 CMP EDX,10 0040DAAA ^7C E8 JL SHORT pdfspme_.0040DA94 0040DAAC 0FBE56 06 MOVSX EDX,BYTE PTR DS:[ESI+6] 54 0040DAB0 0FBE4E 0B MOVSX ECX,BYTE PTR DS:[ESI+B] 0040DAB4 03D1 ADD EDX,ECX 0040DAB6 81FA 9B000000 CMP EDX,9B 0040DABC 74 04 JE SHORT pdfspme_.0040DAC2 0040DABE 33C0 XOR EAX,EAX 0040DAC0 5E POP ESI 0040DAC1 C3 RETN 0040DAC2 B0 01 MOV AL,1 0040DAC4 5E POP ESI 0040DAC5 C3 RETN F8 đến 0040DA6F lệnh TEST ESI,ESI Kiểm tra xem chuỗi Key có NULL (rỗng) 0? Nếu NULL thực lệnh XOR EAX,EAX làm cho AL=0 Vì chuỗi Key ta “123456” nên nhấn F8 nhảy đến 0040DA77 Tại thực lệnh CMP BYTE PTR DS:[ESI],0 Kiểm tra xem ký tự đầu chuỗi Key có NULL 0? Nếu NULL thực XOR EAX,EAX làm cho AL=0 Vì ký tự đầu chuỗi Key ta “1” nên nhấn F8 nhảy đến 0040DA80 F8 đến 0040DA87 Tại thực lệnh CMP EAX,10 Kiểm tra xem chiều dài chuỗi Key có phải 16 ký tự 0? (10(Hex) = 16(Dec)) Nếu thực XOR EAX,EAX làm cho AL=0 Vì chuỗi Key ta “123456” có ký tự nên nhấn F8 trả AL=0 mà ta cần AL=1 Giả sử chuỗi Key ta 16 ký tự nhấn F8 nhảy đến 0040DA90: Code: 0040DA90 33D2 XOR EDX,EDX 0040DA92 8BC6 MOV EAX,ESI 0040DA94 0FBE08 MOVSX ECX,BYTE PTR DS:[EAX] 0040DA97 83F9 41 CMP ECX,41 0040DA9A 7C 05 JL SHORT pdfspme_.0040DAA1 0040DA9C 83F9 5A CMP ECX,5A 0040DA9F 7E 04 JLE SHORT pdfspme_.0040DAA5 0040DAA1 33C0 XOR EAX,EAX 0040DAA3 5E POP ESI 0040DAA4 C3 RETN 0040DAA5 42 INC EDX 0040DAA6 40 INC EAX 0040DAA7 83FA 10 CMP EDX,10 0040DAAA ^7C E8 JL SHORT pdfspme_.0040DA94 Tại 0040DA94 đưa ký tự chuỗi Key vào ghi ECX Tại 0040DA97 tiến hành check ký tự lệnh CMP ECX,41 (CMP=Compare; 41 giá trị Hex ký tự “A”) Lệnh nhảy JL (Jump if Lower) nghĩa ký tự thấp ký tự “A” nhảy đến 0040DAA1 (mà 0040DAA1 thực lệnh XOR EAX,EAX làm cho AL=0) Nếu thõa mãn ĐK tiếp tục check lệnh CMP ECX,5A (5A giá trị Hex ký tự “Z”) Lệnh nhảy JLE (Jump if Lower or Equal) nghĩa ký tự cao ký tự “Z” thực lệnh XOR EAX,EAX 0040DAA1 làm cho AL=0 Nếu 16 ký tự thỏa mãn đến đoạn code: Code: 0040DAAC 0FBE56 06 MOVSX EDX,BYTE PTR DS:[ESI+6] 55 0040DAB0 0FBE4E 0B MOVSX ECX,BYTE PTR DS:[ESI+B] 0040DAB4 03D1 ADD EDX,ECX 0040DAB6 81FA 9B000000 CMP EDX,9B 0040DABC 74 04 JE SHORT pdfspme_.0040DAC2 0040DABE 33C0 XOR EAX,EAX 0040DAC0 5E POP ESI 0040DAC1 C3 RETN Tại 0040DAAC đưa giá trị ký tự thứ chuỗi Key vào ghi EDX Tại 0040DAB0 đưa giá trị ký tự thứ 12 chuỗi Key vào ghi ECX Tại 0040DAB4 cộng giá trị với lưu ghi EDX Tại 0050DAB6 so sánh tổng với 9B (9B(Hex) = 155(Dec)) Nếu tổng khác 9B thực lệnh XOR EAX,EAX làm cho AL=0 Còn tổng = 9B nhảy đến đoạn code: 0040DAC2 B0 01 MOV AL,1 0040DAC4 5E POP ESI 0040DAC5 C3 RETN Chính đoạn mà AL gán giá trị = Như chuỗi Key phải có 16 ký tự Các ký tự phải ký tự từ A->Z Tổng ký tự ký tự 12 phải 155 Ví dụ: ILIKENGUYENTUANH Lưu ý: Ký tự A->Z nhận giá trị từ 65->90 Để viết KeyGen cho ký tự 1->11 13->16 RANDOM từ A->Z Còn ký tự 12 gán 155 – giá trị ký tự Đoạn code sau viết VB6: Private Sub cmdGen_Click() Dim Key(1 To 16) As String Dim i As Integer txtKey.Text = “” For i = To 16 If i = 12 Then Key(i) = Chr$(155 – Asc(Key(7))) Else Randomize Key(i) = Chr$(Int((26 * Rnd) + 65)) End If txtKey.Text = txtKey.Text & Key(i) Next i End Sub phần mềm chức cực hay (ai đọc truyện chưởng phản đối ) Function check Key cực gà 56

Ngày đăng: 12/11/2016, 21:24

Xem thêm: Hướng dẫn Crack phần mềm chi tiết

TỪ KHÓA LIÊN QUAN

w