Không tìm thấy lệnh javascript-obfuscator

Không, mặc dù không thể khôi phục chính xác mã nguồn ban đầu nhưng ai đó có thời gian, kiến ​​thức và sự kiên nhẫn có thể thiết kế ngược lại mã nguồn đó

Vì JavaScript chạy trên trình duyệt nên công cụ JavaScript của trình duyệt phải có khả năng đọc và diễn giải nó, vì vậy không có cách nào để ngăn chặn điều đó. Và bất kỳ công cụ nào hứa hẹn không trung thực

Tại sao mã bị xáo trộn của tôi lớn hơn nguồn ban đầu của tôi?

Bởi vì obfuscator giới thiệu các đoạn mã mới nhằm bảo vệ và chống lại việc gỡ lỗi và kỹ thuật đảo ngược. Ngoài ra, các chuỗi được chuyển đổi thành mã thập lục phân \xAB để làm cho mọi thứ khó hiểu hơn một chút. Bạn không phải lo lắng quá nhiều về kích thước mã vì có rất nhiều lần lặp lại, vì vậy mã bị xáo trộn sẽ được máy chủ web của bạn nén cực kỳ tốt [nếu bạn đã bật tính năng nén GZIP trên máy chủ của mình, điều mà hầu hết hiện nay đều làm]

Tôi có thể chạy một công cụ khai thác như UglifyJS hoặc Google Closure Compiler trên đầu ra bị xáo trộn không?

Không, nó không được khuyến khích và trong một số trường hợp, nó sẽ phá vỡ mã [chẳng hạn như nếu bạn bật tự bảo vệ]. Tuy nhiên, bạn có thể chạy mã của mình thông qua một công cụ khai thác để đảm bảo rằng mã đó loại bỏ mã chết và thực hiện các tối ưu hóa khác.

Bạn có lưu trữ mã nguồn của tôi không?

Không. Nguồn được máy chủ ứng dụng của chúng tôi xử lý, sau đó đến bộ mã hóa mã nguồn và quay lại trình duyệt, do đó, nguồn này chỉ nằm trên bộ nhớ máy chủ của chúng tôi trong một khoảng thời gian ngắn [thường là mili giây]

Tôi có thể khôi phục mã nguồn ban đầu từ mã bị xáo trộn không?

Không, không thể hoàn nguyên mã bị xáo trộn về mã gốc của bạn, vì vậy hãy giữ mã gốc an toàn

Công cụ này có hoạt động với Node không. mã nguồn js?

Đúng

Tôi muốn chạy obfuscator trên máy chủ/máy của mình. Có thể không?

Chắc chắn rồi. Công cụ này sử dụng trình mã hóa mã nguồn mở và miễn phí [được cấp phép theo Khoản BSD-2] được viết bằng TypeScript. Bạn có thể truy cập trang GitHub của nó và đọc thêm ở đó

Ngoài ra còn có một số plugin, chẳng hạn như. webpack-obfuscator, gulp-javascript-obfuscator và grunt-contrib-obfuscator

JSDefender CLI hỗ trợ tên tùy chọn ngắn và dài. Tên ngắn bắt đầu bằng một dấu gạch ngang [_______13_______], trong khi tên dài bắt đầu bằng hai dấu gạch ngang [--]. Nhiều lựa chọn chỉ có tên dài

