C 中的自毁代码
这里,我们将了解如何在 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
广告