Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Reviews hay rinh note 4, galaxy V được vi vu Hàn Quốc

Gameshow “Ai Là Triệu Phú” trên VTV đang chờ đón bạn – Tải ngay!

Lời mời tham dự chương trình từ thiện "Giáng Sinh Trong Mắt Em"

Mời offline công nghệ cùng Vn-Zoom tại Hà Nội

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Mời offline công nghệ cùng VN-Zoom tại TP HCM
Trang 1/9 1 2 3 ... cuốicuối
kết quả từ 1 tới 15 trên 124
  1. #1
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm - chi tiết cụ thể

    mình đang tham gia một topic nhận tìm crack và serial cho các bạn có yêu cầu. Mà mình nghĩ nếu như các bạn cứ thích xài .. chùa hoài cũng đâu hay đâu, đúng không ? Hôm nay mình lang thang trên mạng thì bắt gặp một bài viết rất hay trên HAV online , mod ở đó nhiệt tình thật, mình xin chia sẻ bài viết hướng dẫn crack phần mềm cho các bạn. Bài viết gồm nhiều phần nên mình sẽ post lần lượt cho các bạn xem, mong là nó hữu ích. Bắt đầu nhé !
    Do mình đang thi nên chưa có thời gian để nghiên cứu nó kĩ, có gì thắc mắc các bạn hãy đọc lạ thật kĩ nhé, các soft nói trong bài có thể tìm trên google ! Thân!

    Ah, đây là link các soft trong bài viết nhé !
    HT view 2.0 ( giao diện dos nhá ) :
    Win32deassemble 10 :
    ollydbg110 :
    softice :
    xin lưu ý các bác là dùng softice thì dễ gặp trường hợp máy bị "màn hình xanh chết chóc" lắm nha, nếu gặp trường hợp khởi động máy không được thì các bác mở máy chọn "Last known good confignturation that most recent setting are worked" ( chả biêt ghi có sai chính tả k nữa ), rồi khởi động lại là hông sao.
    Thay đổi nội dung bởi caothean; 03-01-2010 lúc 00:23. Lý do: up lại link các soft

  2. Có 48 thành viên cảm ơn caothean cho bài viết này:
    1101990 (24-05-2010), 7121991 (10-06-2011), alphalyk6 (18-09-2009), anhhaibi (18-10-2009), anhhaithainguyen (16-09-2011), anhyeuviolet (17-07-2011), bamsynui (04-01-2009), batigon_280 (04-01-2009), Bep Thui (08-09-2012), buihongquang1986 (05-10-2011), caydenban (02-07-2011), ctrockr (27-04-2011), decon-meocon (25-01-2009), dogamer01 (03-09-2012), HaiBK (30-04-2009), hoclovetram2 (10-09-2011), hungmo (15-01-2011), huynhhiephp (15-05-2010), Inu_Yasha550 (03-08-2012), jenvany (24-05-2012), khicong88 (26-05-2009), kien_ (02-01-2011), kubi_ (29-06-2012), lamdacthanh (14-08-2011), leanhmoc (07-07-2009), ledinhngoc (12-09-2009), ltm12345 (29-08-2012), myzoom88 (30-12-2008), nevercry1 (24-07-2011), ngockylanvn (23-07-2011), ngothanhtungth (03-02-2009), nhatbinh (27-12-2008), phat_9999 (10-02-2009), phuocnguyen08021 (14-08-2009), quyettien692 (30-12-2008), saubay42 (04-04-2012), SCRADY1111 (12-04-2009), tamtit001 (21-06-2011), teochrome (07-10-2011), thongds (14-04-2011), thuong12382 (29-12-2010), tontoan1964 (26-12-2008), trava87 (06-03-2013), TromKieu (30-12-2008), UNHCR (14-07-2011), vanhung_itc (24-11-2009), vietyeuu (10-09-2011), viet_nt (12-11-2011)

  3. #2
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm-chi tiết, cụ thể

    HAV online
    Tác giả: (Someone) Hacnho or Zombie???

    PHẦN I: Chuẩn Bị

    I.Công cụ cơ bản cần có

    a.Debug :
    -SoftICe 4.05 for 9x, NT---Công cụ debug khá mạnh tuy nhiên chuyên làm Win bị Ice
    -Numega SoftICE Driver Suite 2.6 for XP ; mình thường dùng vì nó ít làm PC bị đóng băng
    -Smart Check 603(601 cũng đươc): debug for VB (chạy tốt trên 9x)
    -Quaid Analyser :debug for DOS
    mình không dùng Win9X nên không dùng các dubug for 9X như TRW2k, nếu các bác dùng Win9X thì hãy dùng nó
    b.Debug add_on:
    -BreakICE for SoftICe4.05: tìm các breakpoint
    -FrogsICE: tạo ngắt ảo làm các chương trình detect SoftICE không detect được SI…Điển hình như VK2000 build 10727 –không chạy đuợc trên Nt,Xp
    -SoftICe tools: các công cụ hỗ trợ SI như: ICE-HIDE, ICE-SET,INT6TEST,TRACEME, UCF 2000
    -Icedump: đổ bộ nhớ từ Si tới file
    Virtual address to file offset: khi Si tìm được offset ảo thì nó sẽ giúp Si tìm được offset thật…
    c. HexEditor: chỉnh sửa file hexa
    - HexaWorkShop3.0 : chỉnh sửa các file hexa khá mạnh
    - Hacker View 602(HIEW): công cụ chỉnh sửa file hexa rất mạnh (45% phần mềm muốn crk được đều nhờ nó)
    d. DeCompliers: dùng để dịch ngược file nguồn như exe, dll ra assembly

    - WinDeAssembly893: công cụ khá mạnh dùng dịch ngược file (nên kiếm bản fix để khỏI cần dùng HIEW, vi nó sẽ thêm menu EDIT trên thanh toolsbar, ta có thể chỉnh sửa file trực tiếp trên WDASM)

    Chú Ý; để WDASM chạy ngon lành bạn cần kiếm cho được các file patch cho nó như sau:
    *.SDR Enable for VB: WD893SDR.exe: giúp WDASM deassembly được 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 nền cho WDASM

    ----------hiện nay mình đã làm một bản WDASM rất xịn, fix,patch hết, bác nào có host mình up lên cho anh em tảI về xài, đỡ mất công tìm file.rar khoang 0.9mb------------

    -Riêng những chương trình được viết bằng Delphi thì 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 kém là các chương trình dùng để pack, và unpack các soft .
    (Các bạn lưu ý, mình dùng các thuật ngữ mà không giảI thích, bởI vì mình sẽ có một phần dùng để giảI thích các thuật ngữ, các 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 các file pack mà ta không biết được nó pack bằng gì
    -DeShrink: dùng giảI nén cho Shrink
    -Upx093w: giảI nén UPX
    -unpetite: giảI nén petite( tui sợ nhất nó, thank LE VU HOANG đã chỉ tui về 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 còn nhiều dạng nén khác như ASP, Pklite…tuỳ theo mà các bạn tìm unpacker cho thích hợp

    f. Ngoài ra còn có các chương trình dùng để sửa giao diện của file nguồn như: Resource Hacker, Exe Scope,Symantec Resource Studio,Restorator v2.50 build 757…cũng khá hữu dụng





    II. Cài Đặt:

    tất cả các soft tôi hướng dẫn ở trên đều rất dễ cài, tảI về và tiến hành cài bình thường …bạn có thể tìm chúng ở trang tools của HVA, hay vào để tảI chúng về…Riêng SoftICE405 và Numega SoftICE Driver Suite2.6 là tôi xin hướng dẫn một chút xíu.tài liệu về cài đặt SoftICe405 tôi post từ bài của 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 là :7804-17786F-73 or 7808-21675E-F4, sau khi cài xong trong bảng Driver Studio Config, các bạn nên chọn là Manual, nghĩa là muốn xài lúc nào thì chỉ cần vào mục Numega SoftICE Driver Suite trên thanh Start, chọn Start SoftICE, không muốn xài nó nữa thì chon disable…rất đơn giản…Có điều trong Numega SoftICE Driver Suite2.6 không hiểu sao không set được breakpoint Hmemcpy( dùng cho các chương trình viết bằng Vb)..ai biết chỉ giùm


    *.Cài SoftIce405, he he he trước khi cài nên backup data trong máy lạI nhe, tốt nhất là ghost lạI là Ok? Vì nó dễ làm crash máy của bạn lắm…kinh nghiêm của tui khi cài nó lần đàu tiên tưởng dễ xơi ai dè tiêu luôn window phảI format cài lạI, mất toàn bộ mail bồ tui gửI cho…cẩn thận đó nhe các bác…Dù xài nó mòn răng nhưng mỗI lần cài nó là tui xanh mặt, nhất là lúc khởi động máy…TrờI ạ bồ tui có bầu tui không sợ bằng lúc nó load lên đâu…sau đây là cách cài nó

    1. Download Softice for Win 9x ở
    2. Tiến hành cài đặt Softice chỉ bằng cách nhấn vào trình cài đặt Setup
    3. Khi cài đặt SoftIce sẽ yêu cầu bạn đánh số Serial thì mới có thể tiếp tục
    4. Bạn đánh 1900-0000DD-9B
    5. OK. Tiếp tục cài Softice, nhưng trước khi yêu cầu restart lại máy bạn hãy làm:
    6. Mở Notepad hay một trình soạn thảo nào đó, mở file winice.dat trong thư mục của Numega đã cài vào máy bạn hoặc theo đường dẫn
    C:\WINDOWS\system32\drivers\WINICE.DAT
    7. Cố gắng tìm dòng ghi INIT="WR;X;" (ở gần đầu file) và sửa nó thành INIT="WD;WR;WL;CODE ON;X;"
    8. Cố gắng tìm dòng như 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à hãy xoá tất cả những dấu chấm phẩy ( ở đầu dòng đoạn này đi. OK bây giờ save lại và restart lại máy để bắt đầu sử dụng

    Bai viet cua hacnho from HVA (xin vui long de dong nay khi ban trich dan lai--thanx a lot)

    Trong phần 2 sẽ hướng dẫn các bác sử dụng SoftICe, từng câu lệnh, từng hàm…rất cặn kẽ rất dễ hiểu
    Thay đổi nội dung bởi caothean; 01-01-2009 lúc 19:31. Lý do: font chữ lớn hơn cho dễ đọc

  4. Có 15 thành viên cảm ơn caothean cho bài viết này:
    7121991 (10-06-2011), acmadentuthienduong (29-12-2008), anhhaithainguyen (16-09-2011), Bep Thui (08-09-2012), caydenban (02-07-2011), chicong96 (19-06-2011), cuongvip2011 (08-05-2009), huynam721 (09-10-2011), leanhmoc (07-07-2009), lequangminhdl (23-11-2009), myzoom88 (30-12-2008), nevercry1 (24-07-2011), nhatbinh (27-12-2008), tontoan1964 (26-12-2008), trunghieu14589 (01-01-2009)

  5. #3
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm-chi tiết, cụ thể

    hôm nay là phần hai.

    PHẦN II:
    Chào các bạn chúng ta lại gặp nhau ở phần II này, qua bài viết ở phần I hẳn các bạn đã chuẩn bị đầy đủ “súng ống đạn dược” để chiến đấu với các soft rồI phải không? Ok ở phần II này tôi xin hướng dẫn các bạn sử dụng công cụ SoftIce, đây là công cụ debug mạnh cực kỳ, nó được ví như khẩu M-16 của các chiến sỹ marine trên chiến trường. Muốn “giết chết” được phần mềm các bạn phảI hiểu rõ các sử dụng nó, nếu không cẩn thận thì bạn sẽ bị chính nó kill đấy…
    Chú ý: trong bài này tôi có tham khảo bài viết của DTK,NVH©—thanx a lot for support

    I.SoffICE là gì và tại sao phải dùng nó?
    Chúng ta đều biết SoftIce là công cụ của hãng Numega viết ra dùng cho các programmer dùng để debug chương trình…Tuy nhiên nó được các cracker thế giới dùng để crack các phần mềm…Do vậy nguyên gốc của nó không phải là dùng để phục vụ cho mục đích crack…Có nhiều bạn hỏ tui tại sao SoftIce là một công cụ dùng để crack mà lại đòi số serial, sao ta không dùng chính nó để crack nó. Trời ạ, có bạn lại dùng chính SoftIce để crack chính nó, có bạn crack không được rồi la lên rằng “ Trời ạ, SoftIce lại detect SoftIce…”!!! he he bây giờ các bạn đã hiều về lai lịch của SofIce rồi chứ, nó không phải phần mềm viết riêng cho các cracker chúng ta đâu mà chính do chúng ta tìm được nó và sử dụng nó vào mục đích đen tối đấy chứ. Không sao bản thân cracker là những người rất nghèo, nghèo tiền, nghèo tình, nhưng chỉ có giàu duy nhất ở một lòng đam mê, luôn luôn tìm tòi khám phá…Thử hỏi nếu không có các cracker thì thế giới IT đâu phát triển…(vì có phá để rồI mới có sửa …rồi bị phá tiếp ke ke).
    Các nhà lập trình chắc chắn rất căm thù cracker, nhưng họ không nghĩ đến chúng ta những người nghèo tiền nhưng giàu lòng đam mê. Đơn cử như hãng SoftTex họ viết ra EV Tran Tech 2.0 nhưng lại bán với giá cắt cổ, 4000000VND, trời ạ tui mỗi tháng má tui gửi cho 1 triệu , trừ các khoản chi phí tui chỉ còn lại vỏn vẹn có 50000, nếu muốn xài Ev Tran tui phải để dành dài cổ luôn…Do đó cách duy nhất là crack nó bằng M-16 thôi…Oh các bác thử tưởng tượng tui chỉ dùng có vỏn vẹn có một lệnh (? Edx )và set hai break point(bpx getwindowtexta, bpx 4xxxBC) : offset xxx các bác tìm nhé:: là tui đã được số returncode . Không phải tui ham crack mà tại họ ép tui đấy chứ.

    II.Những kiến thức cơ bản về sử dụng SoftICE
    Bật cửa sổ SoftICE

    Bạn có thể bật (hiển thị) cửa sổ SoftICE bất kì lúc nào sau khi đã cài SoftICE bằng cách nhấn Ctrl-D, mặc định là vậy, bạn cũng có thể thay đổi bằng lệnh:

    ALTKEY [Alt letter | Ctrl letter]

    Thí dụ nếu bạn muốn dùng Alt-E để bật/tắt SoftICE thay cho Ctrl-D, trong Command Window (khung dưới cùng của SoftICE) nhập:
    ALTKEY Alt E
    Giao diện SoftICE

    Cửa sổ SoftICE được chia làm nhiều khung, nếu bạn cấu hình như file Winice.dat của tui thì chỉ thấy được 4 khung quan trọng nhất:
    • Khung trên cùng là Register Window, hiển thị các giá trị hiện hành của các thanh ghi, sau mỗi câu lệnh thi hành, thanh ghi hay cờ nào bị thay đổi do câu lệnh đó thì màu hiển thị sẽ thay đổi, có màu xanh lá (bình thường là trắng).

    Bạn có thể bật/tắt khung này bằng lệnh WR. Trong Command Window (khung dưới cùng) nhập:
    WR (enter)
    lần thứ nhất sẽ tắt (hay bật) Register Window, gọi lần thứ 2 để bật (hay tắt) nó.

    Để thay đổi giá trị của 1 thanh ghi bất kì bạn có thể dùng chuột kích vào giá trị của thanh ghi cần thay đổi trong Register Window sau đó nhập giá trị cần thay đổi hoặc trong 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ị của thanh 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ớ hiện tại đang tắt, để set nó lên, nhập:
    R FL C
    Tương tự để tắt nó dùng lệnh:
    R FL C
    • Khung thứ hai là Data Windows dùng hiển thị dữ liệu, nếu bạn đã từng sử dụng qua 1 trình biên tập Hex sẽ thấy rất quen thuộc với khung này. Được chia thành 3 cột, cột thứ nhất cho biết địa chỉ trong vùng nhớ của dữ liệu đang hiển thị, cột thứ 2 là giá trị từng Byte dữ liệu (mặc định là vậy, bạn cũng có thể thay đổi để hiển thị kiểu dữ liệu khác) và cột cuối cùng là dữ liệu hiển thị dưới dạng các kí tự ASCII, đối với cột này SoftICE chỉ hiển thị các kí tự in được và không phải là các kí tự đồ họa.

    Bạn có thể dùng chuột để kéo lên 1 hàng hay 1 trang dữ liệu trong cửa sổ này nhờ vào thanh Scrollbar ở cạnh phải của khung. Bạn cũng có thể dùng bàn phím:
    Alt-Up : lên 1 hàng
    Alt-Down : xuống 1 hàng
    Alt-Page Up : lên 1 trang
    Alt-Page Down : xuống 1 trang

    Để bật/tắt Data Window dùng lệnh WD.

    Để thay đổi kích thước (chiều cao) của 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 của Data Window là 20 hàng, trong Command Window nhập:
    WD 20

    Bạn có thể biên tập trực tiếp các giá trị trong Data Window bằng cách kích chuột vào khung Data Windows (hoặc nhấn Alt-D) để chuyển con trỏ vào khung này, sau đó nhập giá trị cần sửa đổi.

    Để thay đổi kiểu hiển thị dữ liệu trong Data Window thí dụ Byte, Word, DWord, Short Real, Long Real hay 10 Byte Real bạn có thể dùng chuột kích vào text hiển thị kiểu dữ liệu hiện dùng nằm phía trên của khung Data Window.
    • Khung thứ 3 là Code Window, hiển thị các lệnh hợp ngữ, được chia thành 3 cột, cột bên trái hiển thị địa chỉ trong bộ nhớ của câu lệnh, cột thứ hai là mã Byte của câu lệnh và cột thứ 3 hiển thị lệnh được disassembly.

    Bạn có thể dùng chuột để kéo lên 1 hàng hay 1 trang dữ liệu trong cửa sổ này nhờ vào thanh Scrollbar ở cạnh phải của khung. Bạn cũng có thể dùng bàn phím:
    Ctrl-Up : lên 1 hàng
    Ctrl-Down : xuống 1 hàng
    Ctrl-Page Up : lên 1 trang
    Ctrl-Page Down : xuống 1 trang

    Để bật/tắt Code Window dùng lệnh WC.

    Để thay đổi kích thước (chiều cao) của 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 của Code Window là 10 hàng, trong Command Window nhập:
    WC 10

    Nếu thấy cột chứa mã Byte của các câu lệnh (cột thứ 2) không cần thiết, bạn có thể tắt nó bằng cách nhập lệnh Code Off trong Command Window, và bật lại bằng lệnh Code On.

    Để di chuyển con trỏ vào trong Code Window bạn nhấn Alt-C

    Câu lệnh nằm trên thanh ngang màu đỏ trong Code Window là câu lệnh đang được thực thi tại thời điểm SoftICE bật lên, và được SoftICE làm "đóng băng" tạm thời.
    • Khung thứ 4 là Command Window dùng để nhập lệnh và hiển thị các thông báo của SoftICE.
    Để xoá các lệnh đã nhập hoặc các thông báo tạo bởi SoftICE trước đó dùng lệnh Cls.

    Để bật/tắt các khung khác trong cửa sổ SoftICE bạn có thể dùng các 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 dưới cùng của cửa sổ SoftICE để hiển thị các trợ giúp tức thời (bên trái) và tên của Process (tiến trình) đang được theo dõi bở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 cũng có thể tạm thoát SoftICE bằng cách nhấn F5 hoặc Ctrl-D.
    Thay đổi kích thước của cửa sổ SoftICE

    Để thay đổi kích thước của 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ị các trợ giúp của SoftICE bạn có thể dùng lệnh H hoặc Help.
    Để nhận được trợ giúp riêng biệt về 1 lệnh nào đó dùng cú pháp sau:

    H [command]

    hay

    Help [command]

    Thí dụ lệnh:
    H AltKey
    sẽ hiển thị các trợ giúp của SoftICE cho lệnh AltKey như sau:
    Set key sequence to invoke window
    ALTKEY [ALT letter | CTRL letter]
    Ex : ALTKEY ALT D
    Khó khăn với SoftICE

    SoftICE là 1 chương trình rất khó chịu, bất kì khi nào bạn thi hành 1 ứng dụng bị lỗi hoặc xung đột với SoftICE, cửa sổ SoftICE sẽ 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 này hay nhấn phím R để trở về SoftICE (con trỏ sẽ xuất hiện lại trong Command Window của SoftICE để cho phép nhập lệnh), bạn nhập lệnh EXIT để nhờ SoftICE ép Process gặp lỗi này thoát cưỡng bức. Nếu sau khi làm như vậy, bạn gặp lỗi màn-hình-xanh( màn hình xanhchết chóc trong Won9x,và WinME), cứ bình tĩnh nhấn Enter hoặc Esc, hệ thống sẽ trở lại bình thường còn nếu hệ thống bị "đóng băng" thật sự, hay chấp nhận điều đó. Nhân vô thập toàn sự vô thập mỹ mà!!!
    III.Dùng Breakpoint (điểm ngắt) trong SoftICE
    Breakpoint là gì và tại sao phải dùng nó?

    Có thể hiểu 1 cách gần đúng Breakpoint tương tự như 1 sự gài bẫy hệ thống. Khi bạn tạo 1 Breakpoint bằng SoftICE (hay các chương trình Debug tương tự khác), bất kì khi nào hệ thống xuất hiện tình trạng mà nó thoả mãn các điều kiện trong Breakpoint của bạn, SoftICE sẽ đóng băng tiến trình xảy ra Breakpoint, và bạn có thể theo dõi tình trạng hiện hành của hệ thống (mã, dữ liệu, các thanh ghi...) nhờ vào cửa sổ của SoftICE.
    Đặt 1 Breakpoint chính xác, đó là điều kiện đầu tiên để bạn có thể trở thành 1 Cracker.

    IV.Giới thiệu về Breakpoint trong SoftICE

    Bạn có thể dùng SoftICE để thiết lập Breakpoint trong mã chương trình đang thi hành, trong thao tác đọc viết vào 1 vị trí bộ nhớ, ngắt (interrupts) và đọc viết tới các I/O ports... SoftICE sẽ gán 1 chỉ số, từ 0 đến FFh cho mỗi Breakpoint được thiết lập. Bạn có thể dùng chỉ số của Breakpoint để nhận diện các Breakpoint khi đặt, xóa, vô hiệu hóa, kích hoạt hay biên tập chúng.
    Tất cả các Breakpoint của SoftICE là bền vững, nghĩa là SottICE sẽ theo dõi và duy trì 1 Breakpoint cho tới khi bạn xoá hoặc vô hiệu hóa nó bằng lệnh BC hay BD. Sau khi xoá các Breakpoint, có thể xem lại chúng bằng lệnh BH, điều này sẽ hiển thị 1 danh sách các Breakpoint đã dùng.
    Trong SoftICE, bạn có thể đặt 1 lần tới 256 Breakpoint. Tuy nhiên, số các Breakpoint Memory (BPM) và I/O (BPIO) không được quá 4, điều này là do hạn chế của bộ vi xử lí x86.
    Những dạng Breakpoint được hổ trợ bởi SoftICE

    SoftICE cung cấp 1 loạt các khả năng Breakpoint đầy sức mạnh như sau:
    • Execution Breakpoints : SoftICE thay thế chỉ thị máy (lệnh) hiện có bởi INT 3. Bạn có thể dùng lệnh BPX để thiết lập Execution Breakpoints.
    • Memory Breakpoints : SoftICE dùng các thanh ghi debug của x86 để ngắt khi 1 hay nhiều Byte/Word/DWord xác định nào đó của bộ nhớ được đọc, viết hoặc thi hành. Bạn dùng lệnh BPM để đặt Memory Breakpoints.
    • Interrupt Breakpoints : SoftICE chặn ngắt (interrupt) bằng 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 các thanh ghi debug mở rộng trên các CPU Pentium và Pentium-Pro để theo dõi các chỉ thị IN hay OUT đến 1 cổng (port) xác định nào đó. Bạn có thể dùng lệnh BPIO để đặt I/O Breakpoints.
    • Window Message Breakpoints : SoftICE bẫy 1 hoặc 1 dãy các thông điệp đi đến 1 cửa sổ xác định. Bạn có thể dùng lệnh BMSG để thiết lập Window Message Breakpoints.
    Các tùy biến cho Breakpoint

    Bạn có thể tùy biến thêm cho các dạng Breakpoint bằng cách dùng 2 tùy chọn sau:
    • Biểu thức điều kiện [IF expression] : Muốn Breakpoint xảy ra biểu thức phải có giá trị khác 0 (True).
    • Hành vi Breakpoint [DO "command1;command2;"] : 1 dãy các lệnh SoftICE sẽ được tự động thi hành khi xảy ra Breakpoint.
    Execution Breakpoints

    1 Execution Breakpoint sẽ chặn các chỉ thị máy thí dụ như 1 lời gọi hàm hay 1 câu lệnh nào đó. Đây là dạng Breakpoint thường dùng nhất. Bằng cách thay thế câu lệnh hiện có bằng 1 lệnh INT 3, SoftICE sẽ lấy được điều khiển khi thi hành Breakpoint INT 3 này.
    Có 2 cách để đặt Execution Breakpoint trong SoftICE : dùng chuột và dùng lệnh BPX.
    Dùng chuột để đặt Breakpoint
    Bạn có thể dùng chuột để đặt hay xóa Breakpoint dạng point-and-shoot (Breakpoint bền vững) và Breakpoint dạng one-shot (Breakpoint chỉ dùng 1 lần).
    Để đặt 1 Breakpoint dạng point-and-shoot, trong Code Window kích đôi vào hàng lệnh mà bạn muốn đặt điểm ngắt. SoftICE sẽ điểm sáng hàng này. Kích đôi hàng này lần nữa để 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 con trỏ đến hàng này sau đó dùng lệnh HERE (hay nhấn phím F7).
    khi thi hành đến hàng lệnh đã được đặt Breakpoint, SoftICE sẽ cho "đóng băng" Process đang theo dõi và bạn có thể theo dõi tình trạng hiện hành của tiến trình này.
    Dùng lệnh BPX để đặt Breakpoint
    Dùng lệnh BPX với các tham số sau để đặt 1 Execution Breakpoint:

    BPX [address] [IF expression] [DO "command1;command2;"]

    Tìm hiểu thí dụ sau để hiểu kĩ hơn về lệnh BPX:

    Chạy Notepad, gõ 1, 2 từ sau đó chọn File.New. Notepad sẽ 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 là xuống hàng.

    Bạn nhấn Cancel.
    Để hiển thị được hộp thông báo trên, Notepad phải gọi API MessageBoxA. Chúng ta đặt 1 Breakpoint sao cho khi Notepad gọi API trên sẽ bị SoftICE cho "đóng băng".
    Vào SoftICE (Ctrl-D), nhập:
    BPX MessageBoxA
    Rời SoftICE (Ctrl-D lần nữa hay nhập lệnh X hoặc bạn nhấn F5), vào Notepad, chọn File.New. Cửa sổ SoftICE sẽ bật lên, chúng ta đang ở điểm vào của API MessageBoxA. Mã mà bạn thấy trên Code Window không phải là mã của Notepad mà là mã của Kernel32.dll được ánh xạ qua vùng nhớ của Notepad, đừng quan tâm đến chuyện đó, nhớ rằng Breakpoint của chúng ta đã làm việc tốt.
    Hãy tìm hiểu kĩ thêm 1 chút, xem mẫu hàm của 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 này nó phải truyền đủ 4 tham số trên qua Stack (nhờ lệnh Push). Để ý kĩ các giá trị trên đỉnh Stack trong lúc này:

    ESP (+ 0h) DWord chứa địa chỉ trở về mã Notepad, tức địa chỉ của câu lệnh kế tiếp lệnh gọi API MessageBoxA trong Notepad
    ESP + 4h hWnd
    ESP + 8h lpText
    ESP + Ch lpCaption
    ESP + 10h uType
    Ghi chú: trong Win32 mỗi lần Push vào stack phải Push 1 DWord (4 Byte), khác với Dos mỗi lần Push chỉ là 1 giá trị 2 Byte.
    Nếu bạn không hiểu những điều tui vừa nói ở trên thì cũng không sao, bạn cứ tạm chấp nhận. Nhưng nếu bạn muốn tìm hiểu kĩ hơn, hẹn gặp lại bạn ở 1 tài liệu khác dạy về lập trình Hợp Ngữ trên Windows, tui sẽ cố gắng viết nhanh để Upload lên cho các bạn.
    Khi SoftICE dừng lại ngay trên điểm vào của API MessageBoxA, nhập:
    D ESP+4
    Theo bảng trên, lệnh này sẽ hiển thị trên Data Window giá trị của tham số hWnd tức Handle của cửa sổ Notepad.
    Trên Data Window, bạn sẽ thấy 4 byte đầu tiên có dạng 'A0 04 00 00' (máy bạn có thể khác), vậy Handle của cửa sô Notepad là 4A0h.
    Tiếp tục nhập lệnh:
    D ESP + 8
    sẽ thấy 4 byte '38 F8 63 00' (tức DWORD 63F838h)

    Nhập:
    D 63F838
    Lệnh này sẽ Dump các Byte tại địa chỉ 63F838h và bạn sẽ thấy dòng text 'The text in the Untitled file has changed.\n\nDo you want to save the changes?'.
    Để ý kĩ các Byte trong cột thứ 2 của Data Window, sẽ thấy chuỗi trên được kết thúc bằng Byte 00h (NULL) và '\n' có giá trị là 0Ah.
    Bạn cũng có thể tìm đến chuỗi trên nhanh hơn bằng cách dùng lệnh sau:
    D @(ESP + 8)
    hay
    D ESP->8
    Ở đây chúng ta phải định vị gián tiếp vì giá trị lpText truyền cho API MessageBoxA là con trỏ trỏ đến chuỗi thông báo trên.
    Để nhanh hơn, đặt 1 Breakpoint như sau:
    BPX MessageBoxA DO "D @(ESP+8)"
    Bạn có thể cho SoftICE thi hành từng lệnh một bằng cách dùng lệnh P (hay nhấn F10) hoặc lệnh T (hay nhấn F8).
    Sự khác nhau giữa 2 lệnh này là ở chổ lệnh P xem 1 lời gọi hàm Call xxxx như 1 lệnh đơn lẻ và cho thi hành toàn bộ thủ tục xxxx được gọi bởi lệnh Call này, sau đó dừng lại ở lệnh kế tiếp ngay sau lệnh Call xxxx, còn lệnh T sẽ nhảy đến dòng lệnh đầu tiên của thủ tục xxxx và dừng lại.
    Lệnh T tất nhiên sâu sắc hơn lệnh P nhưng lúc nào cũng dùng nó thay thế cho lệnh P thì không phải là 1 ý hay, bạn rất dễ bị lệnh này dẫn đến 1 thủ tục không đâu và "quên cả đường về". Điều quan trọng là phải biết lúc nào cần dùng T và lúc nào cần dùng P. Thời gian sẽ dạy cho bạn điều đó.
    Trong Code Window, bạn cũng có thể dùng chuột kích vào 1 dòng mã bên dưới dòng mã hiện đang thực thi để dời con trỏ đến đây, sau đó nhấn F7 (lệnh HERE), khi mã thi hành đến vị trí con trỏ (nếu thực sự mã có thể thi hành đến đúng vị trí con trỏ), SoftICE sẽ dừng lại cho bạn. Đây chính là cách đặt Breakpoint dạng one-shot.
    Nếu bạn đã chán và muốn trở về lệnh ngay sau lệnh gọi API MessageBoxA, nhập lệnh:
    G @SS:ESP
    hay cũng có thể nhấn F11.
    Lệnh trên sẽ kiểm tra khi thanh ghi con trỏ lệnh EIP vươn tới được địa chỉ được chỉ rõ trong SS:ESP, sẽ cho "đóng băng" Notepad ngay lập tức. Như tui đã nói ở trên, DWord tại SS:ESP hiện tại đang chứa địa chỉ trở về của mã Notepad, tức địa chỉ của câu lệnh kế tiếp lệnh gọi API MessageBoxA trong Notepad.
    Nhấn Cancel, chúng ta sẽ quay lại SoftICE, nhìn lên 1 chút, bạn sẽ thấy đoạn mã như 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 4 câu lệnh Push truyền các 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 đang tạo 1 Breakpoint dạng point-and-shoot cho câu lệnh này.
    Vào lại Notepad chọn File.New. Cửa sổ SoftICE bật lên và chúng ta dừng ngay trên câu lệnh 'Call [USER32!MessageBoxA]'. Breakpoint của ta đã làm việc!.
    Để xoá hết các Breakpoint đã đặt dùng lệnh
    BC *
    Một số thao tác trên các Breakpoint

    Vô hiệu hóa Breakpoint
    Dùng lệnh:

    BD list | *

    Trong đó:
    • list : 1 dãy các số hiệu Breakpoint ngăn cách nhau bởi dấu phẩy hoặc khoảng trắng.
    • * : vô hiệu hóa tất cả các Breakpoint.
    Thí dụ lệnh:
    BD 1,3
    sẽ vô hiệu hóa Breakpoint có số hiệu 1 và 3.
    Kích hoạt lại Breakpoint
    Dùng lệnh:

    BE list | *

    Lệnh BE sẽ kích hoạt lại 1 hoặc 1 dãy các Breakpoint đã được vô hiệu hóa trước đó.
    Thí dụ lệnh:
    BE 3
    sẽ kích hoạt lại Breakpoint 3.
    Danh sách các Breakpoint đã đặt
    Để hiển thị danh sách các Breakpoint đã đặt dùng lệnh BL.
    Xóa Breakpoint
    Dùng lệnh:

    BC list | *

    Thí dụ lệnh:
    BC 1
    sẽ xóa Breakpoint có số hiệu 1, tương tự lệnh:
    BC *
    sẽ xóa tất cả các Breakpoint.
    Memory Breakpoints

    1 Memory Breakpoint dùng các thanh ghi debug trên các CPU từ 386 trở lên để theo dõi sự truy cập vào 1 vị trí bộ nhớ xác định. Dạng Breakpoint này rất hữu dụng để phát hiện khi nào và ở đâu 1 biến trong chương trình bị thay đổi và còn dùng để đặt các Execution Breakpoint trong vùng nhớ chỉ đọc. Bạn chỉ có thể đặt tối đa 4 Memory Breakpoint trong 1 lần bởi vì CPU chỉ có 4 thanh ghi debug.
    Bạn có thể dùng lệnh BPM để đặt Memory Breakpoint:

    BPM[B|W|D] address [R|W|RW|X] [ debug register] [IF expression]
    [DO "command1;command2;"]

    Trong đó:
    • BPM và BPMB : đặt Breakpoint tại 1 Byte bộ nhớ xác định.
    • BPMW : đặt Breakpoint tại 1 Word (2 Byte) bộ nhớ xác định.
    • BPMD : đặt Breakpoint tại 1 DWord (4 Byte) bộ nhớ xác định.
    • R, W và RW : sẽ ngắt khi xảy ra thao tác đọc, viết hoặc cả 2
    Nếu bạn không chỉ rõ, mặc định sẽ là RW.
    • X : ngắt nếu thi hành, mạnh hơn dạng Breakpoint BPX vì bộ nhớ không cần phải sửa đổi.
    • Debug register : chỉ rõ thanh ghi debug sẽ dùng.
    Một lệnh đặt Memory Breakpoint khác hay dùng hơn là lệnh BPR, dùng để đặt Breakpoint cho 1 đoạn bộ nhớ. Cú pháp:

    BPR start_address end_address [R | W | RW | T | TW] [IF expression]
    [DO"command1;command2;"]

    Bất kì khi nào xảy ra thao tác đọc, viết hay cả hai (tùy theo bạn đặt, nếu bạn không chỉ rõ, mặc định sẽ là viết) trong khoảng bộ nhớ từ start_address đến end_start sẽ làm phát sinh 1 Breakpoint.
    Window Message Breakpoints

    Dùng Window Message Breakpoint để chặn 1 hoặc 1 dãy các thông điệp đi đến 1 thủ tục giải quyết thông điệp Window (WinProc). Mặc dù cũng có thể làm được điều này nếu dùng BPX với 1 biểu thức điều kiện nhưng dùng lệnh BMSG thì vẫn dễ hơn:

    BMSG window-handle [L] [ begin-message [ end-message]] [IF expression]
    [DO "command1;command2;"]

    Trong đó:
    • window-handle : giá trị định danh cửa sổ, được trả về khi cửa sổ được tạo thành. Bạn có thể dùng lệnh HWND để lấy danh sách các cửa sổ kèm theo Handle của nó.
    • L : cho biết thông tin về thông điệp Window bắt được chỉ cần in ra trong Command Window mà không cần phải bật cửa sổ SoftICE lên.
    • begin-message : thông điệp Window đơn lẻ hay là thông điệp có số hiệu thấp nhất trong dãy các thông điệp Window muốn theo dõi. Nếu bạn không chỉ rõ dãy thông điệp với 1 end-message, thì chỉ begin-message sẽ gây ra ngắt. Cả 2 begin-message và end-mesage có thể được ghi dưới dạng tên hoặc số hiệu của nó thí dụ WM_QUIT và 12h là tương đương.
    • end-message : thông điệp có số hiệu cao nhất trong dãy các thông điệp Window cần theo dõi.
    Nếu không có thông điệp hoặc dãy các thông điệp nào được chỉ rõ, bất cứ thông điệp nào cũng sẽ gây ra ngắt.
    Bạn có thể dùng lệnh WMSG để lấy danh sách các thông điệp Window mà SoftICE biết.
    Nếu bạn biết tên thông điệp nhưng không biết số hiệu của nó, có thể tìm được số hiệu của nó bằng cách dùng lệnh sau:

    ? tên_thông_điệp
    Thí dụ để biết số hiệu của thông điệp WM_TIMER, nhập lệnh:
    ? WM_TIMER
    Thử thực hành thí dụ sau:
    Mở Notepad. Sau đó nhập lệnh:
    HWND

    SoftICE sẽ hiển thị danh sách các cửa sổ kèm theo các thông tin khác (thí dụ tên lớp cửa sổ, địa chỉ Window Procedure...). Bạn có thể thấy giá trị Handle của các cửa sổ nằm ở cột đầu tiên. Chúng ta chỉ quan tâm giá trị Handle của cửa sổ Notepad. Ở máy tui giá trị này là 190h (máy bạn có thể khác). Nhớ lấy giá trị này.

    Để chỉ hiển thị các thông tin cửa sổ của riêng Notepad, bạn có thể dùng lệnh:
    HWND Notepad
    Chúng ta đặt 1 Breakpoint để theo dõi tất cả các thông điệp đi đến cửa sổ chính của Notepad:
    BMSG 190 L
    Tham số L sẽ khiến cho SoftICE chỉ in thông tin về thông điệp bắt được trong Code Window mà không cần bật cửa sổ SoftICE lên.

    Rời SoftICE (Ctrl-D), trong Notepad, bạn thao tác gì đó (thí dụ gõ 1, 2 từ, thay đổi kích thước cửa sổ...), sau đó quay lại SoftICE, trong Code Window sẽ hiển thị tất cả thông tin về các thông điệp do Windows gởi đến cửa sổ Notepad mà SoftICE bắt được.
    Để bắt 1 thông điệp riêng biệt, thí dụ WM_SIZE bạn dùng lệnh sau:
    BMSG 190 WM_SIZE
    Trở lại Notepad, bạn thử thay đổi kích thước cửa sổ của nó (thí dụ phóng to hay thu nhỏ cửa sổ Notepad), khi đó Windows sẽ gởi đến cho Notepad 1 thông điệp WM_SIZE, SoftICE sẽ bật lên và bạn sẽ thấy nó dừng ngay trên điểm vào của thủ tục Window giải quyết thông điệp cho cửa sổ chính Notepad.

    V.Một số hàm API thường được đặt Breakpoint khi Crack
    Phần lớn là các API trong các thư viện: gdi32.dl, kernel32.dll, user32.dll...
    Liên quan đến File

    CreateFileA
    ReadFile
    WriteFile
    GetPrivateProfileStringA
    WritePrivateProfileStringA
    Liên quan đến Registry

    RegCreateKeyA
    RegDeleteKeyA
    RegOpenKeyA
    RegCloseKey
    RegQueryValueA
    Liên quan đến hộp thoại và cửa sổ

    CreateDialogIndirectParamA
    CreateDialogParamA
    MessageBox
    MessageBoxA
    MessageBeep
    CreateWindow
    CreateWindowExA
    ShowWindow
    Liên quan đến chuỗi

    GetWindowText
    GetWindowTextA
    GetDlgItemText
    GetDlgItemTextA
    CompareString
    lstrcmp
    lstrcmpA
    lstrcmpi
    lstrcmpiA
    Liên quan đến ngày giờ

    GetSystemTime
    GetLocalTime
    SystemTimeToFileTime
    Liên quan đến kiểm tra đĩa

    GetDriveType
    GetDriveTypeA
    GetLogicalDrives
    GetLogicalDriveStringsA
    Các hàm đặc biệt khác

    HMEMCPY
    Thường hay dùng nhất là HMEMCPY, GetDlgItemTextA, GetWindowTextA, MessageBoxA

    - Các "function" mà bạn có thể "túm" được ở SoftIce khi Crack các Softwear, trong softIce bạn gõ như sau EXP ( EXP = Display Export Symbols). Ví dụ : EXP Message
    1. USER : MESSAGEBOXINDIRECT, MESSAGEBOX, MESSAGEBOXEX, MESSAGEBEEP ...
    2. USER32 : MESSAGEBEEP, MESSAGEBOXA(rất hay dùng), MESSAGEBOXEXA, MESSAGEBOXEXW, MESSAGEBOXINDIRECTA, MESSAGEBOXINDIRECTW, MESSAGEBOXW ...
    3. Ðọc và ghi File : READFILE, WRITEFILE, CREATFILEA, SETFILEPOITER ...
    4. Kiểm tra Registry : REGCREATKEYA, REGDELETEKEYA, REGQUERYVALUEA, REGCLOSEKEYA, REGOPENKEYA ...
    5. Nhập thông số (hay dùng để tìm Serial hay Key..): GETWINDOWTEXTA, GETDLGITEMTEXTA, GETDLGITEMINT...
    6. Kiểm tra thời gian : GETLOCALTIME, GETSYSTEMTIME, GETFILETIME...
    7. Kiểm tra ổ đĩa CD-ROM hay A (hay dùng để Crack CD-Game) : GETDRIVETYPEA(rất hay dùng), GETLOGICALDRIVESA, GETLOGICALDRIVESTRINGA...
    Và cuối cùng là cái mạnh nhất (dùng cho tất cả các Break point trên) : HMEMCPY(hay dùng để tìm serial với các Softwear viết bằng VB.
    Sau khi biết được Soft dùng breakoint nào bạn hãy "gọi" nó ra bằng lệnh : BPX (BPX= Breakpoint on eXecution), Ví dụ: BPX HMEMCPY.
    - Các lệnh để xem số Serial : D, DB, DW, DD, DS, DL, DT.... Quan trọng nhất là DD

    Bai viet cua hacnho from HVA-www.hackervn.org/forum (xin vui long de dong nay khi ban trich dan lai--thanx a lot)

    -------Hết Phần III---Trong phần III tôi sẽ hướng dẫn các bạn làm sao để crack một chương trình bằng WDASM893 và Hacker Views602, và hướng dẫn crack file crack me của CU TI
    *************************************:
    Thay đổi nội dung bởi caothean; 01-01-2009 lúc 19:33. Lý do: font chữ lớn hơn cho dễ đọc

  6. Có 21 thành viên cảm ơn caothean cho bài viết này:
    boilan (18-05-2010), bvchauthanh (09-01-2011), daine (05-02-2011), genji_94 (19-07-2011), hadicohn (11-11-2011), hoahongxanh_smt (29-08-2011), huynam721 (09-10-2011), khicong88 (26-05-2009), kkkkkiil (17-01-2010), leanhmoc (07-07-2009), lequangminhdl (23-11-2009), mnbvc01 (29-02-2012), myzoom88 (30-12-2008), nevercry1 (24-07-2011), nhatbinh (27-12-2008), phantanbao (04-01-2009), polygram (14-04-2011), saubay42 (04-04-2012), telbook (29-12-2008), teochrome (11-10-2011), trunghieu14589 (01-01-2009)

  7. #4
    nhatbinh's Avatar
    nhatbinh vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Jan 2008
    Đến từ
    la cà nhà hàng xóm ;))
    Bài
    138
    Cảm ơn
    79
    Điểm
    94/37 bài viết

  8. #5
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default

    Vẫn còn nhiều phần lắm, mỗi ngày mình sẽ post một bài, các bạn đọc kĩ từng bài nhé. Có công mài sắt có ngày nên kim !

  9. Có 1 thành viên cảm ơn caothean cho bài viết này:
    myzoom88 (30-12-2008)

  10. #6
    dangnghia's Avatar
    dangnghia vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Jan 2008
    Đến từ
    Bạn đang sống ở đâu?
    Bài
    471
    Cảm ơn
    68
    Điểm
    560/146 bài viết

    Default

    Viết thế này bố thằng Tây nào biết đâu là trọng tâm, đâu là chủ đề chính hả bạn. Trình bày thế này khó hiểu bạn ạ

  11. #7
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default

    Trích dangnghia View Post
    Viết thế này bố thằng Tây nào biết đâu là trọng tâm, đâu là chủ đề chính hả bạn. Trình bày thế này khó hiểu bạn ạ
    Mình giải thích hé : Phần I là giới thiệu tổng quan những thứ cần thiết, còn phần II post hôm nay là để giới thiệu cách dùng SOFTICE cơ bản nhất đó, các bạn hãy đọc kĩ và kiên nhẫn nhé, có nhiều chông gai và cũng lắm thú vị khi đi trên con đường "đen tối"

  12. Có 3 thành viên cảm ơn caothean cho bài viết này:
    myzoom88 (30-12-2008), nevercry1 (24-07-2011), phananhnd (30-05-2012)

  13. #8
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm-chi tiết, cụ thể

    tiếp theo
    PHẦN III :

    Xin chào, chúng ta lại gặp nhau…Trong bài viết này tôi sẽ hướng dẫn sử dụng WDASM893 và Hacker Views602. Hai công cụ không thể thiếu của một cracker

    I.Giới thiệu WDASm

    Nếu như ví SoftIce là khẩu M-16 thì WDASM là một khẩu Beretta đạn bạc. Vì WDASM sẽ giúp bạn rất nhiều trong việc crack phần mềm mà bạn không cần dùng SoftIce…Bây giờ tôi sẽ hướng dẫn các bạn cách sử dụng cơ bản nhất, muốn hiểu rõ hơn bạn hãy mở phần help của nó nhé

    1.Disassembly vớI WDASM:

    a.Disassembly File

    Muốn disassembly file nào(nhớ chọn dạng file thích hợp thường là *.exe, *.dll), từ menu Disassembly ta chọn Open file to disassembly…chọn file cần disassembly…
    *-Lưu ý trong submenu Disassmbly Options bạn nên đánh dấu chọn cả ba dòng
    -Enable Conditional Jump X Preferences
    -Enable Uncondional Jump X Preferences
    -Enable Call X Preferences
    *-Nếu bản WDASM của bạn đã patch (cho phép DASM VB), trong sub menu Patch Options, bạn đánh dấu chọn auto hoặc on trong dòng Enable và đánh dấu cả hai checkbox Line Prefix, Values trong dòng Copy Selected Lines

    b.Quick Edit
    Nếu bản của bạn đã fixed thì bạn sẽ có một menu Edit trên thanh công cụ, submenu Quick Edit giúp bạn có thể chỉnh sửa file trực tiếp trên nền của WDASM mà không cần dùng tớI HIEWS-Quá tiện lợI phảI không? Muốn chỉnh sửa file tạI location nào ta chỉ cần double click tạI dòng đó, xong chọn QuickEdit—Trong của sổ của Quick Edit có các khung sau:

    -RVA Word : nhập vào location cần tớI, xong nhấn Goto
    -Original Bytes: Bytes trước khi chỉnh sửa
    -Modify Bytes: Bytes sau khi chỉnh sửa
    -Save: lưu lạI Bytes sau khi chỉnh sửa
    -Run: Chạy file đang chỉnh sửa
    -Delete: xoá

    c.Goto location:

    trong ô Code Offset (hex) nhập vào location rồI enter để đến location vừa nhập. Ví dụ 00401000. Chức năng này thường dùng khi bạn dùng SoftIce kiếm được tử huyệt của soft đang crack …

    d.String Data References:

    là nơi rất quan trọng để crack phần mềm , vì nơi đây là nơi hiện ra các thông báo thông thường của các soft(nhưng đôi khi tác giả phần mềm cố ý mã hoá nó đi…Nhưng không sao cả ta có cây M-16 SoftIce). Một mẹo nhỏ cho các bạn. nếu muốn patch phần mềm thì nên tìm những thông báo tương tự như "Incorrect Password...", "Wrong Serial...", "Re-enter password..." , xong rồI các bạn di chuyển vệt sáng lên phía trên nhé, dịch chuyển xuống dướI là ngu luôn đấy ke ke ke ở tù đấy---nhất là dưới 16 tuổi


    -------bấy nhiêu đó thôi,mỏi tay quá, nếu muốn biết chi tiết các bạn nên xem phần help của WDASM nhé---------

    II.GiớI thiệu Hacker Views 602

    HIEWS là một chương trình Hexa Editor rất mạnh, hoạt động tương tự như Norton Commader5.0 for DOS của Symantec, các phím tắt cũng như NC5. Nó được ví như đạn dược vì dùng SoftIce,WDASM chỉ tìm offset còn nhiệm vụ cuối cùng vẫn là dùng Hviews để kill soft.Trời ạ súng mà không có đạn thì chết chắc rồi còn gì. Tuy M-16 (SoftICe) có một vũ khí đó là lưỡi lê (hàm aeip-chỉnh sửa trực tiếp trên soft Ice), nhưng chỉ dùng cho một số trường hợp đặc biệt thôi...

    - Muốn chuyển ổ đĩa hiện hành nhấn Alt + F1,
    - F4 để chọn chế độ trong bảng Select Mode: Text, Decode,Hex…bạn có thể nhấn Enter cũng được
    - F7 dùng để search
    - F5, gõ vào địa chỉ Offset và enter
    - F3 dùng để chỉnh sửa,
    - F2 dùng để chỉnh sửa vớI một ô lớn hơn, tương tự như menu Quick Edit của WDASM
    - F9 để lưu,
    - F10 để thoát, hoặc đơn giản là bạn nhấn ESC
    ----HIEWS rất dễ dùng bạn hãy tự khám phá thêm nhé---------------

    ***Một số lưu ý nhỏ***

    Khi bạn tìm được tạI một location một offset thì bạn hãy nhìn xuống dưới thanh taskbar những chữ số hexa sau chữ @ (trừ chữ h đi nhé) đó chính là địa chỉ offset trong HIEWS đó
    Ví dụ tạI địa chỉ 004013AF tôi sẽ có một offset là @00007Afhà thì 00007AF chính là địa chỉ offset trong HIEWS
    -------------------------------------------------------------------------

    để các bạn có thể hiểu sơ lược về các dùng của ba phần mềm SOFTICE,WDASM,HIEWS tôi xin hướng dẫn các bạn crack một crack me của anh nicehacker…ở đây tôi chỉ bày cho các bạn phương pháp patch nó thôi…Còn phương pháp tìm được serial thì bạn tự tìm hiểu nhé

    -------------------------------------------------------------------------------------------

    Chào các bạn...chắc hẳn không ít các bạn đã buông tay chịu trói trước file crk me HVA_UNPACKED.exe...he he...Nếu các bạn chưa tìm được số serial thì tôi xin bày cho các bạn phương pháp để patch file crk me này, chứ riêng tôi thì mỗi lần tôi gõ đại vào ô serial một con số bất kỳ thì nó hiện lên " wrong serial .. " phát bực mình he he...Mục đích tôi là làm sao cho nó hiện lên thông báo "Good job,and now make a keygen "...Tôi không nêu phương pháp tìm serial tuy nhiên dựa vào bài víêt này các bạn sẽ tìm được số serial... he he mong các đàn anh tha tội vì em đã patch nó ke ke ke

    Công cụ: SoftIce Driver Suite 2.6, Wdasm893 fixed, Hiew602
    Patcher : hacnho

    Lưu ý: do CuTi rất ma lanh là đã mã hoá nên các dòng thông báo như "Wrong serial" không hiện lên trong String Data References của WDASM nên không thể dùng WDASM trực tiếp được nên tôi phải dùng SofIce để tìm các hàm call gọi ra cái nag đó...


    Đầu tiên các bác chạy file hva_unpacked.exe, nhập vào một số serial bất kỳ, tôi nhập vào số serial là 123456, khoan nhấn Ok, gõ Ctrl+D để vào SoftIce (nếu dùng SoftIce Driver Suite 2.6 phải start softice trên thanh start trước), gõ vào bpx GetDlgItemTextA, enter, nhấn Ctrl+D, để ra khỏi SoftIce sau khi đã đặt một break point, nhấn nút Ok trên fiel crk me HVA_UNPACKED.exe. Ta lại vào SoftIce, các bác nhấn F10 cho đến khi thấy thông báo " wrong serial.." nhẩy lên che khuất màn hình SoftIce, Lúc này các bác phải tinh mắt nhìn thấy khi ta nhấn F10 vệt sáng di chuyển đến dòng có chữ
    Call User32! MessageBoxA
    004011AB Popad > he he đây chính là thông báo đáng ghét đó,

    các bác nhớ lấy nó, sau đó gõ bc *( xoá Break Point), F5 để thoát...
    mở WDASM, mở crk me đó lên, vào goto location 004011AB...Các bác sẽ nhìn thấy như vầy

    * Referenced by a (U)nconditionnal or ©conditional Jump at Adresses:
    |:004010C6©, : 004011110©, :00401119©...

    :00401197 61 popad >>Gọi thông báo đúng khi các bác nhập vào serial đúng
    :00401198 6A00 push 00000000
    :0040119A 68CE304000 push 004030CE

    .....
    * Referenced To : user32.MessageBoxA, Ord:0000h
    :004011A6 E845000000 call 004011F0
    :0004011AB 61 popad >>he he Gọi thông báo wrong serial đó...

    các bác đọc tới đây chắc cũng hiểu một phần phải không? Nên biết crk me này chỉ có hai thống báo khi nhập serial, một là thông báo "good job..", hai là thông báo "wrong serial..." Do đó ta có hai cách patch là hoặc tất cả những câu lệnh nhảy trong phần so sánh số serial ta đều đổi ngược lại hoặc là ta đổi từ popad 0004011AB sang 00401197 trong các câu lệnh nhảy...
    để cho newbie dễ hiểu tôi chọn cách một đó là đổi câu lệnh nhảy trong phần so sánh serial đều ngược lại hết...

    Nhắc lại phần trên, khi các bác goto location 0004011AB rồi, vệt sáng sẽ nằm tại dòng
    :0004011AB 61 popad...
    hãy di chuyển chuột lên trên chừng 20 dòng các bác sẽ thấy

    *Reference To: user32.GetDlgItemTextA, Ord: 0000h

    :00401109 E8D6000000 Call 004011E4
    :0040110E 85C0 Test eax,eax >> kiểm tra serial
    :00401110 0F8481000000 je 00401197 >>nếu đúng, nhảy tới thông báo "good job"


    yeah, vần đề nằm ở đây...hãy ghi nhớ tất cả những địa chỉ offset có chữ jne...Cụ thể là 5 địa chỉ


    1.00000519
    2.00000535
    3.0000054C
    4.00000563
    5.0000057C


    đóng WDASm lại, dùng Hiew mở HVA_UNPACKED.exe lên,

    gõ F5, gõ 00000519, nhấn F3, đổi 75 thành 74
    gõ F5, gõ 00000535, nhấn F3, đổi 75 thành 74
    gõ F5, gõ 0000054C, nhấn F3, đổi 75 thành 74
    gõ F5, gõ 00000563, nhấn F3, đổi 75 thành 74
    gõ F5, gõ 0000057C, nhấn F3, đổi 75 thành 74

    nhấn F9 để lưu, F10 để thoát...
    Mở lại file HVA_UNPACKED xem, gõ vào số serial gì nó cũng hiện lên thông báo "Good job,and now make a keygen xxxxxx"...he he he

    Chú ý : xxxxxx: số serial tầm bậy mà các bác nhập vào



    Bài viết này tôi viết dùng để giúp các bạn học tập...Nếu bạn chưa rành về số serial, thì hãy tập patch...hiện nay có nhiều phần mềm chỉ patch được, chứ ít crk được...Có thể thí dụ là Winrar3x...Ngô Vĩnh Hoàng là một crker khá quen thuộc với dân xài đồ chùa Việt Nam, cũng thường pacth chứ đâu có crk hoàn toàn đâu...Crk hay patch cũng được (theo tôi) miễn sao là mình đạt tới mục đích là xài được một phần mềm nào đó miễn phí mà không phải trả tiền...

    Nhân đây tôi cũng post lên một bài của bác luucorp tut crack Crackme#1 của Softcracker_vn bên vncracking để các bạn tham khảo, ai cần source crackme thì PM me

    ----------------------------------------------------------
    Huong dan viet KEYGEN OF: crackme#1.exe


    Tools()
    ---------
    1. Hview ©SEN --> HVI
    2. W32DASM V8.93 --> W32
    3. crackme#1.exe --> C#1

    HeLp()
    --------
    1)deprotect:

    Dau tien ban cu thu load C#1 trong W32 xem no ra sao, nhu thuong le bam vao menu Refs/.., ca 3 muc ( Menu.., Dialog.., String.. ) deu trang ca. (khong van de gi), thoat khoi menu va ta tiep tuc an F10:

    Ta toi doan code sau:

    :00401000 PUSH 0 ;
    * Reference To:KERNEL32.GetModuleHandleA, Ord:0000h
    |
    :00401002 CALL 4068A3
    :00401007 MOV DWORD PTR [4070FB],EAX
    :0040100C XOR EAX,EAX
    :0040100E MOV AX,67
    :00401012 PUSH 0
    :00401014 PUSH 0040102C ;
    :00401019 PUSH 0
    :0040101B PUSH EAX
    :0040101C PUSH DWORD PTR [4070FB]

    * Reference To: USER32.DialogBoxParamA, Ord:0000h
    |
    :00401022 CALL 40686d

    * Reference To: KERNEL32.ExitProcess, Ord:0000h
    |
    :00401027 CALL 4068a9


    Doan ma tren la bo khung cua chuong trinh, phan rau ria nam o phia sau, tiep tuc keo xuong phia duoi va dung lai khi den doan ma sau:

    :004011D6 enter 0000,00
    .
    .
    :004011DF cmp bye ptr [4070FA],0 ---|
    :004011E6 jmp 004011E9 <---- khong on

    Ban doc doan ma nay, thay co dieu gi do khong on thi phai lam gi co chuyen vua cmp xong da jmp (la qua di mat), thuong sau cmp se la jnz, jz , jne, je, jnb,... hoac la jxx khac. Do vay ta thu tim xem co cai jxx nao ma xx<>mp (jxx <> jmp) o doan ma duoi khong, tot nhat ta nen vao HVI.

    Trong HVI nhay toi .004011E6. Keo xuong 1 it ban thay tai:
    .00401232: jne .00401C80 <--
    co jne<>jmp roi, nhu the thi doan ma giua cmp va jne no lam cai quai gi?
    ban tiep tuc keo xuong phia duoi ban thay co nhieu doan co ma tuong tu
    nhu doan ma tren (ma giua cmp,jne).
    va...
    Theo thong ke cua toi thi, C#1 chi co 3 mau code duoc lap lai 1 cach kha don gian:

    mau1[19]=(235,1,131,156,235,1,213,235,8,53,157,235,1,137,2 35,3,11,235,247);
    mau2[24]=(96,232,3,0,0,0,131,235,14,235,1,12,88,235,1,53,6 4,235,1,54,255,224,11,97);
    mau3[24]=(235,1,227,96,232,3,0,0,0,210,235,11,88,235,1,72, 64,235,1,53,255,224,231,97);

    Chuong trinh C#1 duoc viet theo kieu:

    lenh1: vao ten
    mau1[19]
    lenh2: kiem tra ten
    mau2[24]
    lenh3: vao serial
    mau1[19]
    mau3[24]
    .
    .

    co nghia la mau1[19],mau2[24],mau3[24] co hoac khong chang anh huong gi. ki thuat co ten "muta code", duoc su dung trong 1 so virus (tu nhung nam <=95). vi vay, de cho ma duoc sang sua chung ta hay don sach 3 mau tren bang canh: tim 3 mau tren va dien (nop=90h=khong lam gi). toi da viet 1 chuong trinh de thu hien viec tren (uprotect.PAS).

    {deprotect.pas}
    type
    m24=Array[1..24] of Byte;
    const
    p19: Array[1..19] of Byte =(235,1,131,156,235,1,213,235,8,53,157,235,1,137,2 35,3,11,235,247);
    p24: m24 =(96,232,3,0,0,0,131,235,14,235,1,12,88,235,1,53,6 4,235,1,54,255,224,11,97);
    c24: m24 =(235,1,227,96,232,3,0,0,0,210,235,11,88,235,1,72, 64,235,1,53,255,224,231,97);
    var f:file;
    buf:m24;
    i,j,m,n:integer;
    se:longint;
    begin
    write('Please wait.');
    assign(f,'CrackMe1.EXE');
    reset(f,1);
    se:=$7e6; {}
    repeat
    seek(f,se);
    fillchar(buf[1],24,0);
    blockread(f,buf[1],24,j);
    for m:=1 to 19 do {p19}
    if buf[m]<>p19[m] then begin m:=1;break;end;

    for i:=1 to 24 do {p24}
    if buf[i]<>p24[i] then begin i:=1;break;end;

    for n:=1 to 24 do {c24}
    if buf[n]<>c24[n] then begin n:=1;break;end;

    buf[1]:=$90; {fill nop}
    seek(f,se);
    if m<>1 then
    begin
    for m:=1 to 19 do
    blockwrite(f,buf[1],1);
    inc(se,m)
    end else
    if i<>1 then
    begin
    for i:=1 to 24 do
    blockwrite(f,buf[1],1);
    inc(se,i);
    end else
    if n<>1 then
    begin
    write('.');
    for n:=1 to 24 do
    blockwrite(f,buf[1],1);
    inc(se,n);
    end else
    inc(se);
    until j<24; {that's all}
    close(f);
    writeln('OK.');
    end.

    2)keygen:
    Truoc tien ban chay deprotect.exe (o phan I). Khi da deproctect thi van de viet keygen la kha don gian (doi voi C#1). Ta load C#1 trong W32, va bat dau: Ta lai bam vao menu Refs/.., van trang. Nhu vay thi may xau(string) thong bao (not corect serial) o dau roi ? ban nghi no duoc bao ve? dung roi do: ban hay xem doan ma sau:
    :004011DF:
    .
    . (**)
    .
    :00401C80
    kha dai day, nhung viec no lam lai rat don gian:

    mov esi,40702E
    @loop:
    mov al,[esi]
    je @end
    xor al,43
    mov [esi],al
    inc esi
    jmp @loop
    @end

    (doan ma tren toi da luoc bo nhung lenh khong can thiet cua C#1) C#1 da bao ve xau(string) bang cach XOR chung voi 0x43.
    bay gio ta unXOR va luoc bo doan ma (**) xem sao: vao HVI co 2 viec:
    1.dien nop=0x90 vao (**)
    2.unXOR (40702E)

    viec 1: dien toan bo 0x90 tu .004011DF -> .00401C80
    (hoac dat 1 lech jmp 1280 tai .004011DF)
    viec 2:
    thuc hien kha thu cong hoac ban tu viet 1 ct lam dieu nay.
    [40702e+i] = [40702e+i]^0x43 (i=0..203=0xCC-1)

    Xong 2 viec tren la lai load C#1 trong W32, lai vao Refs/.., ai cha cai gi day co 1 muc da bat sang: ta click vao (String Data References) va cong viec con lai la cua ban. toi da doc va viet duoc keygen sau.

    {keygen.pas}
    var
    ten: string;
    i,w: byte;
    crc,se: longint;
    begin
    asm mov ax,3;int $10;end;
    writeln('----'#13#10'Crackme#1 for softcracker_vn - Keygen by dactrung'#13#10'----');
    write('Name: ');readln(ten);
    write('Code: ');
    crc:= 0;
    for i:= 1 to length(ten) do
    begin
    w:= ord(ten[i]);
    if not(ten[i] in ['A'..'z']) then
    w:= (w mod 10)+ ord('A')+ (w div 10);
    if w<$61 then w:=w+ $20;
    w:= w-$61;
    crc:= (crc shl 1)+ w;
    end;
    crc:=crc xor $17021995;
    se :=crc xor $43545CD1; {magic number}
    se :=se xor $26051976;
    write(se);
    readln;
    end.

    thanks,
    dactrung



    -----------------------------------------------------
    Bai viet cua hacnho from HVA (xin vui long de dong nay khi ban trich dan lai--thanx a lot)


    ------Het Phan III ----
    Trong phần 4 sẽ đưa ra cho các bác một tut về các kỹ năng cơ bản để trở thành một cracker, cũng xin thông báo với các bác là từ phần 4 trở đi kèm theo mỗi bài hướng dẫn sẽ kèm theo hai bài hướng dẫn crack một soft, một game hay crackme...trong đó một bài do tôi crack và một bài nữa tôi sưu tầm do các đại ca crack...
    Thay đổi nội dung bởi caothean; 01-01-2009 lúc 20:26. Lý do: font chữ lớn hơn cho dễ đọc

  14. Có 7 thành viên cảm ơn caothean cho bài viết này:
    hoahongxanh_smt (29-08-2011), huynam721 (09-10-2011), lequangminhdl (23-11-2009), mnbvc01 (29-02-2012), myzoom88 (30-12-2008), nevercry1 (24-07-2011), polygram (14-04-2011)

  15. #9
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm-chi tiết, cụ thể

    Các bạn tiếp tục nhé ! (nhớ là các bài hướng dẫn mình trích từ HAV online đem về cho các bạn tham khảo chung với mình):

    Phần IV: Làm sao để crack được một soft…

    Chào các bạn, chúng ta lại gặp lại nhau… Trong phần IV này chúng ta sẽ bàn đề vấn đề chính đó là làm sao để crack được một phần mềm bằng WDASM và Hacker Views ??? (không dùng SoftIce).
    He he he câu hỏi thật dễ nhưng mà trả lời không dễ chút nào…!!! Tôi cũng như các bạn khi tập tễnh bước vào làng crack cũng phải toát mồ hôi mới crack được một phần mềm. Sau đây là một số kinh nghiệm bản thân tôi khi muốn crack một phần mềm bằng WDASM và Hacker Views .

    Chú ý: Trong bài này tôi có tham khảo bài viết của anh HOAVELU—Thanx for support

    I. Tổng Quát:

    Trên thị trường phần mềm hiện nay có rất nhiều phần mềm, chủng loại thật đa dạng và phong phú…Mỗi ngày lại có nhiều phần mềm mới ra đời, bản thân những phần mềm đã xuất hiện cũng luôn luôn nâng cấp lên version mới…Do đó cách crack luôn luôn phải linh động , không được lấy y chang cái cũ mà áp dụng cho cái mới…Sẽ thất bại ngay!!!

    Ví dụ: Với phần mềm Winzip ver 8.0 bạn có thể dùng SoftIce tìm đến dòng 00407AA3 LEA EAX,[EBP-0140] , sau đó đánh vào D EBP-0140 là tìm được số serial tương ứng với user name nhập vào…Nhưng với Winzip 8.1 , nếu bạn áp dụng y chang như cách đối với Winzip 8.0 sẽ chẳng được gì…Do đó bạn hãy dùng chính cái đầu của mình hơn là áp dụng một cách máy móc như con vẹt nhưng cái đã học

    II. Cài Đặt

    Hầu hết (khoảng 70%) phần mềm đều cài đặt xong rồi ta mới crack…(Tuy nhiên có những phần mềm bắt nhập license khi setup như Window, Photoshop Visual Studio…thì ta sẽ bàn sau). Sau khi cài đặt xong bạn hãy chạy soft cần crack sau đó ghi nhớ thông báo bắt đăng ký hay nhập license code, user code v.v.

    III. Unpack

    Một số soft được tác giả nén lại, vì sợ crack…ke ke ke, đơn cử như Vietkey 2000 . Bạn phải xem coi chương trình có được nén(pack) lại hay không. Nén ở đây không có nghĩa là được nén bằng WinZip hay WinRAR mà file .EXE được nén nhỏ lại mà vẫn có thể chạy được bình thường không cần giải nén. Để biết file có bị nén hay không, bạn phải xem mở file .EXE đó ra để xem đoạn mã của nó. Ở đây tôi dùng WinNC, chọn file cần xem và nhấn F3. Thông thường, nếu file đã bị nén thì nó sẽ có 1 dòng đặc trưng trong file bị nén ở đầu file. Chẳng hạn như được nén bằng ASPack thì (thường) trong file sẽ có chuỗi "aspack". Nén bằng UPX thì sẽ có dòng "UPX...". Còn đối với shrink thì có chữ "shrink". Tuy nhiên, cũng có một vài công cụ giúp ta giải nén (unpack) mà không cần biết file được nén theo dạng nào, đó là nó tự động nhận dạng. Tuy nhiên, nếu dạng được nén không được hỗ trợ thì nó cũng đành bó tay. Tiêu biểu cho loại này là ProcDump32, nó hỗ trợ khá nhiều dạng phổ biến như ASPack, Code Safe 3.X, PC Guard 2.10, PE Compact, PKLITE... bạn có thể chọn "*unknown*" để chương trình tự động nhận dạng.
    Ngoài ra, có thể chương trình còn được bảo vệ bởi 1 đoạn mã bảo vệ (Security Code). Đây là một đoạn mã dùng để bảo vệ chương trình tránh bị debug (anti-debug) hay thay đổi kích thước. Đối với loại này, chúng ta cũng có một số chương trình để bỏ phần Security Code đó, có thể kể ra là : Anti Crypt, UnCode Crypt, tEunlock...

    IV. Bắt tay vào crack

    *.Bước 1: sau khi chạy chương trình bạn hãy ghi nhận lại những thông báo bắt đăng ký đại loại như “Enter Registration Code”, Register, evalution copy, unregistered version…v.v và v.v

    *.Bước 2: Nhấn vào và nhập vào đại một số Serial/Unlock Code/Registration Code bất kỳ…Sau đó nó sẽ hiện lên một nag báo rằng chúng ta đã nhập sai, yêu cầu nhập lại…Không sao, hãy ghi lại dòng thông báo mà bạn nhận được khi nhập sai như : “Incorrect Password...", "Wrong Serial...", "Re-enter password ... "

    *.Bước 3:

    Chạy W32Dasm, chọn "Open file to Disassembler..." hay nhấn trên thanh công cụ cũng được.
    _ Chọn file cần Crack.
    _ Trên menu Refs, chọn String Data References. Tại sao ta phải làm như vậy, bạn hãy xem đoạn mã sau :

    Nếu "Serial bạn gõ vào" = "Serial chương trình" thì <---- Ta sẽ Patch chỗ này
    Nhảy đến đăng ký bản quyền
    Còn không
    Nhảy đến bảng thông báo "Incorrect password..." <------- Bạn cần ở đây trong W32Dasm

    Bây giờ, nếu nó kêu là sai thì mình cho nó thành đúng :
    Nếu "Serial bạn gõ vào" <> "Serial chương trình" thì <----- Chỗ đã được patch
    Nhảy đến đăng ký bản quyền
    Còn không
    Nhảy đến bảng thông báo "Incorrect password..." <-------- Bạn cần ở đây trong W32Dasm

    Còn bây giờ bạn cần biết một chút về assembler (vì chương trình sẽ được W32Dasm dịch ra assembler mà
    Viết lại trong assembler đoạn code trên sẽ tương tự như :
    cmp eax, eax <----- So sánh số serial/unlock code...
    jne [Địa chỉ 1] <----- Nhảy đến thông báo số đăng ký đúng hoặc sai
    call [Địa chỉ 2] <----- Nhảy đến thông báo ngược lại

    Bây giờ, giả sử [Địa chỉ 1] là nhảy đến thông báo đã được đăng ký và [Địa chỉ 2] nhảy đến thông báo "Incorrect password..." thì ta sẽ phải sửa lại đoạn code như sau :
    cmp eax, eax
    je [Địa chỉ 1] <------ Chỗ đã được Patch
    call [Địa chỉ 2]

    Trong assembler, câu lệnh nhảy được biết đến là :
    je = Jump if equal : Nhảy nếu bằng
    jne = Jump if not equal : Nhảy nếu không bằng

    Vì vậy, thông thường "je" được đổi thành "jne" và ngược lại.
    Trở lại với chương trình của chúng ta, đi tìm chuỗi "Incorrect password..." là chúng ta đã đến bảng thông báo "Incorrect password...". Kiếm bằng cách vào menu Refs/String data references của W32Dasm, tìm chuỗi "Incorrect password..." và nhấn kép vào nó (hy vọng là có . Lúc này, W32Dasm đưa chúng ta đến bảng thông báo chưa đăng ký rồi, nhiệm vụ của chúng ta là phải kiếm được nơi có chứa lệnh nhảy đến bảng thông báo này. Hãy dời con trỏ lên cho tới khi nào kiếm thấy dòng "je ..." hay "jne..." thì dừng lại ở đó. Còn nếu thấy dòng :

    * Reference ....
    :000... <---- để ý địa chỉ này

    thì hãy dừng lại đó vì bảng thông báo đã được gọi từ 1 địa chỉ khác, nhấn Shift-F12 (hay vào menu Goto/Goto Code Location), nhập vào dãy số000... sau dòng "* Reference..." rồi Enter.
    Lặp lại các bước dò như trên cho đến khi nào thấy được dòng "je..." hay "jne..."
    Cuối cùng, khi đã kiếm được rồi thì hãy nhìn xuống thanh status bar, bạn sẽ thấy 1 chuỗi số ngay sau "@Offset ...00...". Nhớ lấy chuỗi số đó, và đừng quên là bỏ chữ "h" cuối cùng đi, vì đây là chữ biểu hiện cho số HEX.

    *.Bước 4:

    Đóng W32Dasm lại. Mở HView ra, nhấn F4, chọn Decode, nhấn F5, đánh vào giá trị00... bạn thu được ở "@Offset...00..." lúc nãy và Enter, HView đưa bạn đến ngay đúng dòng bạn nhìn thấy trong W32Dasm và còn chờ gì nữa, patch nó đi. Nhấn F3, rồi F2 (tôi chọn cách này để giúp Newbie dễ hiểu hơn vì đôi lúc không phải lúc nào giá trị cũng là 74 và 75). Sửa "jne..." thành "je..." và "je..." thành "jne..."
    _ Cuối cùng, nhấn F9 để Save chương trình và F10 để thoát, bạn chạy lại chương trình và nhập số đăng ký bất kỳ thử xem sao, nếu may mắn, bạn sẽ nhận được thông báo "Thanks for ..." , hehe, và đừng quên lưu 1 bản .EXE để đề phòng sự cố trước khi Patch .

    Mẹo : Nếu không tìm thấy dòng "Incorrect password..." thì bạn thử đi ngược lại là đi từ dòng "Thanks for..." hay "Registered..." xem .
    Đây là cách đơn giản nhất để Patch chương trình, ngoài ra còn có thể dùng SoftICE, VBDe, DeDe, SmartCheck... cái đó để hỗ trợ crack soft là tùy ở bạn . Bạn có thể nâng cao "tay nghề" bằng cách viết keygen hoặc bằng 1 số thủ thuật khác như "spy memory" .



    Chú ý : Ngoài hai câu lệnh ASM cơ bản bạn nên biết một số câu lệnh khác như : Call, Popad, Test, Nop ( bạn có thể tham khảo trong phần phụ lục của tôi)


    V. Bài tập crack đầu tiên cho bạn

    Để minh hoạ cho phần lý thuyết trên chúng ta hãy tập crack một phần mềm khá quen thuộc với người Việt Nam, đó là bộ gõ Vietkey...Trên thị trường hiện nay đã có bản Vietkey build 11220, nhưng bản đó được pack lại bằng UPX, detect Si nên tôi không hướng dẫn các bạn crack nó, mà chúng ta hãy tập crack phiên bản Vietkey409e...Các bản Vietkey409,409d đã được các anh NVH©, Nguyễn Mạnh Cường hướng dẫn, nhưng bây giờ trong tay tôi chỉ có bản Vietkey409e trong CD PHP software #1, và mặc dùng bác Phạm Hồng Phước có cho bản crack, nhưng khi mở Vietkey409e lên tôi thấy " License to Rockman", tò mò tôi thử xoá file VKNT.LIC thì lập tức hiện lên bảng thông báo bắt đăng ký với tác giả he he, vậy là tay Rockman này hắn chỉ tìm số serial cho riêng mình hắn, do đó bạn không thể đăng ký license cho mình, không biết các bạn cảm giác sao chứ tôi rất bực mình khi phải xài phần mềm do người khác crack ke ke ke...Từ đó hôm nay tôi sẽ hướng dẫn các bạn crack Vietkey409e chấp nhận mọi serial, dù cho bạn có xoá file VKNT.LIC

    Công cụ : WDASM893, HIEWS602 (mới hơn càng tốt)
    Phần mềm : Vietkey409e
    File cần crack : VKNT.EXE
    Cracker : hacnho


    Đầu tiên các bạn chạy Vietkey409e, tức thì một loạt nag hiện ra đập liên tiếp vào mặt bạn " Vietkey chua dang ky su dung, lien he tac gia", sau một hồi bắn ra một loạt nag, nó hiện ra một dòng chữ " Unregistered Version" trên thanh tiêu đề của Vietkey409e...Sau đó bạn đánh dấu kiểm vào check box " Đăng Ký Sử Dụng" or " Registration", vào đó nhập vào User Nam, và License Code, enter, oh la la, một nag bắn ra " Invalid Number", Bạn ghi nhớ lấy nó...

    Okie, sau khi tắt Vietkey409e bạn dùng WDASM mở file VKNT.EXE trong thư mục cài đặt. chờ cho WDASM disassembly xong bạn bắt đầu vào menu menu Refs, chọn String Data References, kiếm cho ra dòng có chữ " Invalid Number", double click vào nó, đóng cửa sổ String Data References lại, lúc này bạn sẽ thấy như sau :

    *. Reference To: USER32. GetDlgItemTextA, Ord : 00EDh
    |
    :00403000 FFF15D4934000 Call dword ptr [004093D4]
    :00403006 8D4DCC lea ecx, dword ptr [ebp-34]
    :00403009 51 pussh ecx
    :0040300A 56 push esi

    *. Reference To: KERNEL32.lstrcmpA, Ord : 00269h
    |
    :0040300B FF15C8924000 Call dword ptr [004092C8] =>Gọi hàm kiểm tra License Code
    :00403011 85C0 test eax, eax ==> kiểm tra License Code
    :00403013 743D je 00403052 ==>Nếu nhập đúng, nhảy đến thông báo " License to.."
    :00403015 833D1877400000 cmp dword ptr [00407718], 00000000

    *. Possible StringData Ref from Data Obj ->"Go"

    :0040301C B8187C4000 mov eax, 00407C18
    :00403021 7505 jne 00403028 ==> Sai, nhảy đến thông báo "Invalid Number"

    *. Possible StringData Ref from Data Obj ->"Invalid Number"


    :00403023 B89C704000 mov eax,00407C9C

    Oh yeah, chúng ta đã tìm ra chỗ cần crack rồi phải không các bạn, chúng ta chỉ cần đổi 2 chỗ, --một là ( :00403013 743D je 00403052 ==>Nếu nhập đúng, nhảy đến thông báo License to " ) ==> Cái mà ta cần crack ở đây là, dù cho ta nhập vào số serial gì nó cũng chịu và hiện ra bảng Lincense to...
    --hai là, chúng ta không cho hiện ra bảng " Invalid number" đồng nghĩa với chuyện bảng thông báo " Liên hệ tác giả" cũng không hiện ra luôn he he (:00403021 7505 jne 00403028 ==> Sai, nhảy đến thông báo "Invalid Number")

    Ở đây chúng ta cần đổi hai bytes:

    1. bytes thứ nhất chúng ta đổi câu lệnh nhảy ngược lại tức là từ je ( nhảy nếu bằng) thành jne (nhảy nếu không bằng)...các bạn di chuyển vệt sáng đến dòng :00403013 743D je 00403052, nhìn xuống dưới thanh task bar của WDASM bạn thấy một địa chỉ offset 0002413 (bỏ chữ h đi nhé), nhớ lấy nó...Mở HIEWS ra, tìm đến file VNTK.EXE (thường là ở ổ C, alt+F1 để chuyển ổ đĩa), nhấn F5, gõ vào 0002413 , nhấn F3, đổi 74 thành 75. Nhấn F9 để lưu, F10 để thoát

    2. bytes thứ hai chúng ta đổi câu lệnh nhảy ngược lại tức là từ jne ( nhảy nếu không bằng) thành je (nhảy nếu bằng)...các bạn di chuyển vệt sáng đến dòng 00403021 7505 jne 00403028, nhìn xuống dưới thanh task bar của WDASM bạn thấy một địa chỉ offset 0002421 (bỏ chữ h đi nhé), nhớ lấy nó...Mở HIEWS ra, tìm đến file VNTK.EXE (thường là ở ổ C, alt+F1 để chuyển ổ đĩa), nhấn F5, gõ vào 0002421 , nhấn F3, đổi 75 thành 74. Nhấn F9 để lưu, F10 để thoát...

    bây giờ mở lại Vietkey, đăng ký, hay xoá file VKNT.LIC xem, bạn sẽ thích ngay mà ha ha ha,

    ----------------------
    thật ra tôi còn một chiêu khác là đổi je thành EB nhưng không chỉ cho các bạn vì chúng ta chỉ mới học...Nếu hứng thú bạn có thể tự nghĩ ra cách để crack bản Viekey409e này, bằng SoftIce (dùng hàm getdlgitemtexta),
    ---------------------

    Bài viết của hacnho from HVA (vui lòng để lại dòng này khi trích dẫn, thanx alot)----------------------------


    Thế là chúng ta đã đi hết phần IV rồi phải không các bạn, hy vọng các bạn sẽ hiểu nhiều hơn về nghệ thuật crack, trong phần sau tôi sẽ hướng dẫn các bạn về keygen, và chúng ta sẽ học crack PC security 5.0, Chúng ta sẽ học crack xen kẽ một phần mềm Việt nam với một phần mềm nước ngoài...Và dĩ nhiên là chúng ta cũng sẽ học crack những trò game nổi tiếng như Empire, Cossack, Haft Life...
    Thay đổi nội dung bởi caothean; 01-01-2009 lúc 20:27. Lý do: font chữ lớn hơn cho dễ đọc

  16. Có 9 thành viên cảm ơn caothean cho bài viết này:
    dinhcuc2010 (04-08-2011), hoahongxanh_smt (29-08-2011), huynam721 (09-10-2011), longl123 (21-10-2011), myzoom88 (30-12-2008), nguyenson1992 (09-09-2011), pdtg50 (29-12-2008), polygram (14-04-2011), telbook (29-12-2008)

  17. #10
    pdtg50's Avatar
    pdtg50 vẫn chưa có mặt trong diễn đàn Rìu Chiến
    Tham gia
    May 2008
    Đến từ
    Thiên Đàn
    Bài
    2.004
    Cảm ơn
    791
    Điểm
    494/340 bài viết

    Default

    hết chưa huynh
    muốn crack được cũng không phải dễ nhỉ

  18. #11
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default

    Trích pdtg50 View Post
    hết chưa huynh
    muốn crack được cũng không phải dễ nhỉ
    ừa, chúng ta có tổng cộng 8 phần, và các bài giới thiệu crack một số phần mềm, và phụ lục về các hàm API nữa. Kiên nhẫn nhé anh !

  19. Có 2 thành viên cảm ơn caothean cho bài viết này:
    myzoom88 (30-12-2008), telbook (29-12-2008)

  20. #12
    telbook's Avatar
    telbook vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Aug 2008
    Đến từ
    The Earth 1
    Bài
    92
    Cảm ơn
    123
    Điểm
    42/34 bài viết

    Default

    bác ơi.. sao dài thế.có thể làm thành file up lên được không?
    chứ đọc trên mạng thế này thì toét mắt mất.
    đọc cả buổi tối mà vẫn chưa hết..
    chân thành cảm ơn.....
    Hic hic vừa ốm dậy.lâu rồi k vào diễn đàn.
    Sao chả thấy thay đổi lớn gì vậy ta??

  21. #13
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default

    Trích telbook View Post
    bác ơi.. sao dài thế.có thể làm thành file up lên được không?
    chứ đọc trên mạng thế này thì toét mắt mất.
    đọc cả buổi tối mà vẫn chưa hết..
    chân thành cảm ơn.....
    chà, lúc đầu tui cũng tính làm file rồi up lên cho mấy bác down về xem, nhưng bác hãy tin tui, hãy kiên nhẫn đọc từng bài, mỗi ngày tui post 1 bài, cứ nghĩ nếu có tất cả thì bác sẽ lôi ra đọc cho hết đúng không ? Vậy kết quả sẽ khác đó. Chính vì vậy tui muốn các bác hãy nghiên cứu mỗi bài trong ít nhất là một này, đọc đi đọc lại sẽ mau thành công hơn, xong rồi bác có thể copy rồi save vào máy tính để đọc lại khi nào muốn mà ! Vậy hé !

  22. Có 3 thành viên cảm ơn caothean cho bài viết này:
    myzoom88 (30-12-2008), nhocbinh (11-05-2009), suzu1992 (25-05-2012)

  23. #14
    caothean's Avatar
    caothean vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Sep 2008
    Đến từ
    An Giang
    Bài
    139
    Cảm ơn
    123
    Điểm
    414/69 bài viết

    Default hướng dẫn crack phần mềm-chi tiết, cụ thể

    nào tiếp tục, các bạn hãy kiên nhẫn đọc từng bài rồi suy ngẫm nhé, vội vàng khó thành công !
    Phần V

    Chào các bạn, đáng lẽ bài hôm nay sẽ hướng dẫn các bạn khái niệm về keygen nhưng vì chắc các bạn cũng cũng chưa rành cách crack lắm nên bài này sẽ tiếp tục hướng dẫn các bạn cách crack một số phần mềm để cho quen dần…sau đó mới tiếp tục nâng cao trình độ là viết keygen…-------------------

    Như thường lệ chúng ta sẽ đi qua phần lý thuyết một chút. Bài viết này sẽ hướng dẫn các bạn một chút về các câu lệnh asm đơn giản

    Chú ý : Trong bài viết này, phần lý thuyết tôi có tham khảo bài viết của một fan vicki
    ---------------------
    I. Lý Thuyết

    Tính offset của lệnh JMP, JX, JNX & CALL


    I. Lý thuyết

    1. Giới thiệu

    Xin chào các bạn! Trong bài viết này tôi muốn giải thích với các bạn cách tính toán offset của các câu lệnh JUMPS và CALL. Bạn sẽ thường xuyên tính toán offset của các câu lệnh này trong reverse. Đặc biệt, hiểu được cách tính cũng giúp bạn tiếp cận với kĩ thuật làm mù điểm vào host trong virus (EPO - EntryPoint Obscrured) một cách dễ hơn!

    2. Các loại câu lệnh JUMPS & CALL

    Ở đây tôi chỉ mô tả sự khác biệt của các câu lệnh JUMPS & CALL mà bạn thường gặp!

    a) Short Jumps: nhảy ngắn có hoặc không có điều kiện đều là 2 byte. Bạn chỉ có thể nhảy tới 127 byte hoặc nhảy lùi 128 byte với các short jumps

    b) Long Jumps: nhảy dài, 6 byte cho có điều kiện hoặc 5 byte cho không điều kiện

    c) Calls: 5 byte ở dạng short

    * Đây là bảng mã máy mô tả sự khác biệt giữa các loại JUMPS & CALLS

    Jump Description Short Op-Code Long Op-Code
    call procedure call E8xxxxxxxx N/A
    jmp unconditional jump EBxx E9xxxxxxxx (nhảy không có điều kiện)
    ja/jnbe jump if above 77xx 0F87xxxxxxxx (nhảy nếu lớn hơn)
    jae/jnb/jnc jump if above or equal 73xx 0F83xxxxxxxx (nhảy nếu lớn hơn hoặc bằng)
    jb/jc/jnae jump if below 72xx 0F82xxxxxxxx (nhảy nếu bé hơn)
    jbe/jna jump if below or equal 76xx 0F86xxxxxxxx
    (nhảy nếu bé hơn hoặc bằng)
    jcxz/jecxz jump if cx/ecx equals zero E3xx N/A
    je/jz jump if equal/zero 74xx 0F84xxxxxxxx
    jne/jnz jump if not equal/zero 75xx 0F85xxxxxxxx
    jg/jnle jump if greater 7Fxx 0F8Fxxxxxxxx (nhảy nếu nhiều hơn)
    jge/jnl jump if greater or equal 7Dxx 0F8Dxxxxxxxx
    (nhảy nếu nhiều hơn hoặc bằng)
    jl/jnge jump if less 7Cxx 0F8Cxxxxxxxx (nhảy nếu ít hơn)
    jle/jng jump if less or equal 7Exx 0F8Exxxxxxxx (nhảy nếu ít hơn hoặc bằng)
    jno jump if not overflow 71xx 0F81xxxxxxxx (nhảy nếu không tràn)
    jnp/jpo jump if no parity/parity odd 7Bxx 0F8Bxxxxxxxx
    jns jump if not signed 79xx 0F89xxxxxxxx
    jo jump if overflow 70xx 0F80xxxxxxxx (nhảy nếu tràn)
    jp/jpe jump if parity/parity even 7Axx 0F8Axxxxxxxx
    js jump if sign 78xx 0F88xxxxxxxx
    (vì để các bạn dễ hiểu nên caothean tui đã dịch tạm ra Tiếng Việt, có sai sót mong thông cảm, và cũng SR HAV vì chưa xin phép sửa)
    Vấn đề của chúng ta là cần tính các số xx và xxxxxxxx trong mã máy

    3. Tính toán offset

    * Công thức: OFFSET = địa chỉ của nơi đến - (địa chỉ nơi jumps/calls + kíck thước của câu lệnh jumps/calls)

    * Ví dụ:

    a) Bạn đang ở tại địa chỉ 40108E. Bạn cần đặt một lệnh nhảy đến địa chỉ 4020D0 tại địa chỉ này

    :40108E JMP 4020D0

    Offset = 4020D0 - [40108E + 5(E9xxxxxxxx có kích thước 5 byte)] = 103D. Mã máy sẽ là E93D100000, trong đó E9 là mã máy của JMP và 3D100000 là số xxxxxxxx mà bạn vừa tính được (0000103D viết ngược lại sẽ là 3D100000)

    b) Bạn cần đặt một lệnh CALL đến địa chỉ 401184 tại địa chỉ 40218B

    :40218B CALL 401184

    Offset = 401184 - [40218B + 5(E8xxxxxxxx có kích thước 5 byte)] = FFFFEFF4. Mã máy sẽ là E8F4EFFFFF, trong đó E8 là mã máy của CALL và F4EFFFFF là số xxxxxxxx mà bạn vừa tính được (FFFFEFF4 viết ngược lại sẽ là F4EFFFFF)

    II. Thực hành

    Bạn đã dùng Notepad! Mỗi lần mở file có kích thước vượt quá 64KB, Notepad sẽ hiển thi một hộp thông báo "Lỗi: File có kích thước quá lớn. Bạn có muốn dùng WordPad để đọc file này không?" - Yes | No . Nhiệm vụ của chúng ta là patch file notepad.exe để mỗi khi mở file có kích thước lớn hơn 64KB nó sẽ không hiển thị hộp thông báo trên nữa và tự động mở file bằng WordPad cho bạn. Trước khi bắt đầu mọi việc, bạn hãy sao lưu file notepad.exe trước đề phòng sự cố! Thật ra thì cũng không cần thiết bởi bạn có thể dùng SFC(System File Checker) của Windows để restore lại file notepad.exe bất cứ lúc nào. Trong ví dụ này tôi dùng bản Notepad của Windows98SE.

    1/ Chạy W32Dasm. Sau khi dism file xong, bạn vào menu Ref/String Data References, tìm dòng String Resource ID=00056: "wordpad.exe" và double click lên nó. Để xem chúng ta có gì nào?!

    * Possible Reference to String Resource ID=00036: "&f"
    |
    :004033A5 6A24 push 00000024 ; rất quan trọng
    :004033A7 A1B4504000 mov eax, dword ptr [004050B4]
    :004033AC 56 push esi
    :004033AD 50 push eax
    :004033AE FF7508 push [ebp+08]

    * Reference To: USER32.MessageBoxA, Ord:01ACh
    |
    :004033B1 FF15A8644000 Call dword ptr [004064A8] ; hiện messagebox
    :004033B7 83F806 cmp eax, 00000006 ; đã chọn YES hay NO? (IDYES=6)
    :004033BA 0F85A7000000 jne 00403467 ; NO -> thoát
    :004033C0 6804010000 push 00000104 ; YES -> mở file bằng WordPad
    :004033C5 8D858CFDFFFF lea eax, dword ptr [ebp+FFFFFD8C]
    :004033CB 837D1001 cmp dword ptr [ebp+10], 00000001
    :004033CF 1BFF sbb edi, edi
    :004033D1 50 push eax
    :004033D2 83C737 add edi, 00000037

    * Possible Reference to String Resource ID=00056: "wordpad.exe"
    |
    :004033D5 6A38 push 00000038
    :004033D7 FF3540554000 push dword ptr [00405540]
    Chúng ta chỉ cần thay PUSH 00000024 tại địa chỉ 4033A5 thành lệnh nhảy ngắn đến địa chỉ 4033C5. Mã máy của short jump là EBxx. May mắn là kích thước của short jump này là 2 byte, đúng bằng kích thước của câu lệnh PUSH 00000024 tại địa chỉ 4033A5 (6A24)! Áp dụng công thức tính offset ở trên, xx = 4033C0(địa chỉ đến) - [4033C5(địa chỉ jump) + 2 (kích thước của short jump EBxx)] = 19. Okay, mã máy sẽ là EB19!

    6A24 PUSH 00000024
    EB19 JMP 004033C0

    2/ Chạy Hiew và mở file notepad.exe. Nhấn F4, F5 và nhập vào ".4033A5". Nhấn F3 và thay đổi 6A24 thành EB19, sau đó bấm F9 và F10. Xong, thử chạy lại Notepad và mở một file có kíck thước lớn hơn 64KB xem sao!

    -------------------------------------------------------------------------

    II. Thực hành

    Vì phần lý thuyết có lẽ khá phức tạp đối với các bạn newbie, nên trong phần thực hành chúng ta sẽ giải trí với phần một phần mềm khá nổi tiếng của hãng EURONET đó là phần mềm Hanami…Một phần mềm trang trí cho desktop…Nó làm một cây anh đào ngay trên desktop, sao đó những cách hoa đào sẽ rơi nhè nhẹ xuống thanh taskbar…Lâu lâu lại có một cơn gió thổi qua làm nhưng cánh hoa đào cuốn theo chiều gió bay thật đẹp…

    Đẹp thì có đẹp đó…Nhưng “thằng Hanami” này bắt bạn phải đăng ký…Nếu bạn không đăng ký thì mỗi lần bạn chạy chương trình nó sẽ đập vào mặt bạn một cái nag “ Not registered…hanami is shareware….” thật bực mình…Dĩ nhiên là bạn không muốn cái nag đó hiện ra chứ gì…Đúng vậy…Nhu cầu bức thiết là chúng ta phải crack nó…Ok Sau khi tải về (từ site euronet), bạn cài đặt, copy một bản hanami.exe ra dự phòng, rủi làm bậy còn có cái mà backup lại…Okie chúng ta bắt đấu crack nó.

    Phần mềm : Hanami (

    Công cụ : Windasm, Hiew
    Cracker : hacnho

    Đầu tiên bạn chạy hanami, một cái nag “ Not registered…hanami is shareware….” Văng ra, bạn hãy nhớ dòng “…shareware”, click ok…Sau đó bạn vào bạn click vào nút lệnh (command button) “ Register…”, một cái nag khác văng ra bắt bạn nhập vào “ your name”, “keyword”, “Registration Code”

    …He he bạn đừng tưởng bở là cái “ keyword” không có tác dụng nhe…Tuy phần mềm rất nhỏ nhưng tác giả lại đặt một cơ chế tạo key phức tạp nhiêu khê…Nếu dùng SoftIce để tìm số code thì hơi lâu…Nên tôi dùng phương pháp đơn giản là patch nó

    hãy nhập vào tên, keyword và Registration Code. Ở đây tôi nhập vào

    Your name : hacnho
    Keyword :123456
    Registration Code: abcdef

    Enter, oh la la một nag văng ra “ Error…The registration code entered is incorect”…Ok hãy nhớ lấy nó, bạn hãy thoát hanami.

    Bây giờ chúng ta mở WDASM lên, chọn file Hanami.exe…chờ WDASM disassembly xong bạn vào menu Refs, chọn String Data References, kiếm cho ra dòng “The registration code entered”, double click vào nó hai lần…Bạn trở lại màn hình của nhìn xem chúng ta đang ở đâu…bạn sẽ thấy như thế này:

    * Possible String Ref from Data Obj -->"The registration code entered"
    -->"is incorect"

    :0040886C 68E8424100 push 004142E8
    :00408871 8B4D08 mov ecx, dword ptr [ebp+08]
    :00408874 51 push ecx

    * Refenrence To: USER32.MessageBoxA, Ord :01BEh


    :00408875 FF1534124100 Call dword ptr [00411234]
    :0040887B EB5A jmp 004088D7


    Bây giờ bạn thấy vệt sáng đang ở tại
    :0040886C 68E8424100 push 004142E8
    hãy dịch chuyển vệt sáng lên trên vài dòng bạn sẽ thấy như sau

    *. Possible String Data Ref from Data Obj --> " "
    :0040884F 68B0384100 push 004142E0
    :00408854 E827140000 call 00409C80
    :00408859 83C408 add esp, 00000008
    :0040885C E828FEFFFF call 0040869 --> gọi thông báo đăng ký
    :00408861 85C0 test eax, eax -->kiểm tra số code
    :00408863 7518 jne 0040887D--> nhảy nếu sai (chổ cần crack, nhớ lấy)
    :00408865 6A00 push 0000000

    đưa vệt sáng đến dòng :00408863 7518 jne 0040887D, nhìn xuống thanh task bar thấy offset là : 00008863 (1)

    Trở lại bảng menu Refs, chọn String Data References, bạn tìm dòng " Hanami is a shareware program", double click...Chúng ta lại ra ngoài, Bạn sẽ thấy như sau


    * Possible String Ref from Data Obj -->" Hanami is a shareware program"
    :004014DE 68583F4100 push 00412F58 -->bạn đang ở đây
    :004014E3 A1CC584100 mov eax, đwor ptr [004158CC]
    :004014E8 50 push eax


    * Refenrence To: USER32.MessageBoxA, Ord :01BEh

    :004014E9 FF1534124100 call dword ptr [004011234]


    hãy dịch chuyển lên và dòng, bạn thấy

    *. Referenced by a (U)nconditional or ©onditional Jump at Address:
    |:004014B4©
    |
    :004014CE 833DF053410000 cmp dword ptr [0040153F0], 00000000
    :0040014D5 7518 jne 004014EF --> nhảy nag "Not Registered Yet", cần crack
    :004014D7 6A00 push 00000000

    *.* Possible String Ref from Data Obj -->"Not Registered Yet"
    :004014D9 push 00413F44

    bạn hãy di chuyển vệt sáng đến dòng :0040014D5 7518 jne 004014EF, nhìn xuống task bar, thấy offset là 000014D5 (2)

    ***từ (1) và (2) ta có hai địa chỉ offset là 00008863 , và 000014D5, do jne nghĩa là nhảy nếu không bằng, từ là bạn nhập sai thì sẽ nhảy tới thông báo sai, do đó ta cần crack ở chổ đổi cho nó dù nhập sai thì sẽ không nhảy...vậy thì ta chỉ cần đổi jne thành je ( 75 thành 74)

    Ok bây giờ bạn hãy ghi lại hai offset trên, mở Hiew, mở file hanami.exe lên

    Gõ F5, nhập 00008863, gõ F3, sửa 75 thành 74, gõ F9
    Gõ F5, nhập 000014D5, gõ F3, sửa 75 thành 74, gõ F9, gõ F10

    Okie bây giờ bạn ở Hanami lại xem, bạn sẽ thích ngay mà ha ha ha
    -----------------
    bài viết của hacnho (vui lòng để lại dòng này khi bạn trích dẫn--thanx a lot)
    -------------------

    trong phần 6 tôi sẽ hướng dẫn các bạn dùng các công cụ crack engine như file patcher 2002, và đặc biết là crack engine của anh Lê Vũ Hoàng,
    **************************************:

    Thay đổi nội dung bởi caothean; 01-01-2009 lúc 20:32. Lý do: font chữ lớn hơn cho dễ đọc

  24. Có 11 thành viên cảm ơn caothean cho bài viết này:
    hoahongxanh_smt (29-08-2011), huynam721 (09-10-2011), lequangminhdl (23-11-2009), mnbvc01 (29-02-2012), myzoom88 (30-12-2008), ngocthinhpro (15-08-2010), nguyenson1992 (09-09-2011), nhocbinh (11-05-2009), polygram (14-04-2011), suzu1992 (25-05-2012), vandongproduct (28-09-2012)

  25. #15
    myzoom88's Avatar
    myzoom88 vẫn chưa có mặt trong diễn đàn Rìu Chiến Bạc
    Tham gia
    Sep 2008
    Đến từ
    không ổn định
    Bài
    3.477
    Cảm ơn
    1.256
    Điểm
    6.670/1.407 bài viết

    Default

    Trích caothean View Post
    mình đang tham gia một topic nhận tìm crack và serial cho các bạn có yêu cầu. Mà mình nghĩ nếu như các bạn cứ thích xài .. chùa hoài cũng đâu hay đâu, đúng không ? Hôm nay mình lang thang trên mạng thì bắt gặp một bài viết rất hay trên HAV online , mod ở đó nhiệt tình thật, mình xin chia sẻ bài viết hướng dẫn crack phần mềm cho các bạn. Bài viết gồm nhiều phần nên mình sẽ post lần lượt cho các bạn xem, mong là nó hữu ích. Bắt đầu nhé !
    Do mình đang thi nên chưa có thời gian để nghiên cứu nó kĩ, có gì thắc mắc các bạn hãy đọc lạ thật kĩ nhé, các soft nói trong bài có thể tìm trên google ! Thân!
    thank hết mình
    Tải Portable App http://tinyurl.com/ltcy7x4 hoặc http://tinyurl.com/l2l9975 Windows Siêu Mượt http://tinyurl.com/2cah39h hoặc http://tinyurl.com/nf6uw7p

  26. Có 2 thành viên cảm ơn myzoom88 cho bài viết này:
    congtu22 (19-04-2012), huyhoang88 (11-03-2009)

 

 
Trang 1/9 1 2 3 ... cuốicuối

Quyền sử dụng

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể tự sửa bài viết của mình
  •