การย้ายตัวเองคืออะไร?

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

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

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

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

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

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