Cài đặt cấu hình cơ bản

  • -v, --version. Hiển thị phiên bản sản phẩm
  • -h, --help. Hiển thị thông tin trợ giúp về cách sử dụng CLI, bao gồm các tùy chọn dòng lệnh
  • -c, --config. Tệp cấu hình chứa các cài đặt. Tên của tệp nên theo tùy chọn
  • jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    0,
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    1. Với tùy chọn này, bạn có thể chỉ định tên và đường dẫn của tệp bản đồ. Hoặc, sử dụng giá trị
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    2, bạn có thể tắt lưu tệp bản đồ. Tên của tệp [hoặc công tắc
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    2] phải theo tùy chọn. Xem thêm chi tiết tại mục Lexical map
  • jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    4. Bạn có thể chỉ định một tên tệp riêng biệt để công cụ bảo vệ phát ra thời gian chạy JSDefender cho tệp đó
  • jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    5. Cung cấp key bản quyền để chạy JSDefender CLI. Xem Cấp phép để tìm hiểu về các cách khác để chỉ định khóa cấp phép
  • jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    6. Khi chuyển đổi mã, JSDefender sử dụng phiên bản ECMAScript cao nhất được công nhận trong khi phân tích cú pháp đầu vào. Với tùy chọn này, bạn có thể thay đổi phiên bản ECMAScript. Tên của phiên bản ES để áp dụng [
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    7,
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    8,
    jsdefender myJsBundle.js myProtectedScript.js -E -L -b
    
    9, -0, -1, -2, -3] nên theo tùy chọn. Đặt phiên bản ECMAScript mục tiêu bằng -4 có nghĩa là JSDefender sẽ không chèn bất kỳ mã bảo vệ nào không tương thích với tiêu chuẩn đã chỉ định. Đối với hầu hết các biện pháp bảo vệ, hành vi này không thay đổi bất cứ điều gì. Khi nó thay đổi một cái gì đó, chúng tôi sẽ mô tả nó trong phần mô tả của bảo vệ riêng lẻ trên phần Định dạng tệp cấu hình của trang. Tuy nhiên, nếu mã nguồn của bạn chứa cú pháp với tiêu chuẩn ECMAScript cao hơn, thì JSDefender sẽ áp dụng biện pháp bảo vệ nhưng sẽ không phiên mã các phần phiên bản ES cao hơn của mã của bạn trở lại phiên bản cũ hơn;
  • -5, -6. Bật chế độ im lặng. Ở chế độ này, JSDefender chỉ phát ra một số thông tin chung, lỗi và cảnh báo. Mặc định là tắt
  • -7. Một số kỹ thuật bảo vệ sử dụng ngẫu nhiên, vì vậy mỗi lần chạy với cùng một cấu hình sẽ dẫn đến các kết quả đầu ra khác nhau. Giá trị phải là số nguyên 32 bit tuân theo tùy chọn. Nếu nó không được chỉ định hoặc 0, bảo vệ sẽ sử dụng giá trị gốc không xác định
  • -8. JSDefender kiểm tra mã nguồn để tìm các cấu trúc JavaScript không an toàn có thể phá vỡ mã đang hoạt động. Theo mặc định, việc tìm thấy bất kỳ phần tử không an toàn nào sẽ ngay lập tức hủy bỏ biện pháp bảo vệ bằng các thông báo lỗi cho biết vị trí mã nguồn của sự cố. Nếu bạn chắc chắn rằng không có phần tử không an toàn tiềm ẩn nào phá vỡ mã đang hoạt động của bạn, hãy sử dụng tùy chọn này để cho phép quá trình bảo vệ tiếp tục
  • -9. Vô hiệu hóa bằng cách sử dụng các chỉ thị bảo vệ nội tuyến, như thể chúng đã bị bỏ qua khỏi mã nguồn
  • --0. Vô hiệu hóa sử dụng màu sắc trong đầu ra CLI
  • --1. Bạn có thể chỉ định chế độ chèn của Thời gian chạy JSDefender [firstNonModule, splitSource, tất cả]. Đọc thêm trong phần
  • --2. Cho phép so khớp mẫu hình cầu cho các đường dẫn đầu vào. Sau khi bật --2, bạn có thể chỉ định các tệp đầu vào của mình bằng quy tắc mẫu nút-toàn cầu e. g. --4
  • --5. Các tệp được bảo vệ đã xuất ra thư mục này. Giá trị của nó phải là một đường dẫn tương đối hoặc tuyệt đối hợp lệ đến một thư mục. Vỡ nợ. --6

cài đặt bảo vệ

