자기 재배치 란 무엇입니까?
자기 재배치는 매우 적은 수의 컴퓨터 프로그램이 소유 한 재산입니다. 이러한 프로그램은 실행하는 동안 메모리에서 위치를 변경할 수 있습니다. 대부분의 프로그램은 자체 기본 프로그래밍을 거의 또는 전혀 제어 할 수 없습니다. 대신 그것은 고차 프로그램에 의해 처리됩니다. 이러한 시스템은 프로그래밍을 이동하거나 자체 사본을 작성하여 위치를 변경할 수 있습니다. 복사 할 때 실행 위치는 일반적으로 새 프로그램으로 변경되고 이전 코드는 휴면 상태로 유지됩니다.
대부분의 경우, 실행중인 컴퓨터 프로그램은 두 영역에 동시에 있습니다. 하드 드라이브 나 다른 저장 장치와 같은 컴퓨터의 물리적 저장소와 휘발성 메모리에 있습니다. 액세스 시간을 단축하고 작업 속도를 높이기 위해 실행시 프로그램이 휘발성 메모리로 이동됩니다. 이 두 위치에서의 위치는 일반적으로 컴퓨터 운영 체제에 의해 결정됩니다.
이러한 프로그램의 위치를 주소라고합니다. 이 주소는 시스템 및 기타 프로그램에서 필요할 때 프로그램을 빠르게 찾는 데 사용됩니다. 프로그램이 스토리지에서 분리되면 모두 함께있는 것보다 느리게 작동합니다. 따라서 대부분의 시스템은 순차적 주소를 통해 더 큰 프로그램을 저장하려고합니다. 다시 한 번,이 작업을 수행 할 수있는 선택은 일반적으로 운영 체제에 있으며 프로그램은 직접 제어 할 수 없습니다.
프로그램이 자체 재배치를 사용하면 일반적인 프로그램보다 이러한 프로세스를 훨씬 더 많이 제어 할 수 있습니다. 실행되는 주소를 제어 할 수 있습니다. 프로그램을 사용하는 동안 프로그램은 전체 프로그래밍을 현재 위치에서 동일한 컴퓨터의 메모리 내 다른 위치로 이동할 수 있습니다. 일부 프로그램은 두 주소 중 하나만 변경할 수 있지만 다른 프로그램은 둘 다 변경할 수 있습니다.
자체 재배치 자체는 일반적이지 않지만 문제가없는 프로세스입니다. 자기 재배치가 악의적 인 의도와 함께 사용될 때 진정한 위험이 따릅니다. 프로그램이 자신을 제어 할 때 예기치 못한 많은 일을 프로그램이 수행 할 수 있습니다. 컴퓨터 메모리를 방해하기 위해 수많은 물리적 또는 휘발성 복사본을 만들 수 있습니다. 이로 인해 다시 시작될 수 있으며 부팅 공격의 선구자 일 수 있습니다.
또한 프로그램은 제거를 방지하기 위해 자체 백업을 수행 할 수 있습니다. 자체 재배치가있는 프로그램을 실행 한 다음 자체적으로 복사하는 경우 사용하지 않더라도 원래 프로그램은 계속 존재합니다. 프로그램이 악성이고 시스템에서 프로그램을 제거하려고 시도하는 경우 활성 프로그램은 제거하기 전에 원본 코드를 다시 활성화 할 수 있습니다.