Crack phần mềm bằng Ollydbg đang là phương pháp được rất nhiều bạn tìm hiểu. Vậy nên hôm nay chúng tôi xin đưa đến các bạn nội dung hướng dẫn cách crack phần mềm bằng Ollydbg thông qua nội dung dưới đây:
Một số chức năng chính của Olly:
- Trace registers, switches, find loops, API calls.
- Tải và debug các dll modules
- Cho phép thêm comment và label của riêng của mình trong chức năng để dành cho chú thích và trực quan
- Attack một chương trình nào đó đang chạy
- Tìm các address range và constant 1 cách dễ dàng
- Cho phép thêm các breakpoints (điểm dừng) để thuận tiện debug và theo dõi
- Đặt các Breakpoint hardware
- Tìm kiếm string
- Xem các hàm API được gọi
- Cho phép tạo file dump của quá trình
- Edit và mặc nhiên sửa lỗi
- Debug từng bước chương trình (Step-by-Step)
Tổng quan chương trình
Ngay khi khởi chạy chương trình, các bạn có thể nhìn thấy giao diện của Ollydbg được chia thành 5 cửa sổ hết sức trực quan
Cửa số 1: CPU
Đây là cửa sổ làm việc chính và sử dụng thường xuyên của chương trình. Cửa sổ này bao gồm 4 cột:
- Cột 1: Address: Hiển thị địa chỉ của âu lệnh trong vùng nhớ
- Cột 2: Hex dump: Hiển thị mã Opcode của câu lệnh đó
- Cột 3: Disassembly: Hiển thị lên mã Assembly
- Cột 4: Comment: Hiển thị về những ghi chú hoặc bạn đọc có thể tự điền các ghi chú vào cột này
Cửa số 2: Ở ngay phía dưới của cửa sổ thứ nhất
Hiển thị lên giá trị những đối số của các câu lệnh ASM
Cửa sổ 3: Bao gồm Address, Hex dump, ASCII hay UNICODE
Quan sát những thay đổi của các giá trị vùng nhớ trong chương trình, sử dụng để đi tìm các string có trong bộ nhớ
Gồm 3 cột:
- Cột 1: Address: Hiển thị địa chỉ của các vùng nhớ
- Cột 2: Hex dump: Hiển thị giá trị vùng nhớ theo dạng Hex
- Cột 3: ASCII hay UNICODE: Hiển thị giá trị của vùng nhớ theo dạng mã ASCII hoặc theo UNICODE
Cửa sổ 4: Registers [MMX, FPU, 3DNow!]:
Hiển thị các giá trị cờ và thanh ghi trong Assembly. Cửa sổ này dùng để chúng ta theo dõi sự thay đổi giá trị của các lệnh toán học, các thanh ghi….
Cửa sổ 5: STACK
Hiển thị giá trị nằm trong vùng stack
Cách crack phần mềm bằng Ollydbg qua các chức năng
Dưới đây là một số chức năng được sử dụng trong quá trình cách crack phần mềm bằng Ollydbg
Chức năng | Mô tả |
Run (F9) | Chạy chương trình |
Close ( Alt-F2) | Đóng file đang Disassembler lại |
Step into (F7) | Debug vào trong các hàm |
Step over (F8) | Debug bên ngoài các hàm |
Animate into (Ctrl-F7) | Tự động hoạt động với chế độ “Step into” đến khi gặp breakpoint tiếp theo hoặc đến khi người dùng nhấn pause (F12) |
Animate over (Ctrl-F8) | Tự động hoạt động với chế độ “Step over” đến khi gặp breakpoint tiếp theo hoặc đến khi người dùng nhấn pause (F12) |
Execute to return ( Ctrl-F9) | Thực thi đến khi hàm trả về |
Execute to user code (Alt-F9) | Thực hành cho đến khi gặp đoạn code user viết |
Công cụ Trace
- Trace into (Ctrl – F11) và Trace over (Ctrl – F12): Đây là 2 chức năng tương tự Animate Into/Animate over. Nghĩa là máy tính sẽ tự động Step Into/Step Over cho các bạn. Tuy nhiên, đối với Trace Over/Trace Into, các bạn có thể thiết lập được điều kiện dừng.
- Set Condition: Thiết lập về mặt điều kiện
Bạn có thể thiết lập điều kiện của EIP hay của bất kỳ thanh ghi nào, với một giá trị nào đó hay thuộc khoảng nào đó v.v. Ví dụ như trong hình bên trên, tôi đang thiết lập điều kiện dừng đến khi nào thanh ghi eax==0040000. Trong khi đó Olly còn hỗ trợ một số chương năng khác hỗ trợ cho việc debug chương trình như:
Chức năng | Mô tả |
Log (Alt + L) | Hiển thị log được ghi lại (các module được load, unload v.v) |
Executable modules (Alt + E) | Những module thực thi chương trình |
Memory (Alt + M) | Hiển thị toàn bộ các khối bộ nhớ mà chương trình được sử dụng. |
Threads | Hiển thị toàn bộ các thread chương trình |
CPU (Alt + C) | Màn hình cửa sổ làm việc chính |
Patches (Ctrl + P) | Hiển thị tất cả những mục ‘patches’ mà bạn đã tạo ra, khi có bất kỳ thay đổi nào về code giữa code mới và code cũ |
Call stack (Alt + K) | Hiển thị chi tiết về stack ở cửa sổ khác, kể cả giá trị gửi đi từ các hàm |
Breakpoints (Alt + B) | Hiển thị toàn bộ các breakpoint hiện tại đang được thiết lập |
Các thành phần trong Ollydbg
Phía trên những cửa sổ là thanh taskbar, dùng để thực hiện các chức năng của chương trình.
Để debug một chương trình, chúng ta dùng chức năng File->Open hoặc sử dụng phím tắt F3: Mở file cần Debug
Ollydbg hỗ trợ debug 2 kiểu file là .exe và .dll.
Attachment: Cho phép Assembly bất kỳ chương trình đang trong quá trình thực thi.
Với những phần mềm có khả năng Anti-Debug, khi bắt đầu sẽ tạo ra các đoạn mã Anti-Debug, nhưng sau khi hoàn thành thì lại có thể được hoặc nó sẽ dùng một chương trình con để hoàn thành chương trình chính. Sau khi chương trình con thực hiện xong, chương trình con sẽ tự kết thúc và khi đó chương trình chính tiếp tục được thực hiện. Khi đó các bạn không thể debug được chương trình chính nữa. v.v. Vì vậy chức năng Attach được tạo ra để hỗ trợ debug các chương trình đang hoạt động trên bộ nhớ.
Restart debug (Ctrl + F2): Debug lại chương trình.
Cảm ơn các bạn đã theo dõi nội dung bài viết cách crack phần mềm bằng Ollydbg. Chúng tôi hy vọng đã giúp được bạn giải đáp được vấn đề, mọi thắc mắc hay yêu cầu khác xin vui lòng liên hệ lại với chúng tôi.