[Tutorial] Unpack

Thảo luận trong 'Virus/Malware' bắt đầu bởi HustReMw, 13/09/17, 04:09 PM.

  1. HustReMw

    HustReMw Moderator Thành viên BQT

    Tham gia: 20/12/16, 05:12 PM
    Bài viết: 508
    Đã được thích: 236
    Điểm thành tích:
    43
    Chào các bạn, trong tutorial này mình sẽ giới thiệu về pack, unpack. Mục đích chính và cùng các bạn unpack các trình pack phổ biến hiện nay.

    Dưới đây là toàn bộ khung chương trình của mình

    1. Giới thiệu lý thuyết về pack và unpack
    2. Thực hành unpack các trình pack phổ biến đến nâng cao
    2.1. Unpack UPX (dễ)
    2.2. Unpack ASP (dễ)
    2.3 Unpack PSG (trung bình)
    2.4 Unpack MEW (trung bình)
    2.5 Unpack WinPack (trung bình)
    2.6. Unpack PECompact(khó)
    2.7. Unpack SLVcode (khó)
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    rootheu453 and whf like this.
  2. HustReMw

    HustReMw Moderator Thành viên BQT

    Tham gia: 20/12/16, 05:12 PM
    Bài viết: 508
    Đã được thích: 236
    Điểm thành tích:
    43
    Phần I: Giới thiệu lý thuyết về Pack và Unpack

    I.1. Pack là gì?
    Pack là một phương thức nén, mã hóa file thực thi. Nhằm mục đích che dấu code và giảm kích thước file
    Đối với các phần mềm chuẩn thường dùng pack để giảm kích thước file hơn là mục đích che dấu code.
    Đối với virus thì hướng tới mục đích che dấu code, gây khó khăn trong quá trình dịch ngược.

    I.2. Nguyên lý hoạt động của pack
    Để có thể hiểu được nguyên lý về pack và unpack các bạn phải nắm rõ cấu trúc file PE.
    Một file thực thi(PE file) sẽ có cấu trúc như sau (File trước khi pack):
    upload_2017-9-13_2-13-4.png

    Sau khi pack file lại thì chúng ta thành packed data
    upload_2017-9-13_2-14-58.png

    Cuối cùng, packed data sẽ được packer thêm vào một section trong một PE file do packer tạo ra.
    upload_2017-9-13_2-16-2.png
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    Truongminh87 and rootheu453 like this.
  3. rootheu453

    rootheu453 New Member

    Tham gia: 24/03/18, 10:03 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Sao bài viết này không cập nhật hết kiến thức nhỉ
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. HustReMw

    HustReMw Moderator Thành viên BQT

    Tham gia: 20/12/16, 05:12 PM
    Bài viết: 508
    Đã được thích: 236
    Điểm thành tích:
    43
    trong tuần này mình sẽ cập nhật nhé bạn
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    sunny thích bài này.
  5. HustReMw

    HustReMw Moderator Thành viên BQT

    Tham gia: 20/12/16, 05:12 PM
    Bài viết: 508
    Đã được thích: 236
    Điểm thành tích:
    43
    Mình đã trở lại, lần này mình cùng với các bạn thử unpack một mẫu đào tiền ảo được pack bởi trình pack upx. Một trình pack rất phổ biến và cũng rất dễ unpack. Trình pack này rất hay được mã độc sử dụng.

    Mẫu mình đã đính kèm. Pass là: whitehat nhé :D

    Màn hình đầu tiên cho chúng ta thấy được các lệnh đặc trưng của trình pack rất hay có:
    pushad, chúng ta để ý ngay bên dưới là vòng lặp giải mã
    upload_2018-3-29_14-21-10.png

    Lan man một hồi F7, F8 để chạy từng lệnh của vòng lặp giải mã, cuối cùng mình cũng break ra được. Nhảy được tới địa chỉ 4EE5AA mình nhận thấy nó gọi hàm LoadLibrary GetProAddress phần nào cũng đoán được đang lấy địa chỉ các API để phục vụ quá trình khôi phục file gốc.
    upload_2018-3-29_14-25-38.png

    Tiếp tục đi tiếp, mình nhận thấy bắt gặp lệnh popad, như vậy quá trình giải nén, giải mã file gốc đã hoàn thành, ngay bên lệnh popad là lệnh sub ep - 80, jmp 401500 đó chính là lệnh nhảy tới file gốc
    upload_2018-3-29_14-49-11.png

    Quá trình unpack đã thành công.
    upload_2018-3-29_14-51-18.png

    Cuối cùng ta dùng plugin của olly để dump file unpack được. File unpack mình cũng đã gửi bên dưới để các bạn thực hành và so sánh kết quả. Chúc các bạn thành công :D!
    upload_2018-3-29_14-53-36.png

    Tổng kết lại của trình pack upx là: Các lệnh đặc trưng của trình pack này: pushad, popad, sub ebp, jmp ....(địa chỉ EP của file gốc)
    Mẫu + unpack: https://drive.google.com/file/d/136q5GN6Dv292ocfWAOwHlWt4J3ypYjt-/view?usp=sharing
     

    Các file đính kèm:

    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. Truongminh87

    Truongminh87 New Member

    Tham gia: 17/05/21, 12:05 AM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Bạn ơi, có phần mềm kg a
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. HustReMw

    HustReMw Moderator Thành viên BQT

    Tham gia: 20/12/16, 05:12 PM
    Bài viết: 508
    Đã được thích: 236
    Điểm thành tích:
    43
    Phần mềm kg là phần mềm gì bạn?
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan