RE4: Hướng dẫn sử dụng .NET Reflector

Thảo luận trong 'Exploitation' bắt đầu bởi zDiv, 05/03/14, 11:03 AM.

  1. zDiv

    zDiv Super Moderator

    Tham gia: 12/02/14, 08:02 AM
    Bài viết: 13
    Đã được thích: 20
    Điểm thành tích:
    18
    Chào mọi người. Cũng khá lâu rồi từ khi hoàn thành bải viết Hướng dẫn sử dụng IDA mình mới lại có thời gian để thực hiện tiếp loạt bài giới thiệu những kiến thức cơ bản về RE.

    Ở bài viết này mình sẽ giới thiệu một công cụ khác, chuyên được sử dụng cho công việc RE các chương trình được viết trên nền tảng .NET - đó là .NET Reflector.

    Không làm tốn thời gian của mọi người nữa, bắt tay vào làm việc thôi


    [HR][/HR]Giới thiệu về .NET Reflector

    .NET Reflector là một sản phẩm phần mềm của hãng RedGate, thường được sử dụng để dịch ngược các chương trình được viết trên nền tảng .NET.
    .NET Reflector thực hiện công việc của 1 disassembler và decompiler nhưng không có chức năng debug. Nó có thể dịch người 1 chương trình thành IL code hoặc C#.

    Bằng việc sử dụng thêm một số Add-in, người sử dụng có thể sửa đổi code của chương trình đó và biên dịch lại thành một chương trình hoàn chỉnh. Hiểu đơn giản là patch chương trình đó.:D

    Có thể download .NET Reflector tại trang web của RedGate tại đây.
    Bản dùng thử sử dụng trong 14 ngày.
    :(
    [HR][/HR]Hướng dẫn sử dụng .NET Reflector

    Để sử dụng .NET Reflector thì trong máy tính của bạn đã phải cài đặt .NET framework. Hiện tại .NET Reflector đã hỗ trợ .NET framework 4.5

    Sau khi cài đặt, chạy .NET Reflector và open 1 file .exe ta sẽ thấy như sau.

    Trong bài viết này mình sẽ dùng file patchme.exe để làm ví dụ.


    [​IMG]

    Cửa sổ của .NET Reflector được chia hành 4 phần:
    1: Danh sách các file, lớp, phương thức, thuộc tính.
    2. Cửa sổ hiển thị đoạn mã được decompiler.
    3. chứa các thông tin phân tích của một đối tượng được lựa chọn.
    4. Thông tin cơ bản của đối tượng được lựa chọn.

    Khi sử dụng .NET Reflector chúng ta có thể đọc mã nguồn của chương trình dưới dạng code C# trong cửa sổ 2.
    Tuy nhiên .NET Reflector không cung cấp chức năng debug nên việc chỉ đọc code cũng là hạn chế của công cụ này.

    Thực hiện giống như việc RE một file .exe sử dụng OllyDBG trong bài hướng dẫn trước, ta chạy thử xem target patchme.exe thực hiện công việc gì.

    [​IMG]


    Nó thực hiện công việc kiểm tra password ta nhập vào và đưa ra thông báo là password đó có chính xác hay không.

    Xem các đối tượng, phương thức và thuộc tính trong cửa sổ 1 của .NET Reflector.
    [​IMG]

    Toàn những cái tên khó hiểu và không gợi ra 1 mối quan hệ gì. Dường như chương trình đã bị làm rối code bằng một công cụ nào đó.

    Thật là may mắn, có một Add-in của .NET Reflector có thể giúp ta trong trường hợp này.
    Đó là reflexil.

    Sau khi download và thêm Add-in này vào .NET Reflector theo các bược : Tools -> Add-ins... -> (+) và lựa chọn Add-In reflexil.

    [​IMG]

    Và thông báo sau hiện ra :D
    [​IMG]


    Tất nhiên là Ok rồi.
    Sau đó .NET Reflector sẽ tạo ra 1 file patchme.Cleaned.exe, lưu file này lại. Kích thước file giảm 1 nửa so với file gốc. (_ _!)
    Mở với .NET Reflector và ta thấy

    [​IMG]

    Tên các đối tượng, phương thức loằng ngoằng lúc trước giờ đã quá rõ ràng.
    Soi ngay vào VerifyBtn_Click() và ta đã tìm được thứ mình cần.
    Đến đây ta có 2 lựa chọn. Đọc code và viết keygen hoặc là patch luôn đoạn này, để khi nào cũng in ra không phải NOOB cho lẹ.

    Tools -> Reflexil v1.6 để sử dụng Add-in.
    Quan sát vị trí lúc trước là cửa sổ Analyzer.
    [​IMG]

    Quan sát các câu lệnh IL code ở cửa sổ Reflexil v1.6 này và tìm các câu lệnh cần chỉnh sửa. nháy chuột phải, lựa chọn Edit và chỉnh sửa lại câu lệnh theo ý của mình.
    [​IMG]
    Sau khi đã hoàn thành thì lưu lại những thay đổi như sau:

    [​IMG]

    Lưu lại và tận hưởng thành quả của mình. :D


    [HR][/HR]
    Trong bài viết này mình đã giới thiệu về công cụ .NET Reflector cùng Add-in và các sử dụng.

    Vậy là chuỗi những bài viết giới thiệu về RE và các công cụ thường dùng đã kết thúc.

    Hẹn gặp lại mọi người loạt bài tiếp theo có nội dung về Pack&Unpack và các Anti-Debug cơ bản.

    [HR][/HR]
    Đây là file patchme.exe mình sử dụng làm ví dụ trong bài viết.
     
    Last edited by a moderator: 15/09/14, 04:09 PM
    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
    tmnt53 and Cord like this.
  2. Flame

    Flame W-------

    Tham gia: 12/11/13, 05:11 PM
    Bài viết: 8
    Đã được thích: 0
    Điểm thành tích:
    6
    Re: RE4: Hướng dẫn sử dụng .NET Reflector

    Anh lâu ra TUT mới RE4:Pack&Unpack và các Anti-Debug cơ bản Vậy chờ lâu quá mong anh sớm ra tut để mội người cùng học hỏi cảm ơn anh rất nhiều
     
    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
  3. zDiv

    zDiv Super Moderator

    Tham gia: 12/02/14, 08:02 AM
    Bài viết: 13
    Đã được thích: 20
    Điểm thành tích:
    18
    Re: RE4: Hướng dẫn sử dụng .NET Reflector

    Cám ơn bạn đã quan tâm tới chủ đề này.
    Hiện tại mình đang hoàn thiện bài viết RE4:Pack&Unpack, sẽ hoàn thành trong thời gian sớm nhất có thể. Có lẽ là tuần sau sẽ đưa lên forum thôi.;)
     
    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. nopperabou91

    nopperabou91 W-------

    Tham gia: 23/10/15, 10:10 PM
    Bài viết: 19
    Đã được thích: 0
    Điểm thành tích:
    6
    a ơi sao lúc e add-in reflecxil vô nó ko ra cái bảng thông báo clean file ạ T_T
     
    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
  5. zDiv

    zDiv Super Moderator

    Tham gia: 12/02/14, 08:02 AM
    Bài viết: 13
    Đã được thích: 20
    Điểm thành tích:
    18
    Bạn nháy chuột phải vào file cần phân tích, chọn Reflexil => chọn Obfuscator search.

    reflexil.png
     
    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. MinhMy

    MinhMy W-------

    Tham gia: 04/01/16, 03:01 PM
    Bài viết: 23
    Đã được thích: 2
    Điểm thành tích:
    3
    Cái patchme.exe trong bài này ko có link tải ạ?
     
    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: 197
    Đã được thích: 127
    Điểm thành tích:
    43
    D bài này giới thiệu tool, bạn chịu khó chờ chủ đăng link tải hoặc dùng tạm 1 file code C# nào để thực hành vậ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
    MinhMy thích bài này.
  8. MinhMy

    MinhMy W-------

    Tham gia: 04/01/16, 03:01 PM
    Bài viết: 23
    Đã được thích: 2
    Điểm thành tích:
    3
    Em cũng tự code ra 1 cái để thực hành luôn. Nhưng do em không biết làm sao mã hóa được code như ở bài viết nên thắc mắc.

    Tác giả trong bài viết mã hóa các tên biến được như vầy, nên em thắc mắc.

    [​IMG]
     
    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
  9. whf

    whf Super Moderator Thành viên BQT

    Tham gia: 06/07/13, 03:07 AM
    Bài viết: 1,002
    Đã được thích: 667
    Điểm thành tích:
    113
    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
    MinhMy thích bài này.
  10. MinhMy

    MinhMy W-------

    Tham gia: 04/01/16, 03:01 PM
    Bài viết: 23
    Đã được thích: 2
    Điểm thành tích:
    3
    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