2011-07-19 10 views
5

Tôi đã cố gắng để áp dụng bảo vệ mã bằng cách sử dụng bộ obfuscator SmartAssembly để một ứng dụng Prism WPF, nhưng nó ứng dụng từ chối hoạt động đúng khi bị obfuscated.
Obfuscator "Ngăn chặn Microsoft IL Disassembler từ mở lắp ráp của tôi" tùy chọn

Các lựa chọn duy nhất mà làm việc cho nó là: Ngăn chặn Microsoft IL disassembler từ mở lắp ráp của tôi.

Trợ giúp của Red-Gates mô tả nó là: SmartAssembly có thể thêm thuộc tính vào lắp ráp của bạn, ngăn chặn bộ tách rời (IL) của Microsoft mở phiên bản.

Tôi tự hỏi mức độ bảo vệ này nghiêm trọng như thế nào, có đáng để áp dụng nếu mã không thực sự bị làm xáo trộn. Hoặc, nói cách khác, nó là gì Trình tách rời Ngôn ngữ Trung gian Chung (IL) của Microsoft (ildasm.exe)? Đây có phải là phần chính của mọi công cụ kỹ thuật đảo ngược .NET được biết đến hay chỉ là một trong nhiều công cụ như vậy?

Trả lời

9

ildasm.exe là bộ tách IL đi kèm với .Net Framework. Đó là một công cụ mà mọi người đều có nếu họ có .Net. Nó không phải là một thành phần, vì vậy các disassemblers khác không dựa trên nó hay bất cứ thứ gì.

Thuộc tính được đề cập là SuppressIldasmAttribute. Tôi không biết nếu các disassemblers khác như Reflector hoặc ILSpy tôn trọng thuộc tính này, nhưng tôi nghi ngờ nó. Một tìm kiếm Google cursory cho thấy rằng không phải là trường hợp, và rằng SuppressIldasmAttribute chỉ ảnh hưởng đến ildasm.exe chính nó.

Như vậy, nó không thực sự bảo vệ lắp ráp của bạn và không được sử dụng nhiều như một công cụ obfuscation. Nhưng nếu bạn đang obfuscating anyway, tôi không thấy bất kỳ lý do tại sao bạn sẽ không áp dụng thuộc tính này, vì nó ít nhất là khối dễ nhất (thường có sẵn) phương pháp tháo gỡ và tôi không nghĩ rằng nó có bất kỳ tác hại.

+1

Thuộc tính là 'System.Runtime.CompilerServices.SuppressIldasmAttribute' và nó không dừng Reflector. –