เมื่อคิดเกี่ยวกับสิ่งนี้มีความงงงวยหลายประเภท เริ่มต้นด้วยการทำให้งงของซอร์สโค้ดซึ่งเสียเวลาอย่างสมบูรณ์ มันยากที่จะเข้าใจโดยปราศจากสิ่งนั้น! ดังนั้นแทนที่จะมุ่งเน้นไปที่ความสับสนของแพคเกจการจัดส่งของวิธีการส่งมอบรหัสให้กับผู้ใช้
ความสับสนเล็กน้อย
การทำให้งงเล็กน้อยมีอยู่เพื่อป้องกันไม่ให้ผู้ใช้ที่ไม่เป็นทางการโผล่นิ้วเข้ามาและทำลายสิ่งต่างๆ มันไม่ได้ป้องกันแฮ็กเกอร์ที่ตั้งใจ แต่มันมีคุณค่าในการช่วยให้แน่ใจว่าสิ่งที่คุณได้รับการร้องขอให้สนับสนุนคือสิ่งที่คุณได้ส่งมอบจริง ระดับการป้องกันที่จำเป็นสำหรับสิ่งนี้ค่อนข้างต่ำ แพ็กเกจการนำส่งต้องไม่ดูอ่านง่ายและแก้ไขได้ (ไม่มีเครื่องมือผู้เชี่ยวชาญ) และนั่นก็ค่อนข้างดีพอ
การย่อขนาด Javascript เป็นตัวอย่างของสิ่งนี้แม้ว่าจะไม่ได้ทำการตลาดก็ตาม ไม่มีใครในใจที่ถูกต้องต้องการอ่านและแก้ไขไฟล์ JS ที่ย่อเล็กสุดแม้ว่าจะเป็นไปได้ในทางเทคนิคที่จะทำเช่นนั้นหากคุณตั้งใจแน่วแน่ / คงพอ
ในทำนองเดียวกันกับการส่งมอบแอปพลิเคชัน Java การบรรจุรหัสลงใน JAR ที่สามารถดำเนินการได้นั้นจะหยุดความโง่เขลาส่วนใหญ่แม้ว่าจะได้รับเครื่องหมาย“ Please Keep Off The Grass” ในสวนสาธารณะของเมือง
แม้ในขณะที่ส่งมอบรหัส C ++ การลอกสัญลักษณ์ที่ไม่จำเป็นออกจากไฟล์เรียกทำงานก็เพียงพอที่จะถือว่าเป็นความสับสนเล็กน้อยได้ กุญแจสำคัญคือมันอึดอัดใจที่จะอ่านผลลัพธ์ในฐานะผู้ใช้ แต่ไม่มีปัญหาในการเรียกใช้งานมันเป็นคอมพิวเตอร์
ความงงงวยที่สำคัญ
การทำให้งงงวยที่สำคัญคือการทำให้ผู้ใช้ที่ตั้งใจและมีความรู้ออกมา นอกจากนี้ยังเป็นเกมที่แพ้ทั้งหมด ถ้าคอมพิวเตอร์สามารถประมวลผลมันคนสามารถแยกมันออกมาและทำงานในสิ่งที่มันทำ สิ่งที่ใกล้เคียงที่สุดที่คุณจะได้รับคือการทำให้โปรแกรมถอดรหัสตัวเองอย่างต่อเนื่องเปลี่ยนสิ่งที่มันทำในครั้งเดียวให้กลายเป็นสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิงในเวลาอื่น การสร้างสิ่งนี้จะค่อนข้างยากและยังคงไม่แฮ็กเกอร์ที่ดีจริงๆ (แม้ว่าพวกเขาจะค่อนข้างข้ามกับคุณในตอนท้ายด้วยจำนวนของความพยายามที่จำเป็นในการถอดรหัสรหัสที่แก้ไขด้วยตนเองทั้งหมด)
จะดีกว่าที่จะคิดในแง่ของการแก้ปัญหาอื่น ๆ ตัวอย่างเช่นคุณสามารถเก็บ "crown jewels" ของรหัสบนเซิร์ฟเวอร์ที่คุณควบคุมและอนุญาตให้ใช้บริการโทรเท่านั้นทำให้ลูกค้าเป็นของแถมฟรีซึ่งเป็นส่วนหน้าของบิตที่มีค่า หรือคุณสามารถใช้เส้นทางสัญญา / กฎหมายเพิ่มเติมและมอบเฉพาะโปรแกรมปฏิบัติการให้กับองค์กรที่เห็นด้วยอย่างเป็นทางการที่จะไม่แหย่ในรหัสของคุณหรือชดเชยคุณหากพวกเขาทำเช่นนั้น (เพื่อให้เป็น NDA บางประเภท) เป้าหมายคือเพื่อสร้างแรงจูงใจที่แข็งแกร่งสำหรับแฮ็กเกอร์ที่จะไม่แฮ็กและสำหรับผู้ใช้ที่จะเก็บรหัสให้ห่างจากแฮ็กเกอร์ที่ไม่ผูกพันตามข้อตกลง
แต่คุณต้องไม่คิดว่ารหัสของคุณจะไม่มีวันแตกได้ ด้วย virtualisation สถานะโปรแกรมใด ๆ ของการดำเนินการสามารถตรวจสอบและติดตามได้และสิ่งใดก็ตามที่พยายามเอาชนะ (เช่นการติดตามนาฬิกาไปยังแหล่งเวลาภายนอก) จะทำให้เกิดปัญหากับผู้ใช้ที่ถูกกฎหมายมากกว่าแฮกเกอร์ (ดูประวัติความเป็นมาของ DRM ว่าผู้เผยแพร่ข้อมูลที่ตั้งใจแน่วแน่มากเพียงใดไม่สามารถรักษาความปลอดภัยของระบบได้เมื่อโค้ดอยู่ในมือของคู่แข่ง) มันดีกว่ามากที่จะมุ่งเน้นไปที่การทำให้ผู้ใช้ถูกกฎหมายมีความสุข การสูญเสียจากการแตกเป็นครั้งคราวจะไม่มีอะไรเทียบได้กับเงินพิเศษที่นำเข้ามาจากลูกค้าที่พอใจ