ฉันต้องการสร้างแอปพลิเคชัน JavaScript ที่ไม่ใช่โอเพ่นซอร์สดังนั้นฉันต้องการเรียนรู้วิธีทำให้โค้ด JS ของฉันงงงวย? เป็นไปได้ไหม
ฉันต้องการสร้างแอปพลิเคชัน JavaScript ที่ไม่ใช่โอเพ่นซอร์สดังนั้นฉันต้องการเรียนรู้วิธีทำให้โค้ด JS ของฉันงงงวย? เป็นไปได้ไหม
คำตอบ:
obfuscation:
ลองยูอิคอมเพรสเซอร์ เป็นเครื่องมือที่ได้รับความนิยมมากสร้างปรับปรุงและดูแลโดยทีม Yahoo UI
คุณอาจใช้:
UPDATE: คำถามนี้ถูกถามมานานกว่า 10 ปีแล้วและ YUI ไม่ได้รับการดูแลรักษาอีกต่อไป Google Closure Compiler ยังคงใช้งานอยู่และ UglifyJS สามารถเรียกใช้แบบโลคัลผ่านตัวจัดการแพ็กเกจโหนด:npm install -g uglify-js
ข้อมูลสตริงส่วนบุคคล:
การรักษาค่าสตริงให้เป็นแบบส่วนตัวนั้นเป็นข้อกังวลที่แตกต่างกันและการทำให้งงงวยจะไม่เกิดประโยชน์มากนัก แน่นอนโดยบรรจุภัณฑ์ขึ้นแหล่งที่มาของคุณให้เป็นที่อ่านไม่ออกระเบียบ minified คุณมีรุ่นไฟของการรักษาความปลอดภัยผ่านความสับสน ส่วนใหญ่เป็นผู้ใช้ของคุณที่กำลังดูแหล่งที่มาและค่าสตริงในไคลเอนต์มีไว้สำหรับการใช้งานของพวกเขาเพื่อให้การเรียงลำดับของค่าสตริงส่วนตัวไม่จำเป็นต้องมักจะ
หากคุณมีค่าที่คุณไม่เคยต้องการให้ผู้ใช้เห็นคุณจะมีตัวเลือกสองทาง ก่อนอื่นคุณสามารถทำการเข้ารหัสบางชนิดซึ่งถูกถอดรหัสเมื่อโหลดหน้าเว็บ นั่นอาจเป็นหนึ่งในตัวเลือกที่ปลอดภัยที่สุด แต่ก็มีงานจำนวนมากซึ่งอาจไม่จำเป็น คุณอาจจะ base64 เข้ารหัสค่าสตริงบางส่วนและที่จะง่าย .. แต่คนที่ต้องการค่าสตริงเหล่านั้นจริงๆอาจได้อย่างง่ายดายถอดรหัสพวกเขา การเข้ารหัสเป็นวิธีเดียวที่จะป้องกันไม่ให้ใครก็ตามเข้าถึงข้อมูลของคุณอย่างแท้จริงและคนส่วนใหญ่พบว่ามีความปลอดภัยมากกว่าที่พวกเขาต้องการ
sidenote:
การทำให้งงงวยใน Javascript นั้นเป็นที่ทราบกันดีว่าทำให้เกิดข้อบกพร่องบางอย่าง ผู้ obfuscators เริ่มดีขึ้นเล็กน้อยเกี่ยวกับเรื่องนี้ แต่หลายชุดตัดสินใจว่าพวกเขาเห็นประโยชน์เพียงพอจากการลดขนาดและการgzippingและการประหยัดที่เพิ่มขึ้นของการทำให้งงไม่ได้คุ้มค่ากับปัญหาเสมอไป หากคุณพยายามปกป้องแหล่งที่มาของคุณคุณอาจจะตัดสินใจว่ามันคุ้มค่ากับเวลาของคุณเพียงเพื่อให้โค้ดอ่านยากขึ้น JSMinเป็นทางเลือกที่ดี
--preserve-semi
ไว้ การเขียนซ้ำตัวแปรส่วนตัวไปที่ a, b, c ฯลฯ มักจะปลอดภัย สิ่งที่ผมทำก็คือทำให้ minifier --line-break 0
ใส่ตัวแบ่งบรรทัดหลังจากแต่ละลำไส้ใหญ่กึ่งในรหัส จากนั้นในการผลิตหากข้อผิดพลาดฉันมีบรรทัดอ้างอิงที่ถูกต้องในการทำงานและสามารถค้นหารหัสนั้นในสำเนาการพัฒนาของฉัน มิฉะนั้นคุณจะต้องจบลงด้วยข้อผิดพลาดในรหัสจำนวนมากและไม่รู้ว่าข้อผิดพลาดนั้นอยู่ที่ไหน
ฉันประหลาดใจที่ไม่มีใครได้กล่าวถึงของ Google ปิดคอมไพเลอร์ มันไม่เพียงแค่ลดขนาด / บีบอัดเท่านั้น แต่ยังวิเคราะห์เพื่อค้นหาและลบรหัสที่ไม่ได้ใช้และเขียนใหม่เพื่อการลดขนาดสูงสุด นอกจากนี้ยังสามารถทำการตรวจสอบประเภทและจะเตือนเกี่ยวกับข้อผิดพลาดทางไวยากรณ์
JQuery เพิ่งเปลี่ยนจาก YUI Compresser เป็น Off Compiler และเห็น " การปรับปรุงที่มั่นคง "
การทำให้งงงวยไม่สามารถทำงานได้จริงๆ สำหรับผู้ที่ต้องการได้รับรหัสของคุณจริงๆมันเป็นเพียงการเพิ่มความเร็ว ยิ่งไปกว่านั้นยังช่วยให้ผู้ใช้ของคุณไม่สามารถแก้ไขข้อบกพร่อง (และจัดส่งการแก้ไขกลับมาให้คุณ) และทำให้การวินิจฉัยปัญหาในฟิลด์นั้นยากขึ้น มันเสียเวลาและเงินของคุณ
พูดคุยกับนักกฎหมายเกี่ยวกับกฎหมายทรัพย์สินทางปัญญาและตัวเลือกทางกฎหมายของคุณคืออะไร "โอเพ่นซอร์ส"ไม่ได้หมายความว่า "ผู้คนสามารถอ่านต้นฉบับ" ได้ แทนโอเพนซอร์สเป็นรูปแบบสิทธิ์การใช้งานเฉพาะซึ่งอนุญาตให้ใช้และแก้ไขรหัสของคุณได้อย่างอิสระ หากคุณไม่ให้ใบอนุญาตดังกล่าวคนที่คัดลอกรหัสของคุณจะละเมิดและ (ในส่วนใหญ่ของโลก) คุณมีตัวเลือกทางกฎหมายเพื่อหยุดพวกเขา
วิธีเดียวที่คุณสามารถป้องกันรหัสของคุณได้คือไม่ส่ง ย้ายรหัสเซิร์ฟเวอร์ที่สำคัญและให้รหัส Javascript สาธารณะของคุณเรียกใช้ Ajax
คุณสามารถทำให้งงแหล่ง javascript ทุกอย่างที่คุณต้องการ แต่มันจะเป็น reverse-engineerable เพียงแค่อาศัยการกำหนด source code ทั้งหมดให้ทำงานบนเครื่องไคลเอนต์จริง ๆ ... ตัวเลือกที่ดีที่สุดที่ฉันคิดคือการประมวลผลของคุณเสร็จสิ้นแล้ว ด้วยรหัสฝั่งเซิร์ฟเวอร์และรหัสไคลเอนต์จาวาสคริปต์ทั้งหมดก็คือส่งคำขอสำหรับการประมวลผลไปยังเซิร์ฟเวอร์เอง มิฉะนั้นทุกคนจะสามารถติดตามการดำเนินการทั้งหมดที่รหัสกำลังทำอยู่
มีคนพูดถึง base64 เพื่อให้สายปลอดภัย นี่เป็นความคิดที่แย่มาก Base64 สามารถจดจำได้ทันทีโดยประเภทของผู้ที่ต้องการย้อนกลับสร้างรหัสของคุณ สิ่งแรกที่พวกเขาจะทำคือยกเลิกการเข้ารหัสและดูว่ามันคืออะไร
มีเครื่องมือทำให้งงงวย JavaScript จำนวนมากมายที่สามารถใช้ได้อย่างอิสระ อย่างไรก็ตามฉันคิดว่ามันสำคัญที่จะต้องทราบว่ามันเป็นเรื่องยากที่จะทำให้งงงวย JavaScript ไปยังจุดที่มันไม่สามารถย้อนกลับวิศวกรรม
ด้วยเหตุนี้มีหลายตัวเลือกที่ฉันคุ้นเคยกับการทำงานล่วงเวลาในระดับหนึ่ง:
ยูอิคอมเพรสเซอร์ ตัวบีบอัด JavaScript ของ Yahoo! ทำงานได้ดีในการกลั่นโค้ดที่จะปรับปรุงความเร็วในการโหลด มีระดับของความสับสนเล็กน้อยที่ทำงานค่อนข้างดี ที่สำคัญคอมเพรสเซอร์จะเปลี่ยนชื่อฟังก์ชั่นลบพื้นที่สีขาวและปรับเปลี่ยนตัวแปรท้องถิ่น นี่คือสิ่งที่ฉันใช้บ่อยที่สุด นี่เป็นเครื่องมือบน Java แบบโอเพนซอร์ซ
JSMinเป็นเครื่องมือที่เขียนโดย Douglas Crockford ที่พยายามลดขนาดแหล่ง JavaScript ของคุณ ในคำพูดของ Crockford "JSMin ไม่ได้ทำให้งงงวย แต่มันก็น่าเกลียด" เป้าหมายหลักคือการลดขนาดแหล่งที่มาของคุณเพื่อให้โหลดได้เร็วขึ้นในเบราว์เซอร์
ฟรี JavaScript Obfuscator นี่เป็นเครื่องมือบนเว็บที่พยายามทำให้โค้ดของคุณยุ่งเหยิงโดยการเข้ารหัสมัน ฉันคิดว่าการเสียรูปแบบของการเข้ารหัส (หรือการทำให้งง) ทำให้เกิดขนาดไฟล์ได้ อย่างไรก็ตามนั่นเป็นเรื่องของการตั้งค่าส่วนตัว
[ZER0O00OIFY, ZER0000OIFY, ZEROO00OIFY, ZEROOO0OIFY]
vars เป็นอย่างน้อย[var1, var2,..]
ภายในหนึ่งนาที ฉันสามารถ de-uglify, เยื้อง, และค้นหา / แทนที่ชื่อ var ภายในสองนาที และไม่ฉันฉลาดกว่า Jr. Dev ทั่วไปทั่วไป ความจริงง่ายๆคือไม่มีวิธีปิดบังฝั่งไคลเอ็นต์ JS คุณสามารถซื้อได้ด้วยตัวเอง 5 นาทีสูงสุด แต่ก็ไม่มีประโยชน์ สิ่งนี้เป็นเพียงการขายคนที่ไม่รู้จักรหัสใน "ความปลอดภัย" ที่เพิ่มเข้ามา ไม่มีใครที่เคยเขียนบรรทัดของ JS จะซื้ออึนั้น
ฉันจะทำอะไร:
A.หมุนรอบแฮ็กเกอร์!
นี่จะเป็นในส่วนที่สองของฉันรหัสลับจาวาสคริปต์ลับเปิดตัว LAUNCHER สิ่งที่คุณเห็นในซอร์สโค้ด
รหัสนี้คืออะไร
var ajax=function(a,b,d,c,e,f){
e=new FormData();
for(f in d){e.append(f,d[f]);};
c=new XMLHttpRequest();
c.open('POST',a);
c.setRequestHeader("Troll1","lol");
c.onload=b;
c.send(e);
};
window.onload=function(){
ajax('Troll.php',function(){
(new Function(atob(this.response)))()
},{'Troll2':'lol'});
}
B.ทำให้งงงวยรหัสเล็กน้อย
นั่นคืออะไร?
(new Function(atob('dmFyIGFqYXg9ZnVuY3Rpb24oYSxiLGQsYyxlLGYpe2U9bmV3IEZvcm1EYXRhKCk7Zm9yKGYgaW4gZCl7ZS5hcHBlbmQoZixkW2ZdKTt9O2M9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Yy5vcGVuKCdQT1NUJyxhKTtjLnNldFJlcXVlc3RIZWFkZXIoIlRyb2xsMSIsImxvbCIpO2Mub25sb2FkPWI7Yy5zZW5kKGUpO307d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe2FqYXgoJ1Ryb2xsLnBocCcsZnVuY3Rpb24oKXsgKG5ldyBGdW5jdGlvbihhdG9iKHRoaXMucmVzcG9uc2UpKSkoKX0seydUcm9sbDInOidsb2wnfSk7fQ==')))()
Cสร้างยากที่จะแสดงไฟล์ php ด้วยรหัสจริงภายใน
รหัส php นี้คืออะไร
หากทุกอย่างโอเคมันจะแสดงรหัสที่ถูกต้องให้คุณเป็นรหัสปลอมหรือแบนไอพีให้ปิดหน้า .. ไม่ว่าอะไรก็ตาม
<?php
$t1=apache_request_headers();
if(base64_encode($_SERVER['HTTP_REFERER'])=='aHR0cDovL2hlcmUuaXMvbXkvbGF1bmNoZXIuaHRtbA=='&&$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){
echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';//here is the SECRET javascript code
}else{
echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';
};
?>
base64 referrer = http://here.is/my/launcher.html
SECRET javascript = document.body.appendChild(document.createElement('div')).innerText='Awesome';
ปลอม = window.open('', '_self', '');window.close();
ตอนนี้ .. ถ้าคุณกำหนดตัวจัดการเหตุการณ์ในจาวาสคริปต์ SECRET มันอาจจะเข้าถึงได้ .. คุณต้องกำหนดมันไว้ข้างนอกด้วย launchcode และชี้ไปที่ฟังก์ชัน SECRET ที่ซ้อนกัน
ดังนั้น ... จะมีวิธีง่ายๆในการรับรหัสหรือไม่
document.body.appendChild(document.createElement('div')).innerText='Awesome';
ฉันไม่แน่ใจว่าใช้งานได้หรือไม่ แต่ฉันใช้โครเมียมและตรวจสอบองค์ประกอบทรัพยากรเครือข่ายแหล่งข้อมูลไทม์ไลน์โปรไฟล์การตรวจสอบ แต่ฉันไม่พบบรรทัดด้านบน
Note1: หากคุณเปิด Troll.php url จาก Inspect element-> network ใน chrome คุณจะได้รับรหัสปลอม
note2: โค้ดทั้งหมดเขียนขึ้นสำหรับเบราว์เซอร์สมัยใหม่ polyfill ต้องการโค้ดจำนวนมาก
แก้ไข
launcher.html
<!doctype html><html><head><meta charset="utf-8"><title></title><script src="data:application/javascript;base64,KG5ldyBGdW5jdGlvbihhdG9iKCdkbUZ5SUdGcVlYZzlablZ1WTNScGIyNG9ZU3hpTEdRc1l5eGxMR1lwZTJVOWJtVjNJRVp2Y20xRVlYUmhLQ2s3Wm05eUtHWWdhVzRnWkNsN1pTNWhjSEJsYm1Rb1ppeGtXMlpkS1R0OU8yTTlibVYzSUZoTlRFaDBkSEJTWlhGMVpYTjBLQ2s3WXk1dmNHVnVLQ2RRVDFOVUp5eGhLVHRqTG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSWxSeWIyeHNNU0lzSW14dmJDSXBPMk11YjI1c2IyRmtQV0k3WXk1elpXNWtLR1VwTzMwN2QybHVaRzkzTG05dWJHOWhaRDFtZFc1amRHbHZiaWdwZTJGcVlYZ29KMVJ5YjJ4c0xuQm9jQ2NzWm5WdVkzUnBiMjRvS1hzZ0tHNWxkeUJHZFc1amRHbHZiaWhoZEc5aUtIUm9hWE11Y21WemNHOXVjMlVwS1Nrb0tYMHNleWRVY205c2JESW5PaWRzYjJ3bmZTazdmUT09JykpKSgp"></script></head><body></body></html>
Troll.php
<?php $t1=apache_request_headers();if(/*base64_encode($_SERVER['HTTP_REFERER'])=='PUT THE LAUNCHER REFERER HERE'&&*/$_POST['Troll2']=='lol'&&$t1['Troll1']='lol'){echo 'ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSkuaW5uZXJUZXh0PSdBd2Vzb21lJzsNCg==';}else{echo 'd2luZG93Lm9wZW4oJycsICdfc2VsZicsICcnKTt3aW5kb3cuY2xvc2UoKTs=';}; ?>
ลองJScrambler ฉันให้มันหมุนเร็ว ๆ นี้และรู้สึกประทับใจกับมัน มันมีชุดเทมเพลตสำหรับการทำให้งงงวยด้วยการตั้งค่าที่กำหนดไว้ล่วงหน้าสำหรับผู้ที่ไม่สนใจรายละเอียดมากนักและเพียงแค่ต้องการให้มันเสร็จอย่างรวดเร็ว คุณยังสามารถสร้างความงงงวยแบบกำหนดเองได้โดยเลือกการแปลง / เทคนิคที่คุณต้องการ
ปัญหาเกี่ยวกับภาษาที่แปลคือคุณส่งแหล่งข้อมูลเพื่อให้พวกเขาใช้งานได้ (ยกเว้นว่าคุณมีคอมไพเลอร์ไปยัง bytecode แต่จากนั้นอีกครั้งก็เป็นเรื่องเล็กน้อยที่จะถอดรหัส)
ดังนั้นหากคุณไม่ต้องการเสียสละประสิทธิภาพคุณสามารถทำได้เฉพาะชื่อตัวแปรและฟังก์ชันเช่น แทนที่พวกเขาด้วย a, b ... aa, ab ... หรือ a101, a102 เป็นต้นและแน่นอนให้ลบพื้นที่ / บรรทัดใหม่ให้มากที่สุดเท่าที่จะทำได้ (นั่นคือสิ่งที่เรียกว่า JS compressors)
สตริงที่ทำให้ยุ่งเหยิงจะมีผลการปฏิบัติงานหากคุณต้องเข้ารหัสและถอดรหัสในแบบเรียลไทม์ บวกกับดีบักเกอร์ JS สามารถแสดงค่าสุดท้าย ...
ตรงกันข้ามกับคำตอบอื่น ๆ ที่ฉันแนะนำให้ใช้กับ YUI Compressor; คุณควรใช้Google ปิด
ไม่มากเพราะมันบีบอัดมากกว่า แต่ส่วนใหญ่เป็นเพราะมันจะจับข้อผิดพลาดจาวาสคริปต์เช่นa = [1,2,3,];
ที่ทำให้ IE ไปรวน
แอพพลิเคชั่นที่ไม่ใช้ซอร์สของ Javascript นั้นค่อนข้างโง่ Javascript เป็นภาษาที่ตีความโดยฝั่งไคลเอ็นต์ .. การทำให้งงงวยไม่ได้ป้องกันมาก ..
การทำให้งงงวย JS มักจะทำเพื่อลดขนาดของสคริปต์แทนที่จะ "ป้องกัน" มัน หากคุณอยู่ในสถานการณ์ที่คุณไม่ต้องการให้รหัสของคุณเป็นแบบสาธารณะ Javascript ไม่ใช่ภาษาที่ถูกต้อง ..
มีเครื่องมือมากมายรอบ ๆ แต่ส่วนใหญ่มีคำว่า "compressor" (หรือ "minifier") ในชื่อของมันด้วยเหตุผล ..
คุณไม่สามารถรักษาความปลอดภัยรหัสฝั่งไคลเอ็นต์: เพียงกด F12 บน Google Chrome หยุดการประมวลผลจาวาสคริปต์และคุณจะได้รับข้อความทั้งหมดแม้กระทั่งรหัส บรรเจิดและเปลี่ยนชื่อตัวแปรและคุณจะได้รับรหัสต้นฉบับเกือบ
หากคุณกำลังเขียนจาวาสคริปต์ฝั่งเซิร์ฟเวอร์ (เช่น NodeJS) กลัวว่าใครบางคนกำลังแฮ็คข้อมูลลงในเซิร์ฟเวอร์ของคุณและต้องการให้แฮกเกอร์ทำงานได้ยากขึ้นให้เวลากับคุณในการเข้าถึงกลับมากขึ้นจากนั้นใช้คอมไพเลอร์ javacript :
คุณต้องใช้การปิดคอมไพเลอร์ในการรวบรวมขั้นสูงเนื่องจากเป็นเครื่องมือเดียวที่เปลี่ยนชื่อตัวแปรทั้งหมดของคุณแม้ว่าจะใช้ในหลายไฟล์ / โมดูล แต่ก็มีปัญหามันจะทำงานเฉพาะถ้าคุณเขียนในมันเข้ารหัสรูปแบบ
ฉันสามารถแนะนำJavaScript Utilityโดย Patrick J. O'Neil มันสามารถทำให้สับสน / กะทัดรัดและบีบอัดและดูเหมือนว่าจะค่อนข้างดีที่เหล่านี้ ที่กล่าวว่าฉันไม่เคยลองรวมไว้ในสคริปต์การสร้างใด ๆ
สำหรับเรื่องน่ารำคาญและการลดขนาด - ฉันไม่ใช่แฟนตัวยงของอดีต มันทำให้การดีบักเป็นไปไม่ได้ (ข้อผิดพลาดที่บรรทัดที่ 1 ... "รอมีเพียงหนึ่งบรรทัด") และพวกเขามักจะใช้เวลาในการแกะ แต่ถ้าคุณต้องการ ... ดี
ฉันขอแนะนำให้ลดขนาดครั้งแรกด้วยบางสิ่งบางอย่างเช่น YUI Compressor แล้วแปลงสตริงและตัวเลขทั้งหมดเป็นค่า HEX โดยใช้บางอย่างเช่นhttp://www.javascriptobfuscator.com/
ด้วยวิธีนี้รหัสจะถูกแสดงใกล้เป็นไปไม่ได้ที่จะเข้าใจและฉันคิดว่าในขั้นตอนนี้มันจะใช้เวลามากขึ้นสำหรับแฮ็กเกอร์ในการออกกฎหมายรหัสของคุณใหม่กว่าที่เป็นจริงถ้าเขาเขียนใหม่ตั้งแต่ต้น การเขียนใหม่และการโคลนนิ่งเป็นสิ่งที่คุณไม่สามารถหยุดได้ หลังจากทั้งหมดเราเป็นคนฟรี!
Dean Edward's Packer นั้นยอดเยี่ยมสำหรับผู้ obfuscator แม้ว่าส่วนใหญ่มันจะทำให้โค้ดยุ่งเหยิงไม่ใช่องค์ประกอบของสตริงที่คุณอาจมีในโค้ดของคุณ
ดู: เครื่องมือบีบอัด Javascript ออนไลน์ และเลือก Packer (Dean Edwards) จากดรอปดาวน์
ฉันอยู่ภายใต้ความประทับใจที่องค์กรบางแห่ง (เช่น: JackBe) ใส่รหัส JavaScript ที่เข้ารหัสไว้ในไฟล์ * .gif แทนที่จะเป็นไฟล์ JS เพื่อวัดความสับสนเพิ่มเติม
ลองใช้เครื่องมือนี้Javascript Obfuscator
ฉันใช้มันในเกม HTML5 ของฉันไม่เพียง แต่ลดขนาดจาก 950KB เหลือ 150 แต่ยังทำให้ซอร์สโค้ดคอมไพเลอร์ปิดไม่สามารถอ่านได้และตัวแปลงกลับเป็นแบบย้อนกลับฉันเองไม่รู้วิธีย้อนกลับการทำให้งงงวยนี้
ฉันใช้Jasobมานานหลายปีแล้ว
มันมี UI ขั้นสูง แต่ยังคงใช้งานง่ายและใช้งานง่าย
นอกจากนี้ยังจะจัดการไฟล์ HTML และ CSS
วิธีที่ดีที่สุดในการใช้งานคือการใส่คำนำหน้าตัวแปรส่วนตัวทั้งหมดของคุณด้วยการขีดเส้นใต้จากนั้นใช้sort
ฟีเจอร์เพื่อจัดกลุ่มทั้งหมดเข้าด้วยกันและทำเครื่องหมายเป็นเป้าหมายสำหรับการทำให้งงงวย
ผู้ใช้ยังสามารถดูแหล่งที่มาของคุณ แต่มันเป็นเรื่องยากมากที่จะถอดรหัสเมื่อตัวแปรส่วนตัวของคุณจะถูกแปลงจากสิ่งที่ชอบที่จะ_sUserPreferredNickName
a
เอ็นจิ้นจะเพิ่มจำนวนตัวแปรเป้าหมายโดยอัตโนมัติและจัดลำดับความสำคัญเพื่อรับการบีบอัดสูงสุด
ฉันไม่ได้ทำงานให้กับ Jasob และฉันก็ไม่ได้รับการโปรโมทเลยเพียงแค่ให้คำแนะนำที่เป็นมิตร
ข้อเสียคือไม่ฟรีและมีราคาแพง แต่ก็คุ้มค่าเมื่อเทียบกับทางเลือก - ตัวเลือก 'ฟรี' ไม่ได้เข้ามาใกล้
คุณเคยลองBananascriptไหม? มันสร้างรหัสบีบอัดสูงและอ่านไม่ได้อย่างสมบูรณ์
eval()
ในบรรทัดสุดท้ายconsole.log()
และคอนโซลของคุณจะคายสิ่งทั้งหมด
ฉันใช้โปรแกรม Utility-Compiler สำหรับการปิดการใช้งานจาวาสคริปต์ มันลดขนาดรหัสและมีตัวเลือกเพิ่มเติมสำหรับ obfuscation ยูทิลิตี้นี้มีให้ที่ Google โค้ดที่ URL ด้านล่าง:
เครื่องมือปิด
แต่วันนี้ฉันได้ยิน UglifyJS มาก คุณสามารถค้นหาการเปรียบเทียบต่าง ๆ ระหว่างการปิดคอมไพเลอร์และ UglifyJS ซึ่ง Uglify น่าจะเป็นผู้ชนะ
UglifyJS: คอมเพรสเซอร์ JavaScript ใหม่ที่รวดเร็วสำหรับ Node.js ที่เทียบเท่ากับการปิด
เร็ว ๆ นี้ฉันจะให้โอกาส UglifyJS
ในฐานะที่เป็น JavaScript / HTML / CSS Obfuscator / คอมเพรสเซอร์คุณยังสามารถลองPatu Digua
อันนี้ลดขนาดแต่ไม่ทำให้งง หากคุณไม่ต้องการใช้ Java บรรทัดคำสั่งคุณสามารถวางจาวาสคริปต์ในเว็บฟอร์ม
คุณควรพิจารณาดูObfuscriptorอย่างแน่นอน
ฉันไปเกินทั่วไปเทคนิคการลดรูปจาวาสคริปต์ที่เราได้เห็นจากเครื่องมืออื่น ๆ เช่นยูอิคอมเพรสเซอร์หรือGoogle ปิด
รหัสที่ยุ่งเหยิงดูเหมือนเข้ารหัสมากขึ้น ไม่เหมือนสิ่งที่ฉันเคยเห็นมาก่อน
หากคุณใช้ไลบรารี JavaScript ให้พิจารณา Dojo Toolkit ซึ่งเข้ากันได้ (หลังจากแก้ไขเล็กน้อย) ด้วยการคอมไพล์โหมดขั้นสูงของคอมไพเลอร์ปิด
Dojo - ไลบรารี JavaScript เดียวเท่านั้นที่เข้ากันได้กับ Off Compiler
โค้ดที่คอมไพล์ด้วยโหมดปิดขั้นสูงนั้นแทบจะเป็นไปไม่ได้เลยที่จะทำวิศวกรรมย้อนกลับแม้จะผ่านทางโปรแกรมเสริมความงามเนื่องจากฐานรหัสทั้งหมด (รวมทั้งห้องสมุด) ก็ไม่ชัดเจน มันยังเล็กโดยเฉลี่ย 25%
รหัส JavaScript ที่ย่อขนาดลงเท่านั้น (YUI Compressor, Uglify ฯลฯ ) นั้นง่ายต่อการย้อนกลับวิศวกรหลังจากผ่านตัวปรับแต่งความงาม
ฉันเคยใช้สิ่งนี้ในอดีตและทำได้ดีมาก ไม่ฟรี แต่คุณควรดูอย่างแน่นอน
JavaScript Obfuscator & Encoder