几种常见的文件伪装方法:
- 扩展名伪装
- unicode字符伪装
- 压缩包伪装
- 隐写术
方法仅限于学习目的,不用于任何恶意或非法用途。
————
一、扩展名伪装:假装是另一种类型的文件
修改文件的扩展名,使得文件看起来像其他类型的文件,实现伪装。
例子:
将一个MP3文件,通过修改后缀名,伪装成文本文件。
双击文件,系统识别到后缀名是.txt,文件将会被以文本的形式被打开。打开之后,显然是乱码的字符:
而此时,若已知文件原先是MP3文件,将其以原格式打开,仍可以正常使用。
二、 unicode 字符伪装:咋没人发现我变了
插入unicode字符,混淆文件名。
例子: RTL Override
仅仅是后缀名改变了,文件类型没有变,实际还是能正常打开的图片。
三、压缩包伪装:变成压缩包藏进其他文件
例子:图种,将文件打包藏进图片里
copy /b 图片路径+压缩包路径 压缩后的图片路径
路径可以拖进去🤭
win+r, cmd
copy /b D:\test1\test.png+D:\test1\文件.zip D:\test1\new.png
生成的new.png打开仍是正常图片,看起来和原先的test.png一样,只是两个图片的大小差距很大。直接用压缩包软件打开这个图片。
图种拆分:解压得到压缩包内的文件,用画图软件打开,另存为,就可以单独提取出图片。
四、隐写术:藏起来了,看不见我看不见我
文件嵌入
import osdef embed_data(cover_file, secret_file, output_file):# 读取封面文件with open(cover_file, 'rb') as file:data = file.read()# 读取隐藏信息文件with open(secret_file, 'rb') as file:secret = file.read()# 将隐藏信息附加到封面文件数据后data += secret# 将新的数据写入输出文件with open(output_file, 'wb') as file:file.write(data)def extract_data(embedded_file, secret_file, secret_length):# 读取嵌入的数据文件with open(embedded_file, 'rb') as file:data = file.read()# 提取隐藏信息的部分extracted_secret = data[-secret_length:] # 提取最后部分的数据# 将提取的隐藏信息写入指定的文件with open(secret_file, 'wb') as file:file.write(extracted_secret)# 使用示例
cover_file = '老残游记.jpg' # 封面
secret_file = '老残游记.txt' # 要嵌入的隐藏信息文本
output_file = '老残游记1.jpg' # 输出的伪装文件# 嵌入数据
embed_data(cover_file, secret_file, output_file)# 获取嵌入数据的长度
with open(secret_file, 'rb') as file:secret_length = len(file.read())# 提取数据
extract_data(output_file, 'extracted.txt', secret_length)