18/09/2018, 13:28

OllyDBG công cụ cho các chuyên gia Reverse Engineering

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. Một số chức năng có thể kể đến của Olly: Trace registers, find loops, switches, API calls, Tải và debug cái dll modules Cho ...

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.

OllyDBG

Một số chức năng có thể kể đến của Olly:

  • Trace registers, find loops, switches, API calls,
  • Tải và debug cái dll modules
  • Cho phép để thêm commant và label của riêng của bạn về chức năng để dành cho chú thích và trực quan khi bạn RE
  • Attaack một chương trình đang chạy
  • Tìm các constant và address range 1 cách dễ dàng
  • Cho phép đặt các breakpoints ( điểm dừng) để dễ dàng debug và theo dõi
  • Đặt các Breakpoint hadware
  • Tìm kiếm string
  • Xem các hàm API được gọi
  • Cho phép tạo file dump của process
  • Edit và mặc nhiên sửa lỗi
  • Debug từng bước program ( Step-by-Step)
  • v.v

Tổng quan chương trình

Ngay khi chạy chương trình, các bạn có thể nhìn thấy giao diện của OllyDBG chia làm 5 cửa sổ hết sức trực quan

OllyDBG-TongQuan

Cửa số 1: CPU

Đây là cửa sổ chính và thường xuyên sử dụng 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â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ị mã Assembly
  • Cột 4: Comment: Hiển thị các ghi chú. Chúng ta cũng có thể tự ghi các ghi chú vào cột này

Cửa số 2: Nằm ngay dưới cửa sổ thứ nhất

Hiển thị giá trị các đối số của các câu lệnh ASM

Cửa sổ 3: Address, Hex dump, ASCII hay UNICODE

Quan sát sự thay đổi các giá trị vùng nhớ trong chương trình

Sử dụng để tìm các string trong bộ nhớ

Gồm 3 cột:

  • Cột 1: Address: Hiển thị địa chỉ vùng nhớ
  • Cột 2: Hex dump: Hiển thị giá trị vùng nhớ dưới dạng Hex
  • Cột 3: ASCII hay UNICODE: Hiển thị giá trị vùng nhớ dưới dạng mã ASCII hoặc UNICODE

Cửa sổ 4: Registers [FPU, MMX, 3DNow!] :

Hiển thị giá trị các thanh ghi và cờ trong Assembly. Cửa sổ này cần thiết để chúng ta theo dõi sự thay đổi giá trị của các thanh ghi, các lệnh toán học ….

Cửa sổ 5: STACK

Hiển thị giá trị trong vùng stack

Bạn có thể sử dụng phím tab hay shift tab để chuyển đổi giữa các cửa sổ
Nếu các bạn không thấy được các bar trong mỗi cửa sổ thì các bạn có thể click chuột phải tại cửa số đó và chọn Appearance-> Show bar

Trong bài tới tôi sẽ tiếp tục với chủ đề “Debug một chương trình với OllyDBG” và “Hướng dẫn sử dụng OllyDBG với việc phân tích chương trình crackme của tác giả CRUEHEAD

0