Ollydbg Là Gì, Hướng Dẫn Sử Dụng Ollydbg Dùng Để Crack Phần Mềm

OllyDBG hay còn gọi tắt là Olly là công cụ debug rất phổ biến. Nhờ giao diện trực quan và dễ sử dụng nên Olly phù hợp với người dùng ở mọi trình độ khác nhau

Các chức năng chính.Bạn đang xem: Ollydbg là gì



Giao diện :

Cửa sổ OllyDBG được chia ra làm 5 cửa sổ con :

1: Disassembler window: Các đoạn mã của chương trình dưới dạng code assembly và các comment tại các dòng code đó.

Bạn đang xem: Ollydbg là gì

Đang xem: Ollydbg là gì

2: Register window: Các thanh ghi và giá trị của chúng.

3: Tip window: Các thông tin bổ sung cho 1 dòng code. Các thông tin này khá hữu ích trong quá trình debug.

4: Dump window: Cho phép người sử dụng xem và chỉnh sửa các giá trị trong bộ nhớ của chương trình đang được debug.

5: Stack window: Thông tin về stack của chương trình.

Ngoài 5 cửa sổ trên thì Olly còn có một số cửa sổ khác. Để ý trên thanh menu có các chức năng:

-Click vào nút L ta thấy cửa số Log data của Olly. Chứa các thông tin về các module, các import library và các plugins được load cùng chương trình tại thời điểm chương trình được load vào Olly.

– Click vào nút E ta thấy cửa sổ Executable modules, danh sách các file thực thi được chương trình sử dụng.

– Click vào nút M ta thấy cửa sổ Memory Map, chứa thông tin về bộ nhớ được chương trình của ta sử dụng.

-Click vào nút T là cửa sổ Threads, liệt kê các thread của chương trình.

-Click vào nút W là Windows

-Nút H là cửa sổ Handles.

– Nút / là Patches, cửa sổ chứa các thông tin về những câu lệnh ta đã sửa ở trong chương trình.

– Nút B là cửa sổ Breakpoints, hiển thị các breakpoint ta đặt trong chương trình.

Xem thêm: Danh Sách Thể Loại Âm Nhạc Folk Là Gì ? Một Album Nhạc Folk Nhẹ Nhàng Và Mê

– Nút R – References chứa thông tin về kết quả cho chức năng tìm kiếm trong Olly.

Những chức năng không thể thiếu đó là các chức năng phục vụ cho công việc debug:

– Đặt Breakpoint: F2

– Run: F9

– Step into: F7

– Step over: F8

– Restart: Ctrl + F2

Có nhiều loại breakpoint và OllyDbg hỗ trợ tất cả chúng. Mặc định, OllyDbg sử dụng các breakpoint mềm, nhưng nếu cần thì ta vẫn có thể đặt các breakpoint cứng. Ngoài ra, ta có thể đặt breakpoint có điều kiện hoặc breakpoint trên bộ nhớ.

Breakpoint mềm

Các breakpoint mềm sẽ hữu ích khi debug một hàm giải mã string. Ta có thể phát hiện hành vi của mã độc thông qua các chuỗi string mà nó sử dụng, vì lí do này mà tác giã mã độc thường làm rối chúng thông qua các hàm mã hóa/giải mã string. Mã độc phải gọi hàm giải mã string trước khi mỗi chuỗi string được sử dụng.

Breakpoint có điều kiện

Breakpoint có điều kiện là các breakpoint mềm và chúng chỉ dừng thực thi khi một điều kiện cụ thể được thỏa mãn. OllyDbg cho phép đặt breakpoint có điều kiện bằng các biểu thức; mỗi lần chương trình thực thi đến breakpoint mềm, biểu thức sẽ được đánh giá và nếu kết quả biểu thức khác 0 (non-zero), chương trình sẽ dừng thực thi.

Breakpoint có điều kiện đặc biệt hữu ích khi muốn chương trình dừng thực thi chỉ khi một tham số cụ thể được truyền vào một hàm API được gọi thường xuyên.

Breakpoint cứng

OllyDbg cũng cho phép đặt các breakpoint cứng thông qua một số thanh ghi cụ thể.

Ưu điểm của các breakpoint cứng là chúng không can thiệp vào code, stack hay bất kì tài nguyên nào của chương trình cần debug. Chúng cũng không làm chậm quá trình thực thi chương trình. Tuy nhiên, ta chỉ có thể đặt tối đa 4 breakpoint cứng tại cùng một thời điểm.

Để đặt breakpoint cứng tại một lệnh, click phải vào lệnh đó và chọn Breakpoint > Hardware, on Execution.

Mặc định, OllyDbg sẽ sử dụng các breakpoint mềm. Ta có thể thay đổi mặc định này trong tùy chọn Debugging Options. Dùng breakpoint cứng cũng

giúp qua mặt một số kỹ thuật anti-debugging, khi các breakpoint mềm dễ dàng bị các kỹ thuật này phát hiện.

Breakpoint trên bộ nhớ

OllyDbg hỗ trợ đặt breakpoint cứng hoặc breakpoint mềm trên một vùng nhớ (chunk of memory) để dừng thực thi khi chương trình truy cập tới vùng nhớ đó. Các dạng truy cập phổ biến có thể là read, write, execute,…

Để đặt một breakpoint bộ nhớ, chọn một vùng nhớ trong cửa sổ memory dump hoặc một section trong memory map, click phải và chọn Breakpoint > Memory, on Access. Ta chỉ có thể đặt một breakpoint bộ nhớ tại một thời điểm và breakpoint nhớ trước đó sẽ bị xóa khi ta đặt một breakpoint nhớ mới.

2. Các plugins trong Ollydbg

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bình luận

Tên *

Email *

Trang web

Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.

{{#message}}{{{message}}}{{/message}}{{^message}}Không gửi được. Máy chủ đã phản hồi kèm theo {{status_text}} (mã {{status_code}}). Vui lòng liên hệ với nhà phát triển của đơn vị xử lý biểu mẫu này để cải thiện thông báo này. Tìm hiểu thêm{{/message}}

{{#message}}{{{message}}}{{/message}}{{^message}}Có vẻ như bạn đã gửi thành công. Ngay cả khi máy chủ phản hồi OK, hệ thống có thể vẫn chưa xử lý việc gửi. Vui lòng liên hệ với nhà phát triển của đơn vị xử lý biểu mẫu này để cải thiện thông báo này. Tìm hiểu thêm{{/message}}