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.
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
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“