Expand description
Universal JavaScript Deobfuscator
A high-accuracy JavaScript deobfuscator built on OXC with a 3-layer architecture.
§Architecture
The deobfuscator uses a 3-layer architecture:
- Layer 1: ECMA — ECMAScript standard transforms (works in ANY JS runtime)
- Layer 2: Runtime — Browser/Node runtime APIs (atob, btoa, escape, etc.)
- Layer 3: Extensions — Obfuscator-specific patterns (string arrays, control flow)
§Quick Start
§Simple API (Recommended)
ⓘ
use js_deobfuscator::{JSDeobfuscator, Extension};
// Standard deobfuscation (ECMA + Runtime)
let output = JSDeobfuscator::new()
.deobfuscate("var a = 1 + 2;")?;
// With string rotator extension
let output = JSDeobfuscator::new()
.ecma(true)
.runtime(true)
.extensions([Extension::StringRotator])
.deobfuscate(&source)?;§One-liner Functions
ⓘ
use js_deobfuscator::{deobfuscate, deobfuscate_full};
let output = deobfuscate("var a = 1 + 2;")?; // ECMA + Runtime
let output = deobfuscate_full(&source)?; // All extensions§With Result Details
ⓘ
use js_deobfuscator::{JSDeobfuscator, Extension};
let result = JSDeobfuscator::new()
.extensions([Extension::StringRotator])
.deobfuscate_with_result(&source)?;
println!("Iterations: {}", result.iterations);
println!("Modifications: {}", result.modifications);
println!("{}", result.code);§Modules
core— Engine, configuration, high-level APIecma— Layer 1: ECMAScript standard passesruntime— Layer 2: Runtime API passesextensions— Layer 3: Obfuscator pattern handlerstransforms— Multi-pass transformation modulesutils— Shared utilities
Re-exports§
pub use core::DeobError;pub use core::DeobfuscateResult;pub use core::EcmaConfig;pub use core::Engine;pub use core::EngineConfig;pub use core::EngineResult;pub use core::Extension;pub use core::ExtensionsConfig;pub use core::JSDeobfuscator;pub use core::LayerConfig;pub use core::LogLevel;pub use core::PassError;pub use core::RuntimeConfig;pub use core::deobfuscate;pub use core::deobfuscate_full;
Modules§
- core
- Core deobfuscation infrastructure.
- ecma
- Layer 1: ECMAScript Standard Transforms
- extensions
- Layer 3: Obfuscator Pattern Extensions
- runtime
- Layer 2: Runtime API Transforms
- transforms
- Multi-pass Transformation Modules
- utils
- Shared Utilities