2.3.1 Ollydb
2.3.1.1 Giới thiệu
OllyDbg là một trình gỡ rối (ở tầng ring 3) ở cấp độ hợp ngữ trên nền Windows 32bit. Nó chú trọng đến việc phân tích mã nhị phân nên đặc biệt hữu ích trong trường hợp không có mã nguồn.
Nó dò xét các thanh ghi, nhận diện các thủ tục, các lời gọi hàm API, các khóa chuyển, các bảng, hằng số và các chuỗi, cũng như chỉ ra vị trí các routines từ các tập tin đối tượng và các thư viện.
Theo như trong tập tin trợ giúp của chương trình, phiên bản 1.10 là bản cuối cùng của dòng phiên bản 1.x. Bản 2.0 được phát triển và được lập trình lại từ đầu. Phần mềm thì miễn phí (với đầy đủ chức năng, không có giới hạn thời gian sử dụng, v.v...), nhưng có thông báo đăng ký với tác giả như ở các dạng phần mềm dùng thử.
Phiên bản hiện tại của OllyDbg không thể thao tác được các tập tin biên dịch cho các bộ vi xử lý 64-bit.
OllyDbg thường được dùng cho việc reverse engineering (kỹ thuật dịch ngược) các chương trình. Là công cụ yêu thích của các cracker để bẻ khóa phần mềm của người khác.
Hình 2.13 Giao diện của chương trình Ollydbg
Trong việc phân tích ngược cũng như bẻ khóa, OllyDbg là một trong những công cụ quan trọng chính vì sự tiện lợi và sức mạnh của mình. Nó cũng là công cụ giúp các lập trình viên phân tích và sửa chữa, kiện toàn chương trình của họ.
2.3.1.2 Thành phần của chương trình Ollydbg
Như trên màn hình chính của Olly được phân ra làm 5 cửa sổ chính, mỗi cửa sổ có một nhiệm vụ và một tên riêng :
• The Disassembler Window
• The Register Window
• The Stack Window
Hình 2.14 Cửa số chính của chương trình a. The Disassembler Window
Đây là cửa sổ chính đầu tiên của Olly và là cửa sổ rất quan trọng, chúng ta sẽ làm việc rất nhiều trên cửa sổ này. Khi bạn muốn debug một chương trình, bạn load file thực thi của chương trình đó vào trong Olly.Các chương trình mà bạn load vào Olly là những chương trình có thể được code bằng những ngôn ngữ khác nhau như : VB, VC+ +, Borland De lphi hay MASM nhưng tại cửa sổ này toàn bộ code của chương trình sẽ được list ra dưới dạng các mã ASM. Theo mặc định của Olly thì bất cứ chương trình nào mà bạn load vào Olly sẽ được Olly tiến hành phân tích toàn bộ code chính của chương trình đó và đưa ra các comment thích hợp.
b.The Register Window
Một cửa sổ quan trọng tiếp theo, đó chính là cửa sổ Register. Như đã nói đây là cửa sổ chứa thông tin chi tiết về các thanh ghi như eax, ebx, ecx v…v… Các cờ trạng thái cũng được quản lý tại cửa sổ này.
Hình 2.15 Cửa sổ Register
Cửa số này sẽ cung cấp cho chúng ta rất nhiều thông tin trong quá trình chúng ta làm việc cùng Olly.
c.The Stack Window
Đây là nơi lưu trữ tạm thời các dữ liệu và địa chỉ, nó là một cấu trúc dữ liệu một chiều. Các phần tử được cất vào và lấy ra từ một đầu của cấu trúc này, tức là nó được xử lý theo phương thức “vào trước, ra sau” (LIFO : Last In F irst Out). Hai thanh ghi chính làm việc với Stack là ESP và EBP.
d.The Dump Window
Đây là cửa số hiện thị nội dung của bộ nhớ hoặc file. Ta có thể chọn nhiều định dạng khác nhau để biểu diễn nội dung của memory trong cửa số này : byte, text, integer, float, address, disassembly hoặc PE Header. C ửa sổ này cho phép chúng ta tìm kiếm cũng như thực hiện các chức năng chỉnh sửa, thiết lập các Break points v..v...
2.3.2 PeiD
2.3.2.1 Giới thiệu
PEiD giúp phát hiện các trình nén phổ biến nhất, cryptors và trình biên dịch cho các tập tin PE. Hiện tại nó có thể phát hiện hơn 600 chữ ký khác nhau trong các tập tin PE. PEiD có những nét đặc biệt trong một số khía cạnh so với các trình detect khác đã có.
2.3.2.2 Chức năng
Hình 2.16 Giao diện của chương trình Peid
• Nó có một giao diện tuyệt vời, trực quan và thực sự đơn giản.
• Tỷ lệ phát hiện nằm trong số tốt nhất so với các trình định danh khác.
• Đặc biệt trong chế độ quét advanced có thể nhận diện sự thay đổi và các tập tin không xác định.
• Tích hợp vào menu ngữ cảnh, hỗ trợ dòng lệnh, cửa sổ luôn nằm trên cùng và tính năng kéo & thả target.
• Quét nhiều tập tin và thư mục với đệ quy.
• Cửa sổ Task và trình điều khiển.
• Giao diện plugin với các plugins như Generic OEP Finder và Krypto ANALyzer.
• Kỹ thuật quét mở rộng được sử dụng để nhận diện tốt hơn.
• Tùy chọn quét heuristic. (PP tự tìm tòi, thử & sai)
• Chi tiết tập tin PE mới, nhập, xuất và các TLS viewer
• Thiết kế mới trong bộ phận phân tích nhanh.
• Thiết kế mới trong trình hex viewer.
CHƯƠNG 3