Elyzium OBF
Làm cho mã chương trình khó bị đọc hiểu và sao chép.
Bản ứng viên phát hành (0.1.0-rc1)
↓ Elyzium OBF (khi build)
Chương trình chạy y như cũ
↓
Khó đọc, khó phân tích ngượcSơ đồ minh họa quy trình.
Vấn đề sản phẩm giải quyết
Phần mềm được phát hành dưới dạng file chương trình. Dù bạn không công bố mã nguồn, những người có chuyên môn vẫn có thể dùng công cụ phân tích để đọc ngược file đó: tìm ra thuật toán riêng của bạn, đoạn kiểm tra giấy phép, hay các khóa và chuỗi nhạy cảm nằm bên trong. Elyzium OBF làm cho việc này tốn nhiều thời gian và công sức hơn nhiều, trong khi chương trình vẫn chạy chính xác như ban đầu.
Dành cho ai
Nhóm phát triển ứng dụng, game hoặc thư viện bằng C/C++ muốn bảo vệ thuật toán riêng, cơ chế kiểm tra bản quyền hoặc các thông tin nhạy cảm nhúng trong chương trình.
Tình huống sử dụng
- Bảo vệ đoạn mã kiểm tra giấy phép khỏi bị gỡ bỏ hay chỉnh sửa.
- Giấu khóa, chuỗi cấu hình hoặc địa chỉ nhạy cảm không để lộ khi người khác mở file chương trình.
- Bảo vệ thuật toán độc quyền trong thư viện bạn phân phối cho khách hàng.
- Gây khó khăn cho việc bẻ khóa phần mềm hoặc game viết bằng C/C++.
Tính năng nổi bật
Chọn đúng phần cần bảo vệ
Bạn tự đánh dấu những hàm và dữ liệu thật sự quan trọng. Chỉ phần này được biến đổi, nên tốc độ chạy và kích thước của toàn bộ chương trình ít bị ảnh hưởng. Bạn không phải trả giá hiệu năng cho cả dự án chỉ để bảo vệ vài chỗ then chốt.
Giấu giá trị và chuỗi nhạy cảm
Những con số, chuỗi ký tự cố định như mã kiểm tra hay khóa thường nằm lộ ngay trong file chương trình. Elyzium OBF không để chúng ở dạng đọc được: chúng được ghép lại tại thời điểm chương trình chạy, nên người xem file sẽ không tìm thấy chúng bằng cách tìm kiếm thông thường.
Làm rối cách chương trình tính toán
Cách chương trình xử lý dữ liệu được biến đổi sang dạng tương đương nhưng khó theo dõi. Người phân tích phải mất nhiều công sức hơn để hiểu từng bước chương trình đang làm.
Xóa dấu vết dễ đoán
Tên gọi của hàm và biến thường tiết lộ chức năng của chúng. Elyzium OBF rút gọn các tên này và xáo trộn thứ tự bên trong, khiến việc đoán xem từng phần làm gì trở nên khó hơn.
Hành vi chương trình không thay đổi
Mục tiêu là bảo vệ mà không làm hỏng chức năng. Chương trình sau khi xử lý vẫn cho kết quả như trước; bạn nên chạy bộ kiểm thử sẵn có để xác nhận trước khi phát hành.
Kết quả có thể tái lập
Với cùng cấu hình, bạn nhận được cùng kết quả. Điều này giúp đội của bạn kiểm soát và so sánh các phiên bản phát hành một cách rõ ràng.
Cách triển khai
Chọn phần cần bảo vệ
Đánh dấu các hàm hoặc dữ liệu quan trọng ngay trong mã nguồn.
Bật khi build
Thêm Elyzium OBF vào lệnh biên dịch hiện có. Với dữ liệu nhạy cảm, cần thêm một thư viện nhỏ đi kèm.
Build như bình thường
Quá trình biên dịch tự động xử lý phần đã đánh dấu.
Kiểm tra trước khi phát hành
Chạy bộ kiểm thử để chắc chắn chương trình hoạt động đúng.
Thông tin chi tiết
| Giai đoạn | Bản ứng viên phát hành 0.1.0-rc1 |
|---|---|
| Ngôn ngữ hỗ trợ | C và C++ |
| Cách sử dụng | Plugin cho trình biên dịch Clang |
| Hệ điều hành đã kiểm chứng đầy đủ | macOS |
| Hệ điều hành khác | Linux được build thường xuyên trong hệ thống kiểm tra tự động; Windows đã từng kiểm chứng ở giai đoạn trước |
| Phạm vi tác động | Chỉ phần mã và dữ liệu được đánh dấu |
Giới hạn cần biết
Chúng tôi nêu rõ để bạn có kỳ vọng đúng:
- Hiện macOS là hệ điều hành duy nhất được kiểm chứng đầy đủ cho bản này.
- Sản phẩm làm tăng chi phí phân tích chứ không cam kết chống được kẻ tấn công có năng lực cao.
- Dữ liệu được giấu sẽ mất thêm một chút thời gian mỗi lần truy cập, nên phù hợp cho thông tin quan trọng hiếm khi dùng, không phù hợp cho đoạn xử lý lặp lại liên tục.
- Chỉ trình biên dịch Clang được hỗ trợ; trình biên dịch khác vẫn build được nhưng không có bảo vệ.
Quan tâm tới Elyzium OBF?
Gửi yêu cầu để nhận tư vấn và báo giá phù hợp với dự án của bạn.