Przepisy
Konkretne, kompletne instrukcje krok po kroku dla typowych problemów z integracją javascript-obfuscator. Każdy przepis skupia się na tym, jak łączyć opcje, aby osiągnąć określony efekt, a nie na dokumentowaniu pojedynczych flag.
Wybierz przepis odpowiadający problemowi, który chcesz rozwiązać. Z czasem będą pojawiać się kolejne przepisy — jeśli napotkasz scenariusz integracji, który nie został tutaj opisany, daj nam znać, a go opiszemy.
W tej sekcji
Dobre praktyki
Co chronić, czego nie ruszać i czego obfuskacja nie jest w stanie za Ciebie zrobić.
Podstawianie szablonów po stronie serwera
Wstrzykuj wartości renderowane na serwerze do kodu JavaScript zobfuskowanego przez VM przy użyciu reservedNames i reservedStrings.
Klucz kodowania tablicy bajtkodu
Podaj własny klucz szyfrowania bajtkodu VM za pomocą vmBytecodeArrayEncodingKey i rozwiąż go w czasie działania za pomocą gettera klucza — z pamięci klienta lub pobierając go z backendu.
Telemetria i reakcje mechanizmów obronnych VM
Raportuj wykrycia mechanizmów obronnych VM do swojego backendu za pomocą vmDefenseHook i dostosuj reakcję na poszczególne kategorie wykryć przy użyciu vmDefenseReaction.
Ukrywanie nazw funkcji przed analizą LLM
Dlaczego kod zobfuskowany przez VM może ujawnić modelowi LLM sensowne nazwy funkcji i jak opakowanie w IIFE usuwa ten wyciek.
Obfuskacja VM a eval i new Function
Jak obfuskacja VM obsługuje bezpośrednie wywołania eval i konstruktora Function, co trafia do kodu bajtowego, a co jest pomijane, jakie ostrzeżenia zgłasza obfuskator i jak diagnozować błąd ReferenceError w czasie wykonania.
Unikanie kolizji identyfikatorów
Dlaczego łączenie wielu plików zobfuskowanych przez VM może zgłosić „Identifier already declared” na etapie parsowania i jak temu zaradzić, stosując losowe lub szesnastkowe identyfikatory.
Diagnozowanie błędów wykonania VM
Lista kontrolna krok po kroku dla błędów wykonania VM, takich jak „Invalid array length”, pozwalająca odróżnić błędną konfigurację opcji target/self-defending od rzeczywistych błędów.
