JavaScript Deobfuscator
Gizlenmiş bir JavaScript parçasını yapıştırın, heks kodlu karakter dizileri, tek harfli değişken adları ve üstte bir çözleyici döngüsü, araç bu yapıyı katman katman analiz eder: karakter dizilerini düzeltir, arama dizisini içe yerleştirir, değişkenleri okunabilir yer tutuculara dönüştürür, basit kaplama yapılarını düzleştirir ve elde edilen sonuçu estetik olarak iyileştirir. Bir sayfadan veya yapıştırılmış Pastebin linkinden aldığınız şüpheli kod parçalarını analiz etmek için oldukça faydalıdır.
JavaScript kodunun şifresini nasıl çözersiniz
-
1
Kodlanmış kaynakı yapıştırın
`javascript-obfuscator.io` tarzı araçlardan elde edilen minifikasiyonlu, paketlenmiş veya çıktı verisi.
-
2
Analizatörün bu yolunu izlemesine izin verin.
Sıralı diziler çözülmekte, sayısal diziler değerlendirilmekte ve işlevsiz kod dalları silinmektedir.
-
3
Yeni Adını Uygula
Tek harfli `a`/`b`/`c` değişkenleri `var1`, `var2` vb. gibi adlara değiştirilir; bu adlar okunabilir yer tutuculardır ve mutlaka anlamlı olmayabilir.
-
4
Güzelleştir
Karakterleri ayırt edin, yeni satırlar ekleyin ve gerçekten okuyabileceğiniz ve üzerinde düşünebileceğiniz kodu çıkarın.
Deobfuscatörun tersine çevirdiği teknikler
| Şeffaflaştırma | Tersine çevirmek |
|---|---|
| Altı basamaklı kodlanmış karakter dizisi literalleri | \x48\x69'i "Hi"'e dönüştürün |
| Unicode ile kodlanmış tanımlayıcılar | \u006E\u0061\u006D\u0065 -> name |
| Dizi dizisi + çözücü fonksiyonu | Dizi dizisini içsel olarak düzenleyin ve analiz sırasında çözücüyü çağırın |
| Sayısal sabit katlama | 0x1F3 + 5 -> 504 |
eval(...) Kapsüller |
İç kodu üst seviyeye taşın |
| Kontrol akışı düzleştirme (durum makinesi) | Switch-case elemanını tespit edip akışını yeniden oluşturun |
| Geçmiş kodlar / faydasız üçlü komutlar | Hiç çalışmayan dalları kaldırın |
_0x1a2b3c() stil adları |
Artan var1 ve var2 değerleriyle değiştirin |
sınırlamalar: aracı ne yapmaz
- Orijinal değişken adlarını geri kazanma.
userEmailadıaolarak değiştirildiğinde hiçbir araç bu adı yeniden tahmin edemez. Elde ettiğiniz şey okunabilir bir yapıdır, orijinal anlam değil. - Özelleştirilmiş sanalizatörleri açın. Ağır yapıdaki ticari gizleme araçları (JScrambler, Obfuscator.io'nun kurumsal seviyeleri), bayt kodunu yorumlayan özel bir sanal makine sunar. Bu araçlara karşı direnmek için manuel ters mühendislik gereklidir.
- İstediğiniz kodu çalıştırın. Deobfuscator, saf ifadeleri statik olarak değerlendirir; uzaktaki kaynakları yüklemez, DOM öğeleri oluşturmaz veya ağla iletişim kurmaz.
Tipik Kullanım Senaryoları
- Güvenlik araştırması: E-posta yoluyla gelen veya kompromite edilmiş bir CDN aracılığıyla iletilen şüpheli bir betikin iç yapısını analiz etmek.
- Kod arkeolojisi: yalnızca küçültülmüş bir kütüphane paketi kalıcı eser olarak bulunan eski kodun geri kazanılması.
- Öğrenme: bir eğitim düzeyindeki gizleme tekniklerinin aslında nasıl işlediğini anlamak.
Güvenlik ve Etik
Önemli bir sistemde giriş yapmış bir tarayıcı tabında güvenilmez bir JavaScript kodunu asla çalıştırmayın; bu kod cookie'leri okuyabilir, iç API'lere erişebilir ve sistem bilgilerini dışarıya sızdırabilir. Deobfuscator’ın kendisi kaynak kodu metin olarak işler; yapıştırdığınız kodu doğrudan çalıştırmaz.
Yalnızca analiz etme yetkiniz olan kodun şifresini çözün. Lisanslı yazılımları tersine mühendislikle analiz etmek, bulunduğunuz yargı bölgesinde kısıtlanmış olabilir.
Sık Sorulan Sorular
Hayır. Şifreleme giderici aracı userEmail’i _0x1a2b3c olarak yeniden adlandırdığında orijinal ad kaybolur. Şifre çözme aracı okunabilir yer tutucuları (var1, var2) ve doğru yapı sağlar; ancak orijinal anlamsal adları vermez.
Hayır. Kodu bir AST olarak analiz eder ve statik dönüşümleri uygular. Saf ifadeler (örneğin 0x1F3 + 5) özetlenir; ancak ağ, cookie’ler veya DOM’a hiçbir etki yapılmaz.
Evet, ancak bundler çıktıları kasıtlı olarak gizlenmek yerine en az hâle getirilmiştir; sonuç olarak modül kaplayıcıları yeniden eklenen, yalnızca güzelleştirilmiş kod elde edilir. Bağımsız olarak mevcut olan kaynak haritaları ise çok daha uygun adlar sağlar.
Ağır ticari araçlar (Enterprise JScrambler, özel sanal makineler) statik analizle çözülemeyen bir bayt kodu yorumlayıcısı sunar. Bu araç yüzey katmanını tespit edebilse de temel mantık manuel tersine çeviri olmadan şeffaf olmaz.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Kısa bir formdan webpack 5 için bir webpack.config.js oluşturun: entry, çıkış klasörü ve modu ayarlayın; ardından TypeScript, Babel, bir CSS yükleyici, HtmlWebpackPlugin ve bir dev sunucu açın.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Rastgele adres oluşturucu
Arayüz maketleri ve testler için üç basitleştirilmiş biçimde 1–20 adres benzeri kayıt oluşturun.
Araç diğer dillerde mevcuttur
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- Desofuscador de JavaScript [ES]
- JavaScript-deobfuscator [NL]
- 자바스크립트 디오프스버커 [KO]
- Déobfuscateur JavaScript [FR]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- เครื่องถอดรหัส JavaScript [TH]
- Deobfuskator JavaScriptu [PL]
- JavaScript-deobfuscator [SV]
- Desofuscador de JavaScript [PT]
- Deobfuscator JavaScript [ID]
- JavaScriptデオブファスカータ [JA]
- JavaScript-Deobfuscator [DE]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript反混淆工具 [ZH]