Làm xáo trộn ứng dụng Silverlight của bạn với Dotfuscator

Trang Cập Nhật :
Ngày tạo trang :

Về Dotfuscator

Dotfuscator là một obfuscator làm cho mã nguồn khó đọc khi các ứng dụng được viết bằng .NET Framework được tháo rời. Dotfuscator có sẵn trong cả hai phiên bản bán lẻ miễn phí và trả phí đi kèm với Visual Studio.

Phiên bản miễn phí chỉ có sẵn với nhiều tính năng hạn chế và giả định rằng Visual Studio đang chạy, nhưng bất kỳ ai có cài đặt Visual Studio đều có thể sử dụng nó. Phiên bản trả phí có nhiều tính năng xáo trộn mạnh mẽ không có sẵn trong phiên bản miễn phí, nhưng có thể gây khó chịu khi nó được cung cấp với mức giá mà công chúng khó có thể mua được.

Dotfuscator có thể có các tính năng, giá cả và phiên bản khác nhau tùy thuộc vào phiên bản, vì vậy vui lòng tham khảo trang web sau để biết chi tiết.

Dotfuscator

Phân tích cú pháp mã

Như đã đề cập ở trên, các ứng dụng được tạo bằng .NET Framework có thể dễ dàng đọc mã nguồn gốc bằng cách tháo rời, nhưng điều thực sự xảy ra là khi bạn tháo rời một tệp lắp ráp như trong hình, hầu hết mã nguồn gốc như không gian tên, tên lớp và tên phương thức có thể được sao chép.

解析されたコード

Thủ tục xáo trộn

Bắt đầu bằng cách tạo ứng dụng Silverlight như bình thường và thực hiện bản dựng Phát hành. Ở đây, chúng ta đang tạo ra một ứng dụng chỉ đặt hai nút.

Release ビルド

Trong thư mục Bin\Release của thư mục chứa dự án, nhập . xap" là một tệp gói tóm tắt các chương trình và tệp được sử dụng trong các ứng dụng Silverlight.

XAP ファイル

Trên thực tế, tệp này được nén và biên dịch dưới dạng tệp ZIP, vì vậy phần mở rộng là ". khóa kéo".

拡張子を .zip に変更

Nó đã được thay đổi thành tệp ZIP.

ZIP ファイル

Khi bạn mở tệp, nó chứa tệp kê khai và DLL. DLL này là phiên bản biên dịch của chương trình chạy như một ứng dụng.

Nhân tiện, tệp DLL cũng được đặt trong thư mục Phát hành khi nó được tạo, vì vậy lần này chúng tôi sẽ làm xáo trộn tệp này.

ZIP ファイルの中身

Từ menu Visual Studio, chọn Công cụ, sau đó chọn Dotfuscator và phân tích trước.

Khi bắt đầu lần đầu tiên, hộp thoại "Thỏa thuận cấp phép" sẽ được hiển thị, vì vậy hãy đọc kỹ nội dung, kiểm tra "Có, tôi chấp nhận thỏa thuận cấp phép." và nhấp vào nút "OK".

PreEmptive Dotfuscator And Analytics を選択

Dotfuscator và Analytics CE ưu tiên bắt đầu.

PreEmptive Dotfuscator And Analytics CE

Chọn "Đầu vào" từ cây bên trái và nhấp vào nút "Thêm đầu vào".

入力の追加

Chọn tệp DLL mà bạn đã tạo trong quá trình xây dựng.

ビルドで生成した DLL ファイルを選択

Chọn tệp DLL bạn đã thêm và bỏ chọn Chế độ thư viện > Chuyển đổi XAML.

Nếu chọn "Chế độ thư viện", các lớp và phương thức được xác định ở chế độ công khai sẽ không bị xáo trộn.

Nếu "Chuyển đổi XAML" được chọn, các lớp được xác định trong XAML sẽ bị xáo trộn, nhưng tùy thuộc vào cách bạn tạo nó, nó sẽ gây ra lỗi khởi động, vì vậy nếu nó xảy ra, vui lòng bỏ chọn nó.

「ライブラリ モード」「XAML の変換」のチェックを外す

Về cơ bản, tất cả các lớp, phương thức, thuộc tính và tên biến đều bị xáo trộn, nhưng nếu bạn không muốn làm xáo trộn một không gian tên hoặc lớp cụ thể do tuần tự hóa, hãy chọn "Đổi tên" từ cây bên trái, chọn tab "Loại trừ" và kiểm tra không gian tên hoặc lớp đích.

難読化の除外

Trong Quy tắc Dựng sẵn, hãy đảm bảo chọn Trường cho Silverlight và WPF UserControls. Kiểm tra điều này sẽ làm cho trường UserControls bị xáo trộn và sẽ chạy thành công. Bạn có thể bỏ chọn nó nếu nó có vẻ hoạt động chính xác ngay cả sau khi làm xáo trộn.

