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.



Related Posts:

  • Một số phần mềm quét mã độc trên LinuxPhỏng theo howtoforge.com Những máy chủ kết nối tới Internet đang chứng kiến việc bị quét và tấn công ở mọi mức độ trong mọi lúc. Trong lúc fireware và các hệ thống được cập nhật thường xuyên là bước phòng thủ đầu tiên để hệ … Read More
  • Cài đặt LMD (Linux Malware Detect) và ClamAV để scan malware trên LinuxLinux Malware Detect (Maldet) là một phần mềm tìm và diệt mã độc dành trên hệ thống máy chủ Linux, được phát hành dưới dạng mã nguồn mở GNU GPLv2, được thiết kế chuyên biệt để dò tìm các mối đe dọa trên môi trường Web Ho… Read More
  • Quét mã độc trong tập tin với VirusTotal Mã độc trong các tập tin tải từ các nguồn trên internet luôn là vấn đề nguy hiểm cho người sử dụng máy tính. Làm sao để có thể kiểm tra và đảm bảo an toàn cho máy tính trước các loại mã độc đó? Bài viết sau sẽ hướng dẫn các … Read More
  • Tìm hiểu Linux Malware DetectNguồn Linux Malware Detect Current Release: http://www.rfxn.com/downloads/maldetect-current.tar.gz http://www.rfxn.com/appdocs/README.maldetect http://www.rfxn.com/appdocs/CHANGELOG.maldetect Description Linux Malwa… Read More
  • LibVMMột trong các giải pháp thu thập thông tin mức thấp của các máy ảo, LibVM là một công cụ được phát triển với nhiều triển vọng. LibVMI là thư viện thu thập thông tin đọc, ghi vào bộ nhớ từ máy ảo (VMs). Nhằm sử dụng thuận lợi … Read More

0 comments:

Post a Comment