มีใครใช้ obfuscator ที่ดีสำหรับ PHP? ฉันได้ลองแล้ว แต่พวกเขาไม่ทำงานสำหรับโครงการที่ใหญ่มาก พวกเขาไม่สามารถจัดการตัวแปรที่รวมอยู่ในไฟล์เดียวและใช้ในไฟล์อื่นตัวอย่างเช่น
หรือคุณมีเทคนิคอื่น ๆ ในการหยุดยั้งการแพร่กระจายของรหัสของคุณ?
มีใครใช้ obfuscator ที่ดีสำหรับ PHP? ฉันได้ลองแล้ว แต่พวกเขาไม่ทำงานสำหรับโครงการที่ใหญ่มาก พวกเขาไม่สามารถจัดการตัวแปรที่รวมอยู่ในไฟล์เดียวและใช้ในไฟล์อื่นตัวอย่างเช่น
หรือคุณมีเทคนิคอื่น ๆ ในการหยุดยั้งการแพร่กระจายของรหัสของคุณ?
คำตอบ:
คุณสามารถลองใช้PHP ป้องกันซึ่งเป็น obfuscator PHP ฟรีเพื่อทำให้งงงวยโค้ด PHP ของคุณ แก้ไข: บริการนี้ไม่ได้อยู่อีกต่อไป
มันสวยมากใช้งานง่ายและฟรี
สำหรับสิ่งที่คนอื่นเขียนที่นี่เกี่ยวกับการไม่ใช้ความงงงวยเพราะอาจทำให้เสีย ฯลฯ :
ฉันมีเพียงสิ่งเดียวเท่านั้นที่จะตอบคำถามเหล่านี้ - อย่าล็อคประตูบ้านของคุณเพราะใคร ๆ ก็สามารถล็อคกุญแจของคุณได้
ในกรณีนี้การทำให้งงงวยไม่ได้หมายถึงการป้องกันการโจรกรรมรหัส 100% มันเพียงแค่ต้องทำให้เป็นงานที่ใช้เวลานานดังนั้นมันจะถูกกว่าที่จะจ่ายเงิน coder เดิม หวังว่านี่จะช่วยได้
ผู้คนจะเสนอให้คุณ obfuscators แต่ไม่มีจำนวน obfuscation สามารถป้องกันใครบางคนจากรหัสของคุณ ไม่มี. หากคอมพิวเตอร์ของคุณสามารถเรียกใช้งานได้หรือในกรณีของภาพยนตร์และเพลงหากสามารถเล่นได้ผู้ใช้สามารถเข้าใช้งานได้ การคอมไพล์มันลงในเครื่องก็ทำให้งานยากขึ้นอีกนิด หากคุณใช้ obfuscator คุณจะหลอกตัวเอง ยิ่งกว่านั้นคุณยังไม่อนุญาตให้ผู้ใช้แก้ไขข้อผิดพลาดหรือทำการแก้ไข
บริษัท เพลงและภาพยนตร์ยังไม่ยอมรับข้อตกลงนี้พวกเขายังคงใช้เงินเป็นล้านในการทำ DRM
ในภาษาที่ตีความเช่น PHP และ Perl มันเป็นเรื่องเล็กน้อย Perl เคยมีโค้ด obfuscators จำนวนมากจากนั้นเรารู้ว่าคุณสามารถถอดรหัสพวกเขาได้เล็กน้อย
perl -MO=Deparse some_program
PHP มีสิ่งที่ต้องการDeZenderและแสดงรหัสของฉัน
คำแนะนำของฉัน? เขียนใบอนุญาตและรับทนายความ ตัวเลือกอื่นเท่านั้นที่จะไม่ให้รหัสและเรียกใช้บริการโฮสต์แทน
เห็นแล้วยังรายการ perlfaq ในเรื่อง
ไม่มีอะไรจะสมบูรณ์แบบ หากคุณต้องการหยุดบางสิ่งบางอย่างที่ไม่ใช่โปรแกรมเมอร์แล้วนี่เป็นสคริปต์เล็กน้อยที่ฉันเขียนคุณสามารถใช้:
<?php
$infile=$_SERVER['argv'][1];
$outfile=$_SERVER['argv'][2];
if (!$infile || !$outfile) {
die("Usage: php {$_SERVER['argv'][0]} <input file> <output file>\n");
}
echo "Processing $infile to $outfile\n";
$data="ob_end_clean();?>";
$data.=php_strip_whitespace($infile);
// compress data
$data=gzcompress($data,9);
// encode in base64
$data=base64_encode($data);
// generate output text
$out='<?ob_start();$a=\''.$data.'\';eval(gzuncompress(base64_decode($a)));$v=ob_get_contents();ob_end_clean();?>';
// write output text
file_put_contents($outfile,$out);
ฉันไม่แน่ใจว่าคุณสามารถติดป้ายกำกับความสับสนของภาษาที่ตีความว่าไม่มีจุดหมาย (ฉันไม่สามารถเพิ่มความคิดเห็นในโพสต์ของ Schwern ดังนั้นรายการใหม่จะไปที่นี่)
ฉันคิดว่ามันสั้นนิดหน่อยที่จะสมมติว่าคุณรู้สถานการณ์ที่เป็นไปได้ทั้งหมดที่มีคนต้องการทำให้งงงวยรหัสและคุณคิดว่าใคร ๆ ก็เต็มใจที่จะไปตามความยาวที่จำเป็นเพื่อดูรหัสนั้นเมื่อ obfuscated พิจารณาสถานการณ์ปัจจุบันของฉัน:
ฉันทำงานให้กับ บริษัท ที่ปรึกษาที่กำลังพัฒนาเว็บไซต์ PHP ขนาดใหญ่และค่อนข้างซับซ้อน โครงการจะถูกโฮสต์บนเซิร์ฟเวอร์ของลูกค้าที่โฮสต์เว็บไซต์อื่นที่พัฒนาโดยที่ปรึกษาอื่น ในทางเทคนิครหัสที่เราเขียนนั้นเป็นของลูกค้าดังนั้นเราจึงไม่สามารถให้สิทธิ์ใช้งานได้ อย่างไรก็ตามที่ปรึกษาอื่น ๆ (คู่แข่ง) ที่สามารถเข้าถึงเซิร์ฟเวอร์สามารถคัดลอกรหัสของเราโดยไม่ได้รับอนุญาตจากลูกค้าก่อน ดังนั้นเราจึงมีเหตุผลที่แท้จริงสำหรับการทำให้งงงวย - เพื่อให้ความพยายามที่จำเป็นสำหรับคู่แข่งที่จะเข้าใจรหัสของเรามากกว่าความพยายามในการสร้างสำเนาของงานของเราตั้งแต่เริ่มต้น
ดูSD Thicket PHP Obfuscatorของเราสำหรับ obfuscator ที่ใช้งานได้ดีกับชุดหน้าเว็บขนาดใหญ่โดยพลการ มันดำเนินงานเป็นหลักโดยการระบุชื่อตัวแปลงสัญญาณ ด้วยแอพพลิเคชั่นขนาดเล็กถึงขนาดใหญ่ทำให้โค้ดนี้ยากที่จะเข้าใจซึ่งเป็นจุดประสงค์ทั้งหมด
มันไม่สิ้นเปลืองพลังงานใด ๆ กับ "eval (decode ( encodedprogramcode ))" รูปแบบซึ่ง PHP จำนวนมาก "obfuscators" ทำ [เหล่านี้คือ "encoder" ไม่ใช่ไม่ใช่ "obfuscator" s เพราะ clod ใด ๆ สามารถค้นหาการเรียกนั้นได้ และรัน eval-decode ตัวเองและรับรหัสที่ถอดรหัส
มันใช้ตัวแยกวิเคราะห์ภาษาที่แม่นยำในการประมวลผล PHP; มันจะบอกคุณว่าโปรแกรมของคุณไม่ถูกต้องทางไวยากรณ์หรือไม่ ที่สำคัญกว่านั้นคือรู้ทั้งภาษาอย่างแม่นยำ มันจะไม่สูญหายหรือสับสนและจะไม่ทำลายรหัสของคุณ (สิ่งอื่น ๆ ที่เกิดขึ้นหากคุณทำให้งงงวย "ไม่ถูกต้อง" เช่นล้มเหลวในการระบุ API สาธารณะของรหัสอย่างถูกต้อง)
ใช่มันทำให้ตัวระบุยุ่งเหยิงในหน้าเดียวกัน ถ้ามันไม่ทำอย่างนั้นผลลัพธ์จะไม่ทำงาน
ที่ดีที่สุดที่ผมเคยเห็นเป็นZend ยาม
ลองอันนี้: http://www.pipsomania.com/best_php_obfuscator.do
เมื่อเร็ว ๆ นี้ฉันเขียนมันใน Java เพื่อทำให้งงงวยโครงการ PHP ของฉันเพราะฉันไม่พบสิ่งที่ดีและเข้ากันได้พร้อมเขียนบนเน็ตฉันตัดสินใจที่จะนำมันออนไลน์เป็น saas ดังนั้นทุกคนใช้งานได้ฟรี มันไม่ได้เปลี่ยนชื่อตัวแปรระหว่างสคริปต์ที่แตกต่างกันเพื่อความเข้ากันได้สูงสุด แต่ทำให้พวกเขาสับสนมากโดยใช้ตรรกะสุ่มทุกคำสั่งเช่นกัน เงื่อนไข ... ทุกอย่าง ฉันเชื่อว่ามันดีขึ้นมากแล้วสำหรับ codeeclug buggy นั่นคือวิธีที่เขียนใน PHP และช้ามาก :)
Thicket ™ Obfuscator สำหรับ PHP
PHP Obfuscatorรหัสที่มาเครื่องมือ scrambles PHP เพื่อทำให้มันยากมากที่จะเข้าใจหรือวิศวกรรมย้อนกลับ (ตัวอย่าง) สิ่งนี้ให้ความคุ้มครองที่สำคัญสำหรับทรัพย์สินทางปัญญาของซอร์สโค้ดซึ่งต้องโฮสต์บนเว็บไซต์หรือส่งให้กับลูกค้า มันเป็นสมาชิกของตระกูล Source Code Obfuscators ของ SD
:(
นั่นเป็นซอฟต์แวร์ที่ตายแล้ว ตอนนี้มีคนที่ดีกว่าและยอดเยี่ยมอยู่ใช่ไหม?
การใช้ SourceGuardian นั้นดีมากเพราะมาพร้อมกับ GUI ที่เท่ห์และใช้งานง่าย
แต่ระวัง:
ให้ความสนใจกับเงื่อนไขการอนุญาตให้ใช้สิทธิ์ - ที่ค่อนข้างตลก -
Obfuscation กำลังเพิ่มชั้นของบั๊กที่อาจเกิดขึ้นและความเสี่ยงด้านความปลอดภัยให้กับโปรแกรมของคุณ โปรดอย่าทำ
คนประเภทที่เขียนซอฟต์แวร์ obfuscation มักจะดูเป็นคนร่างเตี้ยและไม่มีทักษะอยู่ดี
หากรหัสของคุณ "ยอดเยี่ยม" แคร็กเกอร์จะต้องผ่านความพยายามอย่างมากในการแพร่กระจายโดยไม่คำนึงว่ารหัสนั้นยุ่งเหยิงหรือไม่ หากไม่มีใครรู้ / ใส่ใจเกี่ยวกับรหัสของคุณพวกเขาอาจจะไม่ทำเช่นนั้น