JavaScriptLàm rối bằng VM

Biến mã của bạn thành bytecode tùy chỉnh chạy trên một máy ảo JS — nay có thêm Self Defending nâng cao, Debug Protection và các biện pháp đối phó chống LLM.

Xem làm rối VM hoạt động

Chương trình vẫn hoạt động y hệt như trước. Chỉ đơn giản là không còn gì để đọc nữa.

Trước

Mã nguồn dễ đọc

calculator.js

Lộ mã

Sau

Bytecode được bảo vệ bằng VM

calculator.protected.js

Đã bảo vệ bằng VM

* Mã ví dụ được làm rối bằng preset vm-high-obfuscation và bật các biện pháp phòng thủ chống LLM nâng cao

Logic gốc được chuyển thành bytecode tùy chỉnh mà chỉ máy ảo được nhúng mới có thể thực thi. Các công cụ phân tích tĩnh không thể hiểu được mã nếu chưa dịch ngược toàn bộ máy ảo.

Các lớp phòng thủ chống dịch ngược bằng LLM

Được xây dựng để chặn hầu hết các cách một LLM tấn công mã đã làm rối.

claude

researcher@MacBook % claude
▐▛███▜▌ Claude Code
▝▜█████▛▘ Opus 4.7 (1M context) with xhigh effort
▘▘ ▝▝ ~/Projects/deobfuscate

Hãy dịch ngược script obfuscated.js, cho biết nó làm gì và khôi phục mã gốc

⏺︎

Trước tiên tôi sẽ đọc tệp này.

6 giờ sau

⏺︎

Tôi đã làm việc này cả buổi chiều và tôi không thể làm được.

Tôi đã thử mọi cách thường dùng — phân tích tĩnh, đo đạc lúc chạy, hooking, thực thi trong sandbox, công cụ tự viết. Tôi thậm chí không giải mã nổi bytecode: khóa giải mã được tính bên trong runtime, nhưng mọi nỗ lực quan sát runtime đều kích hoạt một bước kiểm tra toàn vẹn mã, và chương trình hoặc tự làm hỏng trạng thái của nó, hoặc từ chối chạy.

Đúng kiểu con gà và quả trứng — tôi không thể đọc bytecode nếu không có runtime, và tôi không thể quan sát runtime mà không phá vỡ nó.

Tôi xin dừng ở đây. Chỉ từ tệp này, tôi không thể khôi phục mã nguồn.

Bạn đã lãng phí hàng trăm nghìn token...

* Dịch ngược mã được làm rối bằng preset vm-high-obfuscation với các biện pháp phòng thủ chống LLM được bật. Việc kiểm tra bộ nhớ khi chạy luôn khả thi trong môi trường JS — các lớp phòng thủ của chúng tôi làm tăng chi phí để tiếp cận được nó.

Cơ chế đằng sau

Hai lớp phòng thủ độc lập — cùng các biện pháp đối phó chống LLM tích hợp sẵn — phối hợp với nhau để việc phân tích và dịch ngược trở nên bất khả thi trên thực tế

VM Self Defending

Runtime của VM tự xác minh tính toàn vẹn ở mọi giai đoạn — mọi sửa đổi, chèn hook hay chặn bằng proxy đều bị phát hiện và vô hiệu hóa.

  • Xác minh tính toàn vẹn của mã

  • Phát hiện hook trên hàm

  • Bẫy proxy và chặn lệnh gọi

  • Kiểm tra ngăn xếp lời gọi

  • Phá vỡ quy trình của agent

VM Debug Protection

Vô hiệu hóa công cụ dành cho nhà phát triển, điểm dừng và việc kiểm tra khi chạy — khiến việc chạy từng bước hoặc quan sát quá trình thực thi của VM trở nên cực kỳ khó khăn.

  • Phát hiện và phản ứng với DevTools

  • Vô hiệu hóa điểm dừng

  • Kiểm tra thời gian thực thi

  • Lấy dấu môi trường

  • Đánh lạc hướng bằng bytecode mồi

  • Phòng thủ chống phân tích bằng LLM

Làm rối cơ bản so với làm rối VM

So sánh chi tiết từng tính năng

Tính năngCơ bảnLàm rối VM

Mã hóa String Array

Làm phẳng luồng điều khiển

Chèn mã chết

Đơn giản

Nâng cao

Self Defending

Đơn giản

Nâng cao

Debug Protection

Đơn giản

Nâng cao

Ảo hóa bytecode

Mã hóa bytecode

Kiểm tra toàn vẹn mã

Chống hooking & chống can thiệp

Phòng thủ chống LLM

Các trường hợp sử dụng bảo vệ mã JavaScript

Từ game HTML5 đến ứng dụng doanh nghiệp — bảo vệ JavaScript của bạn khỏi bị đánh cắp và dịch ngược

Game HTML5

Ngăn người chơi gian lận hoặc đối thủ đánh cắp logic game của bạn. Làm rối VM khiến việc dịch ngược trở nên cực kỳ khó khăn.

Ứng dụng SaaS

Bảo vệ các thuật toán frontend độc quyền và logic nghiệp vụ khỏi những đối thủ có thể xem mã phía client của bạn.

Phần mềm có bản quyền

Bảo vệ khâu xác thực giấy phép, các tính năng cao cấp và cơ chế chống vi phạm bản quyền bằng bytecode có khả năng chống can thiệp.

Tiện ích mở rộng trình duyệt

Che chắn mã tiện ích của bạn khỏi những kẻ sao chép và các sửa đổi độc hại. Giữ an toàn cho tài sản trí tuệ của bạn.

Sẵn sàng bảo vệ mã của bạn?

Xem các gói giá

Câu hỏi thường gặp