Tài liệu
/
Làm rối VM
/

VM Debug Protection

VM Debug Protection

Pro

Xem

Obfuscator.io Advanced Defenses: Self-Defending, Debug Protection, Domain Lock

Xem trên YouTube

Tùy chọn vmDebugProtection bổ sung các biện pháp chống gỡ lỗi cho runtime của VM, khiến việc dịch ngược mã được bảo vệ của bạn khó khăn hơn đáng kể. Cách mỗi lần phát hiện phản ứng được thiết lập bởi các danh mục debugger, automation và sandbox của vmDefenseReaction.

Khi browserEnvironment.hosting được đặt thành 'remote' (v7.14.1+), Debug Protection còn ràng buộc bản dựng với việc được phục vụ từ một host từ xa: một bản sao được phục vụ từ một host phát triển cục bộ sẽ bị coi là không khớp môi trường chạy, và các cơ chế phòng thủ chống tự động hóa sẽ phản ứng.

Các cơ chế phòng thủ này cũng tác động lên chính các agent, công cụ tự động hóa và trình gỡ lỗi của bạn. Chúng có thể dừng việc thực thi, ném ra các lỗi không liên quan, hoặc tạo ra kết quả sai. Hãy dùng một bản dựng kiểm thử riêng cho kiểm thử chức năng; Kiểm thử và CI liệt kê các tùy chọn mà bản dựng đó ghi đè.

Phát hiện trình kiểm tra

Từ phiên bản obfuscator 8.0.0, vmDebugProtection nhận một đối tượng ngoài giá trị boolean. Truyền vào một đối tượng sẽ giữ Debug Protection bật trong khi nới lỏng một bộ phát hiện duy nhất:

JavaScript

inspectorDetection (mặc định bật) phát hiện và phản ứng khi có một trình kiểm tra Chrome DevTools Protocol được gắn vào hoặc một trình gỡ lỗi đang hoạt động. Việc mở công cụ dành cho nhà phát triển của trình duyệt sẽ gắn một phiên như vậy, nên một trình kiểm tra đang mở sẽ bị phát hiện và bị phản ứng. Hãy giữ nó bật cho môi trường production; chỉ tắt nó nếu người dùng của bạn có lý do chính đáng để mở công cụ dành cho nhà phát triển. Trên bảng điều khiển, đây là công tắc phụ Inspector Detection bên dưới VM Debug Protection (v8.0.0+), xuất hiện khi Debug Protection được bật.

Các framework tự động hóa. Khi inspectorDetection bật (mặc định), việc điều khiển trang được bảo vệ bằng một công cụ dựa trên CDP (Puppeteer, Playwright, Selenium/ChromeDriver) sẽ bị phát hiện là một trình kiểm tra được gắn vào. vmDebugProtection: { inspectorDetection: false } chỉ tắt bộ phát hiện trình kiểm tra; bộ phát hiện tự động hóa của Debug Protection vẫn có thể phản ứng với một trình duyệt đang bị điều khiển. Với các bản dựng kiểm thử tự động, hãy làm theo Kiểm thử và CI, trang này tắt vmDebugProtection và vmSelfDefending.

Content Security Policy

Nếu Content Security Policy của bạn cấm đánh giá động (không có unsafe-eval), hãy dùng target browser-no-eval và kiểm tra đầu ra dưới chính sách đó. Target này dùng một phương án dự phòng cho các bước kiểm tra vốn dựa vào đánh giá động. Điều tương tự áp dụng cho các tiện ích mở rộng trình duyệt có CSP nghiêm ngặt: hãy dùng browser-no-eval để có khả năng tương thích tốt nhất.