여기서는 C로 자체 파괴 코드를 만드는 방법을 살펴보겠습니다. 자체 파괴 코드는 기본적으로 코드를 실행한 다음 실행한 후 실행 파일을 제거하는 것입니다.
이 작업은 매우 간단합니다. 제거하려면 실행 파일 이름을 가져와야 합니다. 명령줄 인수를 사용할 수 있습니다. argv[0]은 실행 가능한 파일 이름을 보유합니다. 그런 다음 remove() 함수를 사용하여 제거할 수 있습니다.
프로그램에서 해당 파일을 제거한 후 한 줄이 인쇄되는 것을 볼 수 있습니다. 이제 현재 파일이 존재하지 않는 동안 다음 줄이 어떻게 실행되는지에 대한 질문이 나옵니다.
실제로 변환된 전체 코드는 실행하기 전에 기본 메모리에 복사됩니다. 실행 중인 파일 내용이 복사됩니다. 자체는 사용되지 않습니다. 따라서 기본 메모리에서 다음 줄이 인쇄됩니다.
예시
#include<stdio.h> int main(int c, char *argv[]) { printf("After completing this, the file will be removed\n"); remove(argv[0]); //remove the argv[0] this is the name of the executable printf("Removed\n"); return 0; }
출력
After completing this, the file will be removed Removed