VM Çalışma Zamanı Hatalarını Teşhis Etme
Bu adımları sırayla izleyin. Her biri, hatalı kodu daraltmaya zaman harcamadan önce yaygın bir nedeni eler.
1. Test ve CI
Önce çalışma zamanı savunmalarını (VM Self Defending, VM Debug Protection, VM Domain Lock) eleyin: hatayı, Test ve CI sayfasındaki geçersiz kılmaları kullanan bir test derlemesiyle yeniden üretin. Test derlemesi çalışıyorsa savunmalar kodunuzu bozmuyor, araçlarınıza veya ortamınıza tepki veriyordur.
2. Çalışma ortamı uyumluluğu
target değerinin, derleme hattının ve tüm ortam bildirimlerinin kodun gerçekte çalıştığı yerle eşleştiğini kontrol edin.
VM koruması uygun fonksiyonlara uygulanır. Root modunda vmWrapTopLevelInitializers, uygun başlatıcıları da sanallaştırma için sarmalayabilir; güncel VM ön ayarları bunu etkinleştirir. VMNoFunctionsToVirtualize gibi kapsam uyarılarını inceleyin ve hassas fonksiyonları açıkça seçmek için comment modunu kullanın.
Hatalı durumu, hatayı hâlâ yeniden üreten en küçük fonksiyona ve çağrı noktasına indirgeyin. Hangi fonksiyonların sanallaştırılacağını daraltmak için comment modunu kullanın.
vmBytecodeArrayEncoding seçeneğini vmBytecodeArrayEncodingKeyGetter ile birlikte kullanıyorsanız, getirici tam olarak derleme anında kullanılan anahtarı döndürmeli ve bu anahtar obfuscate edilmiş kod çalıştığında zaten ayarlanmış olmalıdır; aksi halde bayt kodu çözülemez.
Çalışma Ortamı Uyumluluğu · Bytecode Array Encoding anahtarı
3. Hata raporu gönderin
support@obfuscator.io adresine e-posta gönderin. Aşağıdakilerden ne kadar çoğunu eklerseniz sorunu o kadar hızlı düzeltebiliriz:
- Hata yığın izinin tamamı, konsolda göründüğü haliyle, başka sözcüklerle ifade edilmeden.
- JSON biçiminde obfuscator seçenekleri. Kullandığınız seçenekler nesnesinin tamamını (veya ön ayar adını ve varsa geçersiz kılmaları) kopyalayın. Seçenekler arasındaki ince etkileşimler yaygındır; bu nedenle tam seti bilmemiz gerekir.
- Derleme uyarıları, varsa: her birinin
type,messagevefunctionNamedeğerleri. - Obfuscator sürümü: panelde düzenleyicinin altındaki sürüm seçicide gösterilir. API ve npm paketi derlemeleri için API'nin
resultveyachunk_endmesajındakiversionalanıdır. - Ortam: tarayıcı ve sürümü, Node.js sürümü, işletim sistemi, çalışma ortamıyla ilgili olağan dışı her şey (uzantılar, polyfill'ler, özel yerleşikler).
- Minimal yeniden üretim: ideal olarak 2. bölümdeki tek fonksiyon ve hatayı tetiklemek için gereken çağrı noktası.
- Mümkün olduğunda özgün (obfuscation öncesi) kaynak kod. Obfuscate edilmiş çıktı bizim tarafımızda da anlaşılmazdır; girdi olmadan kendi bayt kodumuza tersine mühendislik uygulamak zorunda kalırız.
Kaynak kod size özelse bunu e-postada belirtin; paylaşmadan önce bir gizlilik sözleşmesi (NDA) imzalayabiliriz. Bozuk bayt kodunu üreten girdi kalıbını görmeden VM hatalarını güvenilir biçimde teşhis edemeyiz; bu nedenle bu ek adıma değer.
