obfuscator เป็นกระบวนการหรืออุปกรณ์ที่มีวัตถุประสงค์เพื่อทำให้โปรแกรมเข้าใจยากขึ้น โดยทั่วไปวิธีการของ obfuscator คือการใช้โปรแกรมที่ค่อนข้างตรงไปตรงมาและทำให้รหัสพื้นฐานซับซ้อนขึ้น ในขณะที่ผู้ใช้ปลายทางไม่น่าจะสังเกตเห็นความแตกต่างในวิธีการเรียกใช้โค้ด แต่ฟังก์ชั่นของ obfuscator ทำให้การแฮ็ครหัสและจี้โปรแกรมนั้นยากขึ้น จากมุมมองนี้การใช้เครื่องมือประเภทนี้สามารถมองได้ว่าเป็นมาตรการรักษาความปลอดภัย
ชื่อของอุปกรณ์หรือกระบวนการนั้นยืมมาจากคำว่า "obfuscate" ซึ่งหมายถึงการนำเสนอด้วยวาจาที่ซับซ้อนในความพยายามที่จะสร้างความสับสนหรือสับสน ในทำนองเดียวกันผู้ obfuscator พยายามทำให้กระบวนการเข้าใจรหัสค่อนข้างน่างง สิ่งนี้ทำให้ยากต่อการทำลายรหัสเนื่องจากเนื้อจริงของรหัสนั้นฝังลึกหรืองงงวยจนยากที่จะแยกส่วนสำคัญในการทำงานของรหัสออก
มีภาษาโปรแกรมหลายภาษาที่มีแนวโน้มที่จะตอบสนองได้ดีต่อกระบวนการทำให้งงงวย C ++ เป็นหนึ่งในภาษาที่ได้รับความนิยมมากที่สุดและทำให้สามารถใช้งาน obfuscator ได้อย่างง่ายดายโดยไม่ทำให้ฟังก์ชั่นของรหัสพื้นฐานเสียหาย ในทำนองเดียวกัน C และ Perl ยังมีแนวโน้มที่จะทำงานได้ดีกับการใช้ obfuscation ทำให้ค่อนข้างง่ายในการเพิ่มองค์ประกอบของการป้องกันในการเขียนโปรแกรมใด ๆ ที่เขียนในภาษาทั้งสามนี้
ในขณะที่วัตถุประสงค์ของผู้ obfuscator คือการทำให้โค้ดยากที่จะคลี่คลาย แต่ก็มีความจำเป็นที่จะต้องทำให้แน่ใจว่าผู้ที่ได้รับอนุญาตให้ทำงานกับโปรแกรมสามารถทำได้โดยไม่ถูกขัดขวางโดยกระบวนการของการทำให้งงงวย ด้วยเหตุนี้จึงเป็นไปได้ที่จะใช้เทคนิคต่าง ๆ เพื่อทำงานผ่านภาวะแทรกซ้อนที่เพิ่มเข้ามาและรับรหัสฐาน กระบวนการนี้เรียกว่าวิศวกรรมย้อนกลับเนื่องจากเกี่ยวข้องกับการคลายความยุ่งยากเพื่อให้เห็นภาพที่แท้จริง การแบ่งส่วนโปรแกรมเป็นตัวอย่างของเทคนิควิศวกรรมย้อนกลับที่ใช้ในการยกเลิกการทำให้สับสนชุดของรหัส
ในขณะที่ผู้ obfuscator ให้การปกป้องในระดับหนึ่งเป็นสิ่งสำคัญที่ต้องตระหนักว่ากระบวนการนี้ไม่ควรเป็นวิธีการรักษาความปลอดภัยเพียงอย่างเดียวที่ใช้ในการป้องกันการเขียนโปรแกรม ควรใช้กลยุทธ์ความปลอดภัยอื่น ๆ เพื่อให้แน่ใจว่าเครือข่ายไม่ได้รับการแทรกร้ายและได้รับอนุญาตให้ทำงานในรหัสที่มีอยู่


