Bắt đầu với IDA Debugger
Sau khi đã load chương trình vào IDA, để bắt đầu quá trình debug trong IDA ta vào menu và chọn Debugger:Lựa chọn loại debugger mà chúng ta sẽ sử dụng để Debug. Các bộ này để sử dụng được cần có plugins tương ứng. Bao gồm việc debug tại máy cụ bộ hoặc điều khiển từ xa tới một máy khác. Ở bài này, trước tiên tôi sẽ chọn Local Win32 debugger để giới thiệu tới các bạn.
Sau khi bạn đã chọn loại Debugger xong, sau đó bạn cũng có thể lựa chọn lại trình Debugger khác bằng cách vào mục Debug > Switch Debugger, khi đó bảng Select a Debugger sẽ hiển thị lại. Sau đó sẽ hiện ra cảnh báo như sau: Đây là cảnh báo việc phân tích virus, trojans có thể ảnh hưởng tới hệ thống của bạn, nên bạn cẩn thận. Chọn Yes, vì chương trình của chúng ta hiện tại phân tích hoàn toàn an toàn. Ta tiếp tục vào Debugger chọn như hình dưới, để bắt đầu chạy chương trình: Thực hiện F9 để chạy thử Debugger, giao diện Debugger cũng tương tự và chứa đầy đủ các cửa sổ như OllyDbg: Ở trên bao gồm đầy đủ các cửa sổ tương tự trong OllyDbg, nếu bạn nào sử dụng quen với OllyDbg thì không còn lạ lẫm với những cửa sổ này nữa. Còn những ai chưa từng sử dụng OllyDbg thì có thể hiểu ý nghĩa của các cửa sổ như sau :- IDA View EIP : Hiển thị code của chương trình, có 2 dạng là hiển thị code hoặc kiểu đồ thị, ta có thể dùng phím space để chuyển đổi qua lại
- Hex-View 1: Cửa sổ về bộ nhớ
- Stack View: Cửa sổ về bộ nhớ của stack
- General registers: Cửa sổ chứa các thanh ghi cơ bản EAX, EBX, ECX, …
- FPU registers: Cửa sổ về các thanh ghi của bộ tính toán với số thực
- Continue(F9): Tiếp tục thực thiện 1 process đang bị dừng. Thực hiện cho tới khi gặp 1 breakpoint hoặc bị người dùng tạm dừng hoặc tới khi kết thúc thúc.
- Pause: Tạm dừng một process đang chạy.
- Terminate(Ctrl+F2): Kết thúc một process đang chạy.
- Step Into(F7): Thực hiện câu lệnh kế tiếp. Nếu lệnh kế tiếp là một lời gọi hàm thì đi vào trong hàm và thực hiện lệnh đầu tiền trong hàm.
- Step Over(F8): Thực hiện câu lệnh kế tiếp. Nếu lệnh kế tiếp là một lời gọi hàm thì chương trình sẽ tự động chạy hàm và nhận giá trị trả về rồi chuyển xuống câu lệnh tiếp theo sau lời gọi hàm. Cách này giúp tiết kiệm thời gian, tránh việc đi sâu vào những hàm không cần thiết.
- Run Until Return(Ctrl+F7): Tiếp tục thực hiện lệnh trong hàm cho tới khi nhận được giá trị trả về hoặc gặp 1 breakpoint. Hữu ích khi chúng ta muốn vào xem 1 hàm, và muốn ra khỏi hàm luôn khi đã có thông tin hàm. Không phải F7 nhiều lần.
- Run to Cursor(F9): Tiếp tục chạy và dừng cho tới khi gặp con trỏ vị trí hiện tại hoặc gặp 1 breakpoint
- Sử dụng phím tắt F2 ( giống như trong OllyDbg)
- Debugger > Breakpoints > Add breakpoint
- Chuột phải và chọn Add breakpoint.
- Sau khi thiết lập xong breakpoint thì địa chỉ các breakpoint sẽ được lưu trữ tại một danh sách, để có thể xem danh sách đặt breakpoint bạn có thể vào Debugger > Breakpoints > Breakpoint List hoặc phím tắt Ctrl + Alt + B