Trong bài này csharpcanban.com sẽ hướng dẫn các bạn tìm hiểu kỹ thuật làm rỗi mã để chống dịch ngược mã nguồn (Obfuscator), và giới thiệu công cụ chống dịch ngược mã nguồn Phoenix Protector.
Nội dung
1. Giới thiệu kỹ thuật Obfuscator (Kỹ thuật làm rối mã)
Kỹ thuật Obfuscator giống như mã hóa source code dạng thô sơ vậy, có mục đích bảo vệ mã nguồn và tránh bị người khác “vô tình dùng mất mà chẳng biết làm cách nào”.
Kỹ thuật Obfuscator làm thay đổi tên hàm, tên lớp, tên biến, … hoặc chia nhỏ mã nguồn thành các đọan rất khó đọc để người khác không thể đọc được.
Sau khi Obfuscator trong mã nguồn sẽ không còn các lời bình (comment), nhưng vẫn có một số thứ không thay đổi như: các từ khóa (keyword) và cấu trúc lệnh của ngôn ngữ lập trình.
Kỹ thuật Obfuscator biến mã nguồn của bạn trở thành một “ma trận” chuỗi và số, khá an toàn trước những chuyên viên “đánh cắp mã nguồn & thay đổi bản quyền”.
2. Giới thiệu công cụ Phoenix Protector
Công cụ chống dịch ngược mã nguồn Phoenix Protector là một ứng dụng hoàn toàn miễn phí. Kết hợp với Rebel.NET DisasMSIL để tạo obfuscator cho .NET assemblies.
Phoenix Protector có khả năng bảo bệ .NET assemblies. Và là giải pháp lý tưởng cho mọi nhà phát triển trên nền tảng .NET không sử dụng server-side do hỗ trợ tất cả các loại dự án và khả năng tương thích với tất cả các phiên bản của NET framework .
Chương trình có tất cả các tính năng obfuscation chung để đảm bảo mã nguồn của bạn như Name , String và Control Flow Obfuscation. Tính năng cuối cùng đặc biệt quan trọng là ngăn cản mã nguồn .NET bị dịch ngược.
[C#] Hướng dẫn chống dịch ngược mã nguồn
Sử dụng tính năng Name Obfuscation: tất cả các MetaData ban đầu trong một.NET assemblies được đổi tên thành những chuỗi ký tự khó đọc. Bằng cách obfuscate một assembly với tính năng này, các mã nguồn bị dịch ngược sẽ thông thể biên dịch được .
[C#] Hướng dẫn chống dịch ngược mã nguồn
Các tính năng khác là String và Control Flow Obfuscation. String Obfuscation làm cho String không thể bị dịch ngược và disasemble. Đây không phải là giải pháp bảo vệ tốt nhất nhưng là một tính năng tiêu chuẩn cần có cho .NET assemblies .
Control Flow Obfuscation bảo vệ mã nguồn của bạn bằng cách thay đổi cấu trúc cơ bản có thể bị dịch ngược, nhận dạng như các khối có điều kiện và các vòng lặp. Control Flow Obfuscation sẽ phá vỡ cấu trúc mã nguồn nếu như bị dịch ngược.
Ngoài ra, kết hợp các .NET assemblies. của bạn có thể làm cho mã nguồn của bạn an toàn hơn. Đó là lý do tại sao Phoenix Protector tích hợp thêm tiện ích ILMerge của Microsoft.
[C#] Hướng dẫn chống dịch ngược mã nguồn
3. Lời kết
Trên đây csharpcanban.com đã làm rõ vấn đề chống dịch ngược mã nguồn bằng cách làm rối mã, đồng thời giới thiệu các bạn một công cụ chống dịch ngược mã nguồn hữu ích. Các bạn có thể tải file cài đặt công cụ theo đường dẫn dưới đây.
Link tải trực tiếp: http://www.ntcore.com/files/Phoenix_Protector.msi