Wednesday, July 30, 2014

Thực hiện unpack một file mã độc bằng OllyDbg

Điều quan trọng nhất trong việc phân tích mã độc đó là thực hiện việc unpack thành công. Bởi nếu chúng ta không unpack được thì kết quả phân tích sẽ không được chính xác.
Với công cụ PeiD sẽ giúp ta xác định được trình pack của file cần phân tích, tuy nhiên hạn chế của PeiD là không hỗ trợ việc unpack file đó. Sau khi xác định được trình Pack file, chúng ta có thể lên trên mạng để tìm kiếm phần mêm thực hiện unpack, nếu bạn may mắn thì có thể dễ dàng tìm được do ai đó public, nêu không chúng ta phải làm sao?
Đó chính là mục đích chính của bài viết dưới đây, sử dụng Ollydbg để tự tay mình unpack một file. Cụ thể như sau:
Bước 1: mở OllyDbg lên và kéo file cần phân tích vào
Chúng ta thấy một cửa sổ thông báo (đơn giản vì đây là một file đã được packed). Chúng ta chọn Yes

Bước 2: chọn Option/Debuggin options hoặc Alt+O
Bước 3: lựa chọn tab SFX, sau đó lựa chọn như hình bên dưới
nhấn OK
Bước 4: nhấn vào nút hai mũi tên màu xanh như hình dưới 
và đợi OllyDbg tracing SFX (Self-Extractor): có nghĩa là tự bản thân wrapper sẽ unpack trong chương trình và đặt các memory breakpoint để tìm kiếm Original Entry Point
kết quả chúng ta có như sau: 
chú ý: Real entry point of SFX code có địa chỉ F1D0, thì có thể đây chính là Original Entry Point chúng ta cần tìm
Bước 5: Tiến hành Dump file
Chọn Plug-in/OllyDump/Dump debugged process
Một cửa sổ mở ra như sau, bạn chọn các lựa chọn như hình sau đó nhấn phím Dump
lưu file dump này lại với tên bất kỳ, ví dụ ở đây tôi đặt tên là dump.exe
Bước 6: Sau khi ta có được file dump, thì chúng ta đã đi được 1/2 quãng được để unpack một file. Nửa quãng đường còn lại ta cần phải tiến hành reconstruct lại các import của file này bằng phần mềm ImpRec 1.7 e (đã cung cấp trong tools.rar)
- mở ImpRect lên, chọn đến file chúng ta cần phân tích (chú ý không phải là file dump.exe ta làm ở trên)
- tại OEP (trong IAT Infos needed), chúng ta điền giá trị F1D0 (địa chỉ mà chúng ta tìm được SFX ở trên)
và click vào IAT AutoSearch, một cửa sổ hiện ra như sau:
nhấn OK
sau đó click vào Get Imports
chúng ta sẽ có kết quả cửa sổ như trên
- tiếp đó ta chọn nút  Fix Dump
ta chọn file dump.exe mà ta đã dump ở trên chọn Open, kết quả hiện thị như sau:
tại cửa sổ Log, ta sẽ có thông báo dump.exe saved susscessfully. 
Như vậy ta đã unpack thành công!
Nguyễn Huy Trung.



No comments:

Post a Comment