Ghi chú. Nhiều tùy chọn cấu hình chỉ định bật hoặc tắt các tùy chọn bảo vệ cụ thể. Tại đây, bạn chỉ tìm thấy một bản tóm tắt ngắn gọn về các tùy chọn dòng lệnh. Để tìm hiểu thêm về từng kỹ thuật bảo vệ, hãy đọc Kỹ thuật bảo vệ

  • --7, --8. Bật thay thế chữ Boolean
  • --9, -v0. Tắt thay thế chữ Boolean
  • -v1. Bật che giấu đối số liên tục
  • -v2. Tắt che giấu đối số liên tục
  • -v3. Bật obfuscation che giấu bảng điều khiển
  • -v4. Tắt giao diện điều khiển che giấu obfuscation
  • -v5. Đặt khoảng thời gian ngày trong thời gian chạy để kiểm tra xem ngày hiện tại có nằm trong một phạm vi cụ thể không. Khoảng thời gian có thể có ngày bắt đầu hoặc ngày kết thúc mở. Giá trị khoảng phải tuân theo tùy chọn. Xem thêm chi tiết trong phần
  • -v6. Bật loại bỏ câu lệnh -v7
  • -v8. Tắt loại bỏ câu lệnh -v7
  • --version0. Bật tính năng chặn DevTools
  • --version1. Tắt tính năng chặn DevTools
  • --version2, --version3. Khóa mã vào miền được chỉ định trong đối số sau tùy chọn. Xem thêm chi tiết trong phần
  • --version4, --version5. Bật trích xuất chuỗi ký tự. Để biết chi tiết, xem phần
  • --version6, --version7. Tắt trích xuất chuỗi ký tự
  • --version8. Bật che giấu trình tự biểu thức
  • --version9. Tắt che giấu chuỗi biểu thức
  • -h0, -h1. Bật bảo vệ luồng điều khiển
  • -h2, -h3. Tắt bảo vệ luồng điều khiển
  • -h4. Bật chức năng sắp xếp lại
  • -h5. Tắt chức năng sắp xếp lại
  • -h6, -h7. Bật thay thế số nguyên
  • -h8, -h9. Tắt thay thế số nguyên
  • --help0. Thay đổi tất cả các số nguyên thành biểu diễn của chúng với cơ số đã chỉ định. Tìm hiểu thêm trong phần
  • --help1, --help2. Bật đổi tên khai báo cục bộ
  • --help3, --help4. Tắt đổi tên khai báo cục bộ. Xem phần để biết chi tiết
  • --help5, --help6. Đặt phương thức xáo trộn tên để sử dụng cho số nhận dạng. Xem phần để biết chi tiết
  • --help7, --help8. Bật tính năng định hướng tài sản. Tìm hiểu thêm trong phần
  • --help9, -c0. Tắt tính năng định hướng tài sản
  • -c1. Bật tiết kiệm tài sản. Tìm thêm chi tiết trong phần
  • -c2. Tắt tiết kiệm thuộc tính
  • -c3, -c4. Bật ngẫu nhiên hóa với tất cả các kỹ thuật bảo vệ hỗ trợ nó
  • -c5, -c6. Tắt ngẫu nhiên
  • -c7. Bật biến hình tự vệ. Đọc thêm chi tiết trong phần
  • -c8. Tắt chuyển đổi tự vệ
  • -c9. Bật chuyển đổi nhóm biến. Tìm thêm chi tiết trong phần
  • --config0. Tắt chuyển đổi nhóm biến
  • --config1. Bật chuyển đổi ẩn đối tượng toàn cầu. Tìm thêm chi tiết trong phần
  • --config2. Tắt chuyển đổi ẩn đối tượng toàn cầu

Tùy chọn dòng lệnh mặc định

Theo mặc định, JSDefender bật trích xuất chuỗi ký tự và đổi tên khai báo cục bộ. Giả sử không có tệp cấu hình mặc định, các dòng lệnh này là tương đương

jsdefender myJsBundle.js myProtectedScript.js
jsdefender myJsBundle.js myProtectedScript.js -e -l

Giả sử bạn có ý định chỉ sử dụng thay thế bằng chữ Boolean mà không có các phương thức biến đổi mặc định. Bạn cần đưa ra lệnh này

jsdefender myJsBundle.js myProtectedScript.js -E -L -b

Ở đây, --version6 tắt trích xuất chuỗi ký tự, trong khi --help3 tắt khai báo cục bộ đổi tên

Làm cách nào để sử dụng JavaScript Obfuscator?

Bạn có thể xáo trộn nguồn javascript theo ý muốn, nhưng nó sẽ luôn có khả năng thiết kế ngược chỉ nhờ yêu cầu tất cả mã nguồn thực sự chạy trên máy khách. tùy chọn tốt nhất tôi có thể nghĩ đến là thực hiện tất cả quá trình xử lý của bạn bằng mã phía máy chủ và tất cả mã máy khách mà javascript thực hiện là .

JS obfuscator là gì?

Sai mã JavaScript là một loạt các phép biến đổi mã để biến mã JS đơn giản, dễ đọc thành một phiên bản sửa đổi cực kỳ khó hiểu và là kỹ thuật đảo ngược. Unlike encryption, where you must supply a password used for decryption, there's no decryption key in JavaScript obfuscation.

Chủ Đề