javascript deobfuscator
1.0.0
一個簡單但功能強大的反混淆器,用於消除常見的 JavaScript 混淆技術。如果您認為應該實現某個功能,請提出問題。
線上版本位於 deobfuscate.io
透過npm install js-deobfuscator
安裝
正在尋找特定於 Obfuscator.io/javascript-obfuscator 的反混淆器?試試這個倉庫
如果您想討論/了解 JavaScript 混淆和反混淆,您可以加入 Discord 伺服器
解壓縮包含文字(字串、數字等)的陣列並替換對它們的所有引用
刪除簡單代理函數(呼叫另一個函數)、陣列代理函數和算術代理函數(二進位表達式)
簡化算術表達式
簡化字串連接
重新命名不可讀的十六進位識別碼(例如_0xca830a)
將計算值轉換為靜態成員表達式並美化程式碼
有關功能連結在一起的更複雜的範例,請參閱底部。
前
const a = ['x20', 'x57x6fx72x6cx64', 'x48x65x6cx6cx6f'];console.log(a[2] + a[0] +一個[1]);
後
console.log('你好' + ' ' + '世界');
前
函數 a(b, c) { 傳回 someFunction(b, c);}const 結果 = a(5, 6);
後
const 結果 = someFunction(5, 6);
前
函數 a(b, c) { return c + 2 * b;}const 結果 = a(5, 6);
後
常量結果 = 6 + 2 * 5;
前
函數 a(b, c) { 傳回 c + 2 * b;}函數 b(c, d) { 傳回 a(c, d);}函數 c(d, e) { 回傳 b(d, e);}常量結果= c(5, 6);
後
常量結果 = 6 + 2 * 5;
前
設總計 = 0x2 * 0x109e + -0xc * -0x16a + -0x3234; for (讓 i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a755 + i++> 總計 - i++>我;}
後
讓總計 = 0;for (讓 i = 0; i < 10; i++) { 總計 += i;}
前
console.log('He' + 'll' + 'o' + 'Wo' + 'r' + 'ld');
後
console.log('你好世界');
所有這些功能都可以連結在一起以簡化程式碼。
前
常數 ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = function (b, c) { return c + 2 * b; }, b = 函數 (c, d) { 回傳 a(c, d); }, c = 函數 (d, e) { 回傳 b(d, e); };const 訊息 = ar[0] + ar[2] + ar[4];const 結果 = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621) ;控制台[ar[6]](訊息+''+結果);
後
const message = 'Hello World';const result = 40106;console.log(message + ' ' + result);
介面配置 { 陣列:{ unpackArrays:布林值; 刪除數組:布林值; }; proxyFunctions: { 取代ProxyFunctions: 布林值; 刪除代理函數:布林值; }; 表達式:{ 簡化表達式:布林值; 刪除死分支:布林值; }; 雜項:{ 美化:布林值; 簡化屬性:布林值; 重新命名十六進制標識符:布林值; };}
透過npm install js-deobfuscator
在本機安裝模組並照常導入,或全域安裝npm install -g js-deobfuscator
並使用js-deobfuscator
CLI:
> js-反混淆器-h 用法:運行[選項] 對 javascript 檔案進行反混淆 選項: -i, --input [input_file] 要反混淆的輸入檔(預設值:「input/source.js」) -o, --output [output_file] 反混淆輸出檔案(預設值:「output/output.js」) -f, --force 是否覆蓋輸出文件 -h, --help 顯示指令的幫助>
或使用 deobfuscate.io 上的線上版本