OllyDBG công cụ cho các chuyên gia Reverse Engineering (phần 2)

Các thành phần trong Olly Debug

Phía trên các cửa sổ là thanh taskbar, dùng để thực thi các chức năng của chương trình.

Debug một chương trình với OllyDBG

Mở một chương trình

Debug một chương trình với OllyDBG

Để debug một chương trình, chúng ta sử dụng File->Open hoặc sử dụng phím tắt F3: Mở file cần Debug

OllyDBG hỗ trợ debug 2 loại file là .exe và .dll.

OllyDGB1 

Attachment: Cho phép Deassembly một chương trình nào đó đang thực thi.

Với một số phần mềm có khả năng Anti-Debug, khi khởi động sẽ tạo ra các đoạn mã Anti-Debug, nhưng sau khi chạy xong thì lại có thể được hoặc nó sẽ dùng một chương trình con để chạy chương trình chính. Sau khi chương trình con thực thi xong, chương trình con sẽ tự kết thúc và lúc đó chương trình chính tiếp tục được thực thi. Khi đó chúng ta không thể debug được chương trình chính nữa. v.v. Do đó chức năng Attach được tạo ra để hỗ trợ debug các chương trình đang chạy trên bộ nhớ.

Debug một chương trình với OllyDBG

Restart debug (Ctrl + F2): Debug lại chương trình.

Debug một chương trình

Debug một chương trình với OllyDBG

Dưới đây là một số chức năng được sử dụng trong quá trình debug một chương trình

Chức năng Mô tả
Run (F9) Chạy chương trình
Close ( Alt-F2) Đóng file đang Dissasembler 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 chạy với chế độ “Step into” đến khi gặp breakpoint tiếp theo hoặc đến khi người dùng ấn pause (F12)
Animate over (Ctrl-F8) Tự động chạy với chế độ “Step over” đến khi gặp breakpoint tiếp theo hoặc đến khi người dùng ấ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 thi đế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. Tức là máy tính sẽ tự động Step Into / Step Over cho chúng ta. Tuy nhiên, đối với Trace Into / Trace Over, chúng ta có thể thiết lập được điều kiện dừng. Tức là khi một điều kiện nào đó được thiết lập trước đó thỏa mãn thì chương trình sẽ tự động dừng ngay tại câu lệnh thỏa mãn điều kiện mà chúng ta đặt ra
  • Set Condition: Thiết lập điều kiện

Debug một chương trình với OllyDBG

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. Ngoài ra Olly còn hỗ trợ một số chương năng khác cần 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) Các module thực thi của chương trình
Memory (Alt + M) Hiển thị tất cả các khối bộ nhớ mà chương trình được cấp phát.
Threads Hiển thị tất cả các thread của 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ả các phần ‘patches’ mà bạn đã tạo ra, khi có bất kì thay đổi nào về code giữa code cũ và code mới’
Call stack (Alt + K) Hiển thị chi tiết hơn stack ở một cửa sổ khác, bao gồm cả giá trị gửi đi từ các hàm
Breakpoints (Alt + B) Hiển thị tất cả các breakpoint hiện tại đang được thiết lập

 

Bài tiếp theo tôi sẽ tiếp tục với việc sử dụng OllyDBG phân tích chương trình crackme của tác giả CRUEHEAD


Bình luận

Từ khóa: