เครื่องมือลดความยุ่งเหยิงที่เรียบง่ายแต่ทรงพลังเพื่อลบเทคนิคการสร้างความสับสนของ 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) { return someFunction(b, c);} const result = a(5, 6);
หลังจาก
ผลลัพธ์ const = someFunction (5, 6);
ก่อน
ฟังก์ชั่น a(b, c) { return c + 2 * b;}const result = a(5, 6);
หลังจาก
ผลลัพธ์ const = 6 + 2 * 5;
ก่อน
ฟังก์ชั่น a(b, c) { return c + 2 * b;} ฟังก์ชั่น b(c, d) { return a(c, d);} ฟังก์ชั่น c(d, e) { return b(d, e);} ผลลัพธ์ const = c(5, 6);
หลังจาก
ผลลัพธ์ const = 6 + 2 * 5;
ก่อน
ให้ผลรวม = 0x2 * 0x109e + -0xc * -0x16a + -0x3234;สำหรับ (ให้ i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) { รวม += ฉัน;}
หลังจาก
ให้ผลรวม = 0;สำหรับ (ให้ i = 0; i < 10; i++) { รวม += i;}
ก่อน
console.log('เขา' + 'จะ' + 'o' + ' Wo' + 'r' + 'ld');
หลังจาก
console.log('สวัสดีชาวโลก');
คุณสมบัติทั้งหมดเหล่านี้สามารถเชื่อมโยงเข้าด้วยกันเพื่อทำให้โค้ดง่ายขึ้น
ก่อน
const ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = ฟังก์ชั่น (b, c) { กลับ c + 2 * ข; }, b = ฟังก์ชัน (c, d) { ส่งคืน (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) ;console[ar[6]](ข้อความ + ' ' + ผลลัพธ์);
หลังจาก
const message = 'Hello World';const result = 40106;console.log(ข้อความ + ' ' + ผลลัพธ์);
การกำหนดค่าอินเทอร์เฟซ { อาร์เรย์: { unpackArrays: บูลีน; RemoveArrays: บูลีน; - proxyFunctions: { แทนที่ProxyFunctions: บูลีน; RemoveProxyFunctions: บูลีน; - นิพจน์: { simplifyExpressions: บูลีน; ลบDeadBranches: บูลีน; - เบ็ดเตล็ด: { สวยงาม: บูลีน; simplifyProperties: บูลีน; เปลี่ยนชื่อ HexIdentifiers: บูลีน; -
ติดตั้งโมดูลแบบโลคัลผ่าน npm install js-deobfuscator
และนำเข้าตามปกติหรือติดตั้งแบบโกลบอล npm install -g js-deobfuscator
และใช้ js-deobfuscator
CLI:
> js-deobfuscator -h การใช้งาน: วิ่ง [ตัวเลือก] ถอดรหัสซอร์สโค้ดที่สร้างความสับสนให้กับไฟล์ JavaScript ตัวเลือก: -i, --input [input_file] ไฟล์อินพุตที่จะถอดรหัสซอร์สโค้ดที่สร้างความสับสน (ค่าเริ่มต้น: "input/source.js") -o, --output [output_file] ไฟล์เอาต์พุตที่ไม่ซับซ้อน (ค่าเริ่มต้น: "output/output.js") -f, --force ว่าจะเขียนทับไฟล์เอาต์พุตหรือไม่ -h, --help แสดงความช่วยเหลือสำหรับคำสั่ง>
หรือใช้เวอร์ชันออนไลน์ที่ deobfuscate.io