zDiv
Super Moderator
-
12/02/2014
-
21
-
12 bài viết
RE4: Hướng dẫn sử dụng .NET Reflector
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
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 đó.
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.
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ụ.
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ì.
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.
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.
Và thông báo sau hiện ra
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
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.
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.
Sau khi đã hoàn thành thì lưu lại những thay đổi như sau:
Lưu lại và tận hưởng thành quả của mình.
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.
Đây là file patchme.exe mình sử dụng làm ví dụ trong bài viết.
Ở 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
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 đó.
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.
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ụ.
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ì.
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.
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.
Và thông báo sau hiện ra
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
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.
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.
Sau khi đã hoàn thành thì lưu lại những thay đổi như sau:
Lưu lại và tận hưởng thành quả của mình.
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.
Đây là file patchme.exe mình sử dụng làm ví dụ trong bài viết.
Chỉnh sửa lần cuối bởi người điều hành: