Javascript DeObfuscator
Odkoduj obfuskowany kod JavaScript szybko i łatwo za pomocą naszego darmowego Javascript DeObfuscatora. Efektywne narzędzie do przywracania czytelności kodu. Profesjonalne narzędzie online, które działa w Twojej przeglądarce. Szybko, bezpiecznie i bez instalowania zbędnego oprogramowania.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćJavaScript DeObfuscator online - odzyskaj czytelny kod z zaciemnionych skryptów
JavaScript DeObfuscator to darmowe narzędzie online, które zamienia zaciemnione, trudne do odczytania skrypty w możliwie czytelny kod. Wklejasz obfuskowany JavaScript, wybierasz inteligentne opcje naprawcze i po chwili otrzymujesz sformatowany wynik gotowy do analizy, debugowania albo audytu bezpieczeństwa. Bez reklam, bez logowania i bez instalacji wtyczek.
Deobfuskator JavaScript Autoformatowanie kodu Unwrap eval() Dean Edwards p.a.c.k.e.r Dekodowanie base64 Konwersja \xHH Do 3 przejść analizy Kopiuj lub pobierz .js Skrót Ctrl lub Cmd + Enter
Jeśli pracujesz z kodem, który przeszedł obfuskację, próbujesz zrozumieć działanie biblioteki, walczysz z błędem w produkcji albo uczysz się technik zabezpieczania aplikacji frontendowych, ten deobfuskator JavaScript pozwala szybko wrócić do możliwej do analizy postaci skryptu.
Spis treści
Jak działa narzędzie JavaScript DeObfuscator
Narzędzie przyjmuje obfuskowany kod JavaScript, normalizuje go i uruchamia serię transformacji, które zdejmują kolejne warstwy zaciemnienia. Silnik działa warstwowo. Najpierw pozbywa się zewnętrznych owijek i wyrównuje format, następnie uruchamia heurystyki specjalizowane pod typowe wzorce obfuskatorów, a na końcu stosuje autoformatowanie (beautify), by maksymalnie poprawić czytelność wyniku.
- Wklejasz kod do edytora wejściowego lub korzystasz z przycisku Wklej ze schowka.
- Włączasz opcje naprawcze takie jak unwrap eval(), rozpakowanie p.a.c.k.e.r, dekodowanie base64 oraz konwersja sekwencji heksadecymalnych.
- Ustawiasz liczbę przejść w zakresie od 1 do 3, aby rozwinąć kolejne warstwy obfuskacji.
- Uruchamiasz deobfuskację, a wynik możesz skopiować albo pobrać jako plik .js.
Interfejs pokazuje jasny status pracy: Przetwarzanie, Gotowe lub Brak wyniku. Dostępny jest również przycisk Przykład, który podkłada próbkę zaciemnionego kodu p.a.c.k.e.r, dzięki czemu możesz przetestować narzędzie bez wklejania własnego skryptu.
Funkcje i heurystyki deobfuskacji
JavaScript DeObfuscator łączy w sobie funkcje klasycznego beautifiera ze specjalistycznymi heurystykami, które znają typowe sztuczki obfuskatorów. Dzięki temu narzędzie nie tylko poprawia formatowanie, ale faktycznie odtwarza strukturę i logikę kodu.
Warstwa wstępna
- Normalize usuwa znacznik BOM, unifikuje końce linii i przygotowuje dane dla parsera. To ważny etap, gdy kod pochodzi z różnych środowisk albo został sklejony z kilku plików.
- Unwrap eval() zdejmie zewnętrzną otoczkę
eval(...)w sytuacji, gdy obfuskator opakował cały skrypt w jedno dynamiczne wywołanie. Dzięki temu kod może być analizowany statycznie, bez wykonywania w przeglądarce. - Rozpakowanie p.a.c.k.e.r wykrywa charakterystyczny wzorzec
eval(function(p,a,c,k,e,d)...używany przez narzędzie Deana Edwardsa i przekazuje dane do specjalnego silnika, który odtwarza oryginalny skrypt bez uruchamiania eval.
Warstwa dekodowania
- Dekodowanie base64 obsługuje konstrukcje
atob('...')inew Function(atob('...')), zamieniając zakodowane ciągi na zwykły tekst lub kod, który następnie trafia do beautifiera. - Konwersja sekwencji heksadecymalnych zamienia zapis typu
\xNNna drukowalne znaki, w tym spacje, nowe linie i inne elementy whitespace. Dzięki temu odtwarzane są teksty komunikatów, ścieżki i fragmenty kodu ukryte w formie hex escapes. - Autoformatowanie (beautify) dba o wcięcia, nawiasy klamrowe, średniki i przecinki, rozbijając jednolinijkowe potworki na wielolinijkowy kod gotowy do przeglądu w IDE.
Wszystkie te operacje działają bez wykonywania kodu w runtime. Deobfuskator stara się przywrócić czytelność w sposób możliwie bezpieczny i deterministyczny.
Przebieg pracy krok po kroku
Nawet jeśli nie zajmujesz się na co dzień reverse engineeringiem, możesz swobodnie korzystać z DeObfuscatora. Proces został uproszczony do kilku kroków, które da się powtarzać przy każdym podejrzanym pliku .js.
- Wklej obfuskowany JavaScript
Wklej kod do edytora wejściowego. Możesz użyć ikony wklejania lub skrótów klawiaturowych Ctrl + V / Cmd + V. Narzędzie poradzi sobie z dużymi blokami kodu. - Włącz potrzebne przełączniki
Zaznacz funkcje, które mają zostać użyte: unwrap eval, rozpakowanie p.a.c.k.e.r, dekodowanie base64, konwersja sekwencji hex. Jeśli nie masz pewności, możesz zostawić domyślny zestaw opcji. - Wybierz liczbę przejść
Ustaw parametr w zakresie 1–3. Każde kolejne przejście próbuje rozwinąć bardziej zagnieżdżone warstwy obfuskacji. Warto zacząć od 1, a potem stopniowo zwiększać wartość. - Uruchom deobfuskację
Wciśnij przycisk Deobfuskacja lub skorzystaj ze skrótu Ctrl + Enter / Cmd + Enter. Status pracy pojawi się nad lub pod edytorem, abyś wiedział, na jakim etapie znajduje się analiza. - Kopiuj lub pobierz wynik
Po zakończeniu przetwarzania zobaczysz kod w ciemnym edytorze tylko do odczytu. Możesz skopiować go jednym kliknięciem lub pobrać jako plik.js. Przyciski reset pozwalają szybko oczyścić pola i zacząć od nowa.
Przejścia analizy i autoformatowanie
Silnik deobfuskatora może wykonać kilka przejść na tym samym kodzie. To ważne w sytuacjach, gdy obfuskator nałożył kilka warstw zabezpieczeń, na przykład połączył base64, p.a.c.k.e.r i dodatkową otoczkę eval.
- 1 przejście - rekomendowane na start. Najszybsza analiza, wystarczająca dla prostych wrapperów, pojedynczych eval() i klasycznych skryptów p.a.c.k.e.r.
- 2 przejścia - dobre, gdy kod zawiera zagnieżdżone wywołania eval lub kombinację base64 i p.a.c.k.e.r. Deobfuskator najpierw rozwiązuje warstwę zewnętrzną, a następnie próbuje oczyścić wynik.
- 3 przejścia - maksymalny poziom głębokości. Użyteczny przy wielowarstwowej obróbce, ale może wydłużyć czas pracy, szczególnie dla dużych plików.
Po zakończeniu przejść uruchamiany jest moduł autoformatowania, który dodaje wcięcia, łamie linie po średnikach, porządkuje nawiasy klamrowe i separuje instrukcje. Dzięki temu wynik nadaje się do dalszej pracy w IDE, code review albo w trakcie szukania podejrzanych fragmentów.
Odzyskaj czytelny kod JavaScript jednym kliknięciem
Wklej obfuskowany skrypt, włącz odpowiednie heurystyki i uruchom do trzech przejść analizy. W kilka sekund otrzymasz możliwie czytelny kod z autoformatowaniem, gotowy do debugowania i audytu.
Uruchom deobfuskację Bez reklam Darmowy addon Działa w przeglądarce
Meta: JavaScript DeObfuscator online, który zdejmuje eval, rozpakowuje p.a.c.k.e.r, dekoduje base64 i konwertuje sekwencje heksadecymalne. Do trzech przejść analizy oraz autoformatowanie kodu.
Obfuskacja a deobfuskacja - dwa kierunki tego samego procesu
Obfuskacja ukrywa logikę kodu, zaciemnia intencje programisty i utrudnia jego analizę. Deobfuskacja idzie w przeciwną stronę. Jej celem jest przywrócenie możliwie czytelnej formy, rekonstrukcja struktury i wydobycie tego, co obfuskator próbował zamaskować. Oba procesy korzystają z podobnych technik analizy, ale mają odwrotny cel.
| Aspekt | Obfuskacja | Deobfuskacja |
|---|---|---|
| Cel | Ukrycie logiki i struktury kodu | Odzyskanie czytelności i struktury |
| Proces | Przekształca kod źródłowy w formę trudną do analizy | Analizuje kod i przywraca czytelną postać |
| Użycie eval | Często dodaje dynamiczne wywołania eval() | Usuwa lub rozwija eval do statycznej formy |
| Dane tekstowe | Kodowane base64, hex lub szyframi symetrycznymi | Dekodowane do oryginalnej postaci tekstowej |
| Zastosowanie | Ochrona komercyjnych skryptów, utrudnienie kopiowania | Audyt bezpieczeństwa, debugging, analiza edukacyjna |
Jak działają heurystyki i techniczne naprawy
- Eval unwrap usuwa pojedynczą otoczkę
eval(...)i pozostawia kod wewnątrz. Dzięki temu nie trzeba wykonywać skryptu, żeby zobaczyć jego treść. - p.a.c.k.e.r unpack wykrywa podpis
eval(function(p,a,c,k,e,d)charakterystyczny dla obfuskatora Deana Edwardsa i odtwarza oryginalny kod bez uruchamiania eval. - Base64 decode znajduje ciągi typu
atob('...')lubnew Function(atob('...'))i zastępuje je zdekodowanym tekstem, który może zawierać kolejne fragmenty kodu JavaScript. - Hex escapes zamienia sekwencje
\xNNna zwykłe znaki, dzięki czemu zamiast nieczytelnego ciągu liczb heksadecymalnych widzisz tekst, ścieżki lub wywołania funkcji. - Beautify dodaje wcięcia, łamie linie i wprowadza spójne formatowanie. To nie tylko estetyka, ale również wyraźne bloki kodu ułatwiające analizę.
Proces deobfuskacji może być powtarzany do trzech razy. Każde przejście bierze wynik poprzedniego i próbuje pójść o warstwę głębiej. Jest to szczególnie przydatne, gdy obfuskator stosuje podejście cebulowe, nakładając kilka technik jedna na drugą.
Rozwiązywanie problemów (troubleshooting)
W większości przypadków DeObfuscator poradzi sobie z popularnymi wzorcami zaciemniania. Zdarzają się jednak sytuacje, w których kod źródłowy jest niekompletny albo obfuskator używa bardzo niestandardowych technik.
- Brak wyniku
Sprawdź, czy wkleiłeś cały kod, czy nie brakuje nawiasów klamrowych, okrągłych lub zakończeń instrukcji. Parser może wymagać syntaktycznie poprawnego skryptu, żeby ruszyć dalej. - Zniekształcony wynik
Spróbuj zmniejszyć liczbę przejść lub wyłączyć autoformatowanie, jeśli kod ma bardzo nietypowy styl. Czasem lepiej krok po kroku przejrzeć częściowo przetworzony kod. - Brak widocznej zmiany
Niektóre obfuskatory nie używają eval ani base64 i opierają się na niestandardowych funkcjach. W takich przypadkach narzędzie poprawi głównie formatowanie, ale nie odtworzy pełnej semantyki. - Błąd base64
Upewnij się, że łańcuch zawiera wyłącznie znaki z zakresu A–Z, a–z, 0–9, plus, ukośnik oraz znak równości. Uszkodzony ciąg nie zostanie poprawnie zdekodowany.
Po każdym błędzie możesz wyczyścić pola i spróbować innej kombinacji ustawień. Narzędzie nie zapisuje Twojego kodu w trwałej bazie, więc eksperymentowanie jest bezpieczne.
Prywatność i bezpieczeństwo przetwarzania kodu
JavaScript DeObfuscator został zaprojektowany z myślą o prywatności. Kod użytkownika jest przetwarzany wyłącznie w celu wykonania deobfuskacji i zwrócenia wyniku. Skrypt nie jest przechowywany w bazie danych ani przesyłany do zewnętrznych usług. W logach mogą pojawić się jedynie informacje statystyczne, takie jak długość kodu czy liczba przejść, bez treści samego pliku.
Narzędzie przeznaczone jest do analizy własnych projektów, audytów bezpieczeństwa oraz celów edukacyjnych. Nie powinno być wykorzystywane do omijania zabezpieczeń cudzych aplikacji ani naruszania praw autorskich.
Dobre praktyki i integracja z workflow
- Używaj deobfuskatora do analizy kodu testowego, debugowania efektów obfuskacji oraz przeglądu third party scripts, które chcesz zrozumieć przed wdrożeniem.
- Po deobfuskacji zawsze uruchom linting (ESLint, JSHint) oraz testy jednostkowe, jeśli masz je w projekcie. Pomogą wychwycić ewentualne problemy.
- Przy bardzo złożonych skryptach zacznij od jednego przejścia i dopiero po wstępnej analizie włącz drugie lub trzecie. Dzięki temu zachowasz kontrolę nad tym, co faktycznie zmieniło narzędzie.
- Traktuj wynik deobfuskacji jako materiał do analizy statycznej. Nie łącz procesu z automatycznym wykonywaniem kodu w tej samej przeglądarce, w której go deobfuskujesz.
Przykładowy workflow CI/CD z użyciem deobfuskatora
Jeżeli chcesz automatycznie analizować wyniki obfuskacji lub buildów w pipeline, możesz dodać etap deobfuskacji jako dodatkową kontrolę jakości, na przykład po minifikacji:
npm run build php artisan js:deobfuscate npm test
Taki krok pozwala zweryfikować, czy wygenerowane pakiety JS nie zawierają niepożądanych konstrukcji, a obfuskacja nie wprowadziła błędów, które pojawią się dopiero w przeglądarce użytkownika.
Wydajność i ograniczenia narzędzia
W typowych scenariuszach deobfuskator działa bardzo szybko, nawet dla większych plików. Im więcej warstw obfuskacji i im wyższa liczba przejść, tym bardziej rośnie czas przetwarzania. Warto zaczynać od analizy jednokrotnej i dopiero potem sięgać po dwa lub trzy cykle.
- 1 przejście - najszybsze, idealne dla standardowych skryptów i prostych wrapperów.
- 2 przejścia - dobry kompromis przy bardziej złożonych, kaskadowych eval() lub kombinacjach base64.
- 3 przejścia - najgłębsza analiza, rekomendowana, gdy poprzednie poziomy wciąż dają mocno zaciemniony wynik.
Nie każdy obfuskowany kod da się w pełni odtworzyć. Skrypty korzystające z losowych generatorów nazw, samomodyfikującego się kodu albo mocnych algorytmów szyfrujących mogą pozostać częściowo nieczytelne. W takich przypadkach wynik traktuj jako punkt wyjścia, który wymaga ręcznego dopracowania.
Zgodność licencyjna i etyczne użycie
Deobfuskacja jest neutralną techniką, której użycie zależy od kontekstu. Własne projekty, audyty bezpieczeństwa, analiza działania bibliotek oraz cele edukacyjne to scenariusze w pełni akceptowalne. Próba odtwarzania kodu chronionego licencją bez zgody autora może natomiast naruszać prawo autorskie lub warunki licencji.
JavaScript DeObfuscator działa jako darmowy addon w modelu open use. Nie wymaga zakładania konta, nie prosi o dostęp do repozytoriów i integruje się z istniejącymi workflowami bez dodatkowych wtyczek. Obsługuje nowoczesne frameworki i aplikacje oparte na Livewire czy SPA.
Najczęściej zadawane pytania (FAQ)
Czy narzędzie przywróci oryginalne nazwy zmiennych i funkcji?
Nie. Obfuskacja z reguły nadpisuje nazwy losowymi identyfikatorami. Deobfuskator odtwarza strukturę, wcięcia i treść tekstową, ale nie ma możliwości odgadnięcia, jak brzmiały oryginalne nazwy zmiennych i funkcji.
Czy mogę deobfuskować plik z wieloma warstwami obfuskacji?
Tak. Ustaw parametr liczby przejść na 2 lub 3. Narzędzie uruchomi heurystyki kilka razy, każdorazowo na wynikach poprzedniej analizy, dzięki czemu zwiększysz szansę na rozbicie wielowarstwowych wrapperów.
Co dokładnie robi opcja Zdejmij eval()?
Funkcja sprawdza, czy cały skrypt jest otoczony pojedynczym wywołaniem eval(...). Jeśli tak, usuwa zewnętrzną warstwę i pozostawia kod wewnętrzny, który może zostać przeanalizowany statycznie, bez jego wykonywania w runtime.
Dlaczego niektóre kody po deobfuskacji nie działają?
Obfuskatory czasem polegają na specyficznych środowiskach wykonawczych albo funkcjach pomocniczych generowanych dynamicznie. Deobfuskator przywraca czytelność, ale nie zawsze jest w stanie odtworzyć w stu procentach oryginalne zachowanie aplikacji. Wynik traktuj przede wszystkim jako materiał do analizy, a nie gotowy drop in replacement.
Czy mogę korzystać z deobfuskatora offline?
Cały proces odbywa się lokalnie w przeglądarce użytkownika. Po wczytaniu strony sama analiza kodu może działać bez przesyłania treści do zewnętrznych serwerów. To dobre rozwiązanie, gdy pracujesz na wrażliwych fragmentach skryptu.
Jak działa opcja rozpakuj p.a.c.k.e.r?
Narzędzie wykrywa wzorzec eval(function(p,a,c,k,e,d), który jest sygnaturą popularnego obfuskatora Deana Edwardsa. Następnie uruchamia algorytm rekonstruujący oryginalny kod, ale bez wykonywania eval, dzięki czemu zyskujesz czytelny skrypt gotowy do dalszej analizy.
Czy mogę zintegrować deobfuskator z CI/CD?
Tak. Logika deobfuskacji może być opakowana w skrypty CLI lub narzędzia konsolowe. Możesz dodać krok analizy po minifikacji w pipeline build, żeby w sposób automatyczny kontrolować jakość wynikowego kodu JS.
Czy dane są zapisywane w historii narzędzia?
Nie są przechowywane pełne treści plików. Mogą być zapisywane wyłącznie anonimowe metadane, takie jak długość kodu, liczba przejść czy status zadania. Nie służą one do profilowania użytkownika, a jedynie do statystyk i ulepszania algorytmu.
Jak zmniejszyć liczbę błędów przy deobfuskacji?
Upewnij się, że wklejony kod jest kompletny, nie zawiera niedomkniętych komentarzy i jest zapisany w poprawnym kodowaniu UTF-8. Spróbuj również różnych kombinacji liczby przejść i wyłącz wybrane heurystyki, jeśli wynik wydaje się zniekształcony.
Podsumowanie - szybkie odzyskanie czytelnego JavaScriptu
JavaScript DeObfuscator to praktyczne, darmowe narzędzie online, które pomaga przywrócić czytelność nawet mocno zaciemnionym skryptom. Dzięki zestawowi heurystyk unwrap eval, rozpakowaniu p.a.c.k.e.r, dekodowaniu base64 i konwersji sekwencji heksadecymalnych radzi sobie z większością popularnych obfuskatorów stosowanych w kodzie frontendowym.
Narzędzie działa w przeglądarce, nie wymaga rejestracji ani instalacji dodatków. Sprawdza się w audytach bezpieczeństwa, analizie błędów, pracy nad legacy code oraz w projektach edukacyjnych, w których chcesz zrozumieć, jak działają techniki ochrony kodu w praktyce.
Najważniejsze korzyści w skrócie
- Usuwanie zewnętrznych eval() i odtwarzanie struktury kodu.
- Obsługa popularnych wzorców p.a.c.k.e.r i base64.
- Konwersja sekwencji \xHH na czytelne znaki.
- Autoformatowanie i możliwość pobrania gotowego pliku .js.
- Działanie lokalne, bez przesyłania treści do zewnętrznych usług.
Przywróć czytelność kodu JavaScript
Wklej zaciemniony skrypt, wybierz heurystyki, uruchom deobfuskację i przeanalizuj wynik w spokojnym, czytelnym formacie. Idealne rozwiązanie dla osób, które chcą zrozumieć, co naprawdę robi kod uruchamiany w przeglądarce.
Uruchom JavaScript DeObfuscator Darmowe Bez rejestracji Szybkie działanie