Reverse

Binary 101: Environment setup

category
Reverse
date
Feb 22, 2021
slug
binary-101-environment-setup
author
status
Public
tags
binary analysis
reverse
summary
Thiết lập môi trường phân tích.
type
Post
thumbnail
updatedAt
Mar 1, 2023 08:53 AM
💡
Thiết lập máy ảo Ubuntu 32/64-bits làm môi trường phân tích các tệp ELF.

1. Chuẩn bị máy ảo

OSBoxes là trang cung cấp các máy ảo được build sẵn, có nhiều Linux distro cho người dùng chọn. Tôi sử dụng máy ảo Ubuntu:

2. Cài đặt các thư viện cần thiết

Cập nhật hệ thống:
$ sudo apt update && sudo apt upgrade -y
Cài các gói sau:
$ sudo apt install build-essential libemu-dev graphviz gdb python libgraphviz-dev cmake libboost-dev libqt5xmlpatterns5-dev qtbase5-dev qt5-default libqt5svg5-dev libcapstone-dev pkg-config hexedit nasm git libtool autoconf -y
Một số công cụ cần chú ý:
  • GDB: Một debugger mạnh mẽ - Trùm cuối Debugger trên Linux.
  • HexEdit: Một Hex Editor cũng "tạm được" trên Linux 🤤
  • Nasm: Netwide Assembler, một trình dịch cho Assembly trên Linux.
  • Qt Libs: Là các thư viện cần thiết để biên dịch EDB - Một Debugger “đẹp trai” trên Linux. Các bài sau sẽ thực hành với cả GDB và EDB.

3. Cài đặt EDB Debugger

Trước tiên hãy nói một chút về GNU Debugger (GDB), nó là một công cụ debug rất mạnh và nổi tiếng trên Linux. Nó sử dụng giao diện dòng lệnh (CLI) nên có thể khó sử dụng với nhiều người. GDB cũng có thể sử dụng kèm với các Plugin như PEDA, GEF hoặc PWNDBG. Các Plugin này được “giang hồ mạng” sử dụng rất nhiều và nó sẽ "giúp cuộc sống trở lên dễ dàng hơn!". Thông tin về các plugin này xem bên dưới:
Cài đặt các Plugin này cũng đơn giản, nếu muốn cài cả 3 thì xem bài này của Andreas Pogiatzis.
Có một công cụ khác với chức năng tương tự GDB nhưng có giao diện đồ họa và đi kèm với nhiều Plugins hỗ trợ trong quá trình phân tích đó là Evan Teran's EDB Debugger (EDB). EDB được ví như là OllyDbg cho Linux. Hiện tại EDB đã có phiên bản v1.3.0 (thời điểm viết bài), tuy nhiên môi trường tôi đang sử dụng ở đây là Ubuntu 16.04 LTS, một số thư viện đã cũ và không còn tương thích. Để khắc phục vấn đề này tôi sẽ sử dụng EDB v1.1.0. Bạn đọc nếu sử dụng phiên bản Ubuntu mới hơn thì cứ EDB bản mới nhất mà cài 😄. Tiến hành clone source và biên dịch EDB như sau:
$ cd ~/bac $ git clone --recursive https://github.com/eteran/edb-debugger.git --branch 1.1.0 $ cd ~/bac/edb-debugger $ mkdir build $ cd build $ cmake .. $ make
Quá trình này sẽ biên dịch EDB và các Plugins đi kèm, sau khi biên dịch thì bộ công cụ của chúng ta sẽ nằm trong thư mục build, bây giờ hãy tạo một Symbolic link:
$ sudo ln -s ~/bac/edb-debugger/build/edb /usr/local/bin/
Khởi chạy công cụ và đây là giao diện:
notion image
Sau khi hoàn tất các bước trên, hãy snapshot lại máy ảo. Bước này quan trọng vì trong quá trình phân tích các chương trình độc hại đôi khi ta cần quay lại trạng thái "sạch" của máy ảo phân tích.