Silverlight および WPF UserControls のフィールド

Khi bạn hoàn tất, hãy nhấp vào nút "Xây dựng dự án" từ thanh công cụ.

プロジェクトのビルド

Nếu có thay đổi đối với dự án, hộp thoại xác nhận lưu dự án sẽ được hiển thị, vì vậy hãy nhấp vào "Có" để lưu.

プロジェクト保存確認ダイアログ

Dự án được gọi là ". xml" tập tin. Các tệp bị xáo trộn được lưu ở cùng một vị trí.

プロジェクト保存

Chờ cho quá trình xây dựng hoàn tất khi nó bắt đầu. Lưu ý rằng chương trình càng lớn thì thời gian xây dựng càng lâu. Khi nó trông giống như hình, bản dựng đã hoàn thành.

Trường thông báo hiển thị tiến trình của bản dựng và kết quả ngắn gọn như mức độ xáo trộn của nó.

ビルド完了

Nếu bạn chọn Kết quả từ cây bên trái, bạn có thể xem chi tiết về cách tên lớp và phương thức đã thay đổi.

Trong tên lớp và phương thức, sẽ có một biểu tượng Dotfuscator và các tên như "a" và "b", sẽ là tên bị xáo trộn. Bằng cách thay đổi tên lớp hoặc tên phương thức thành một tên vô nghĩa theo cách này, ngay cả khi nó được tháo rời, nó có thể làm cho nội dung của mã nguồn khó đọc.

難読化結果

Tệp bị xáo trộn được tạo trong một thư mục có tên "Dotfuscated" trong thư mục của tệp .xml được lưu trong Lưu dự án. Ngoài tệp bị xáo trộn, tệp "Bản đồ.xml" đã được tạo, nhưng đây là kết quả của việc xáo trộn và không được sử dụng.

難読化したファイル

Nếu bạn tháo rời tệp bị xáo trộn, bạn có thể thấy rằng một số tên lớp và phương thức đã được thay đổi thành "a" hoặc "b".

Lần này, dự án mặc định được tạo ra đã bị xáo trộn gần như cũ, vì vậy tôi nghĩ rằng có một hình ảnh mà nó không quá xáo trộn, nhưng tôi nghĩ rằng hiệu ứng của sự xáo trộn trở nên rõ ràng hơn vì số lượng các lớp, v.v. tăng lên khi dự án phát triển.

Như một bên, . Ví dụ: thư viện NET Framework và không phải đổi tên vì chúng là các cụm đã được cài đặt trên Windows.

難読化したコードの解析

Silverlight không sử dụng DLL nguyên trạng, vì vậy chúng được đóng gói dưới dạng tệp XAP. Như đã đề cập ở phần đầu, tệp XAP chỉ là một thay đổi trong phần mở rộng của tệp ZIP, vì vậy nó tạo tệp ZIP bằng cách thu thập các tệp có trong tệp XAP và các DLL bị xáo trộn.

Tạo tệp ZIP có thể được thực hiện bằng các tính năng hệ điều hành tiêu chuẩn.

ファイルを ZIP 化

Một tệp ZIP được tạo.

ZIP ファイル

Tiện ích mở rộng được thay đổi thành '. xap" và nếu tên tệp khác, hãy thay đổi nó thành tên tệp gói ban đầu.

Đặt tệp XAP ở vị trí phân phối.

XAP ファイルに変更

Vui lòng kiểm tra thao tác và xem nó có hoạt động bình thường không.

Nếu nó không khởi động, hãy kiểm tra cho đến khi nó hoạt động bình thường bằng cách giảm mã bị xáo trộn. Lưu ý rằng Silverlight thường gặp khó khăn trong các vấn đề liên quan đến XAML.

動作確認

Mặc dù các hướng dẫn không được liệt kê ở đây, nhưng nếu bạn muốn ký một chương trình, hãy xây dựng nó ở trạng thái ký trễ, làm xáo trộn lắp ráp và sau đó ký lại. Ngay cả khi bạn làm xáo trộn nó trong khi nó được ký, mã chữ ký được đính kèm tại thời điểm xây dựng và mã chữ ký sau khi xáo trộn sẽ không khớp, vì vậy bạn sẽ không thể bắt đầu nó.

Trong bài viết này, tôi đã liệt kê các bước cho phiên bản miễn phí, nhưng nếu bạn sử dụng phiên bản trả phí, bạn có thể thực hiện xáo trộn phức tạp hơn và ngăn chặn việc tháo gỡ chính nó. Tuy nhiên, xáo trộn có khả năng gây ra các tác dụng phụ khác nhau, vì vậy khi thực hiện xáo trộn, cần phải xem xét liệu nó có hoạt động bình thường ngay từ khi bắt đầu thiết kế hay không.