程序怎么自我复制?(C语言)

程序怎么自我复制?(C语言),第1张

可以用批处理解决 ,先用程序写下批处理语言 ,最后再运行。

如用程序建立一个 *.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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12024279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存