Skip to main content

รหัสดัดแปลงตนเองคืออะไร?

รหัสการปรับเปลี่ยนตนเองเป็นปรัชญาการเขียนโปรแกรมที่นักพัฒนาสร้างโปรแกรมที่สามารถเปลี่ยนการเข้ารหัสของตัวเองเมื่อดำเนินการในขณะที่นักพัฒนาสามารถป้อนพารามิเตอร์สำหรับรหัสการปรับเปลี่ยนด้วยตนเอง แต่มักจะเปลี่ยนแปลงและปรับตัวเองโดยไม่ต้องมีการโต้ตอบมีปรากฏการณ์คอมพิวเตอร์บางอย่างที่ทำให้การเข้ารหัสเปลี่ยนโดยไม่ได้ตั้งใจ แต่มีเพียงรหัสการปรับเปลี่ยนตนเองโดยเจตนาเท่านั้นที่ถือว่าเป็นการปรับเปลี่ยนตนเองอย่างแท้จริงสิ่งนี้มักใช้โดยนักพัฒนาเพื่อปรับปรุงการเข้ารหัสของพวกเขาเนื่องจากการใช้การเข้ารหัสหลายครั้งสามารถปรับปรุงการออกแบบดั้งเดิมได้อย่างมาก

แง่มุมที่กำหนดที่สุดของรหัสการปรับเปลี่ยนตนเองคือความสามารถในการเปลี่ยนแปลงตัวเองให้ดีขึ้นสิ่งนี้สามารถทำได้เมื่อการเข้ารหัสพร้อมที่จะดำเนินการและเมื่อมีการเตรียมการทำงานรหัสการดำเนินการจะต้องใช้ซอฟต์แวร์สถานะและปัจจัยอื่น ๆ ของคอมพิวเตอร์ในปัจจุบันดังนั้นโดยปกติแล้วจะช่วยให้รหัสรับรู้ข้อผิดพลาดในการประมวลผลเพื่อแก้ไขการประมวลผลของตัวเองได้ดีที่สุด

นักพัฒนาบางครั้งตั้งค่าพารามิเตอร์สำหรับรหัสการปรับเปลี่ยนตนเองเช่นการแก้ไขตัวเองส่วนใหญ่เพื่อประสิทธิภาพ แต่รหัสโดยปกติจะแก้ไขตัวเองโดยไม่ต้องมีปฏิสัมพันธ์หรือแจ้งเตือนนอกเหนือจากการประมวลผลที่เพิ่มขึ้นรหัสจะลบรหัสที่ไม่จำเป็นซึ่งเพิ่งลากลงโปรแกรมและจะลดความยาวเส้นทางในเวลาเดียวกันนักพัฒนาสามารถระบุพื้นที่ที่ไม่สามารถเปลี่ยนแปลงได้เนื่องจากการเปลี่ยนแปลงบางส่วนของรหัสอาจทำให้โปรแกรมทั้งหมดประสบหรือหยุดทำงาน

ปรากฏการณ์เกิดขึ้นเป็นครั้งคราวในซอฟต์แวร์ที่การเข้ารหัสเปลี่ยนแปลงโดยไม่ต้องเขียนนักพัฒนาคำแนะนำใด ๆ สำหรับการทำเช่นนั้นโดยปกติจะเกิดขึ้นกับปัญหาการเน่าของซอฟต์แวร์หรือบัฟเฟอร์และในขณะที่การเข้ารหัสกำลังเปลี่ยนแปลงมันไม่ถือว่าเป็นรหัสการปรับเปลี่ยนตนเองมีสองเหตุผลสำหรับสิ่งนี้มีสิ่งหนึ่งที่การเปลี่ยนแปลงไม่ได้เกิดขึ้นโดยนักพัฒนาโดยเจตนาเหตุผลที่สองคือการเขียนโปรแกรมการปรับเปลี่ยนด้วยตนเองนั้นมีขึ้นเพื่อปรับปรุงการเข้ารหัสในขณะที่ปัญหาบัฟเฟอร์และ ROT ลดการเข้ารหัสลง

มีประโยชน์มากมายในการมีรหัสการปรับเปลี่ยนตนเองเพราะมันจะทำงานเพื่อปรับปรุงตัวเองอย่างต่อเนื่องตามสถานะปัจจุบันของคอมพิวเตอร์และปัจจัยภายในอื่น ๆสิ่งนี้ถูกใช้อย่างเข้มงวดที่สุดโดยนักพัฒนาก่อนที่จะขายหรือแจกจ่ายรหัสด้วยการอนุญาตให้รหัสทำงานอย่างต่อเนื่องช่วยให้การเขียนโปรแกรมแก้ไขตัวเองและข้อผิดพลาดหรือปัญหาใด ๆ ที่เกิดจากนักพัฒนาในระหว่างการสร้างการเข้ารหัสการใช้งานอื่นสำหรับสิ่งนี้คือในคอมพิวเตอร์ที่มีหน่วยความจำ จำกัด เนื่องจากรหัสนี้จะตอบสนองต่อการขาดแคลนหน่วยความจำโดยการลดขนาดของตัวเอง