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
ASCII Tablosu Referansı
NUL, LF ve DEL dahil her kod için ondalık, onaltılık, sekizlik ve ikili değerlerle HTML sayısal karakter başvurusu gösterimini sunan tam ASCII tablosu.
HTML Karakter Referansı
HTML varlıklarının aranabilir listesi; adlandırılmış ve sayısal kodlarıyla birlikte özel karakter ve semboller için tek tıkla kopyalama.
Klavye kısayolları başvurusu
macOS, Windows ve Linux’ta VS Code, Chrome ve GNU Readline kullanan Bash için belgelenmiş varsayılan kısayolları arayın.
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.
EditorConfig Oluşturucu
Girinti stili ve boyutu, satır sonu, karakter kümesi ve boşluk kurallarınızla bir .editorconfig dosyası oluşturarak IDE ve editörler arasında tutarlı biçimlendirme sağlayın.
E-posta Doğrulayıcı
Bir e-posta adresini doğrulayın: RFC 5322 sözdizimi kontrolü, canlı MX kaydı sorgulama, ayrıca yerel kısım, alan adı ve uzunluk bilgileri. Hiçbir e-posta gönderilmez.
Araç diğer dillerde mevcuttur
- Desofuscador de JavaScript [PT]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- JavaScriptデオブファスカータ [JA]
- 자바스크립트 디오프스버커 [KO]
- Desofuscador de JavaScript [ES]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- JavaScript-deobfuscator [NL]
- JavaScript-deobfuscator [SV]
- เครื่องถอดรหัส JavaScript [TH]
- Déobfuscateur JavaScript [FR]
- Deobfuscator JavaScript [ID]
- JavaScript-Deobfuscator [DE]
- Deobfuskator JavaScriptu [PL]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript反混淆工具 [ZH]
- JavaScript Deobfuscator [EN]