如用程序建立一个 *.bat 文件,再向里面写入 copy d:\wind\444.exe c:\windows\444.exe ,这样就可以实现程序的自我复制了,同样还可以实现程序的自我删除。
#include"Windows.h"
//以下函数得包含此头文件int
main(){
char
szPath[MAX_PATH]
//保存自身文件名的字符串
char
toPath[MAX_PATH]
=
"C:"
//要复制到的路径字符串
int
i
GetModuleFileNameA(NULL,(LPCH)szPath,225)
//获取自身路径的函数
for
(i
=
strlen(szPath)
i
>
0
i--)
//获取文件名的处理,就我所知,VC没有获取文件名的函数,要自己处理;BCB就有
{
if
(szPath[i]
==
'\\')
//最后一个‘\’后面就是文件名
break
}
strcat(toPath,&szPath[i])
//把文件名连接到toPath,得到“C:\*.exe”
for
(char
ch
=
'c'
ch
<=
'f'
ch++)
//复制处理,从c到f
{
toPath[0]
=
ch
//改盘符
CopyFileA(szPath,toPath,false)
//复制函数,从szPath复制到toPath,强行覆盖原有文件
}
return
0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)