Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.45 MB, 563 trang )
47
Chương 1: Phát triển ứng dụng
Nếu việc xây dựng các giải pháp dựa-trên-server là không phù hợp, bạn có hai tùy chọn sau
đây:
• Sử dụng một obfuscator để khiến cho assembly của bạn khó bị dịch ngược (Visual
Studio .NET 2003 có chứa phiên bản Community của một obfuscator, có tên là
Dotfuscator). Obfuscator sử dụng nhiều kỹ thuật khác nhau khiến cho assembly khó bị
dịch ngược; nguyên lý của các kỹ thuật này là:
▪
Đổi tên các trường và các phương thức private nhằm gây khó khăn cho việc
đọc và hiểu mục đích của mã lệnh.
▪
Chèn các lệnh dòng điều khiển khiến cho người khác khó có thể lần theo
logic của ứng dụng.
• Chuyển những phần của ứng dụng mà bạn muốn giữ bí mật thành các đối tượng
COM hay các DLL nguyên sinh, sau đó sử dụng P/Invoke hoặc COM Interop để gọi
chúng từ ứng dụng được-quản-lý của bạn (xem chương 15 về cách gọi mã lệnh khôngđược-quản-lý).
Không có cách tiếp cận nào ngăn được những người có kỹ năng và quyết tâm dịch ngược mã
nguồn của bạn, nhưng chúng sẽ làm cho công việc này trở nên khó khăn đáng kể và ngăn
được hầu hết nhưng kẻ tò mò thông thường.
Nguy cơ một ứng dụng bị dịch ngược không chỉ riêng cho C# hay .NET. Một người quyết tâm
có thể dịch ngược bất kỳ phần mềm nào nếu anh ta có kỹ năng và thời gian.
48
Chương 1: Phát triển ứng dụng
49
Chương 2: THAO TÁC DỮ LIỆU
2
50