------------------------------------------------------------------------------护网期间,闲来没事,遂作此篇
常见图片格式
注意:单纯的修改文件的扩展名文件的本质并没有变。文件格式不同的本质是底层文件编码的区别。
LSB隐写
原理
LSB:Least Significant Bit(最低有效位)
python代码
# -*- coding: UTF-8 -*-
from PIL import Image
def plus(str):
# Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
return str.zfill(8)
def get_key(strr):
# 获取要隐藏的文件内容
tmp = strr
# f = file(tmp,"rb")
f = open(tmp, "rb")
str = ""
s = f.read()
for i in range(len(s)):
# 逐个字节将要隐藏的文件内容转换为二进制,并拼接起来
# 1.先用ord()函数将s的内容逐个转换为ascii码
# 2.使用bin()函数将十进制的ascii码转换为二进制
# 3.由于bin()函数转换二进制后,二进制字符串的前面会有"0b"来表示这个字符串是二进制形式,所以用replace()替换为空
# 4.又由于ascii码转换二进制后是七位,而正常情况下每个字符由8位二进制组成,所以使用自定义函数plus将其填充为8位
tmp = s[i]
# tmp = ord(tmp)
tmp = bin(tmp)
str = str + plus(tmp.replace('0b', '')) # print str
f.closed
return str
def mod(x, y):
return x % y;
# str1为载体图片路径,str2为隐写文件,str3为加密图片保存的路径
def func(str1, str2, str3):
im = Image.open(str1)
# 获取图片的宽和高
width = im.size[0]
print("width:" + str(width) + "\n")
height = im.size[1]
print("height:" + str(height) + "\n")
count = 0
# 获取需要隐藏的信息
key = get_key(str2)
keylen = len(key)
for h in range(0, height):
for w in range(0, width):
pixel = im.getpixel((w, h))
a = pixel[0]
b = pixel[1]
c = pixel[2]
if count == keylen:
break
# 下面的操作是将信息隐藏进去
# 分别将每个像素点的RGB值余2,这样可以去掉最低位的值
# 再从需要隐藏的信息中取出一位,转换为整型
# 两值相加,就把信息隐藏起来了
a = a - mod(a, 2) + int(key[count])
# 上面这句是把信息藏在第八位,下面这个是把信息藏在第七位
#a = a - (a % 4) + (2 * int(key[count]))
count += 1
if count == keylen:
im.putpixel((w, h), (a, b, c))
break
b = b - mod(b, 2) + int(key[count])
count += 1
if count == keylen:
im.putpixel((w, h), (a, b, c))
break
c = c - mod(c, 2) + int(key[count])
count += 1
if count == keylen:
im.putpixel((w, h), (a, b, c))
break
if count % 3 == 0:
im.putpixel((w, h), (a, b, c))
im.save(str3)
# 原图
old = r"./input.png"
# 处理后输出的图片路径
new = r"./output.png"
# 需要隐藏的信息
enc = r"./flag.txt"
func(old, enc, new)
Stegsolve
lsb隐写
提取图片隐写的内容,可以尝试多次修改Oder settings选项
查看图通道
注意png图片可能支持透明度,但是bmp图片可能不支持透明度
可以利用该工具查看不同颜色下的图片。按点击左右键进行变换 --查看通道
同时该工具还支持对两张图片进行合并
十六进制修改
010Editor
使用方法:先将010Editor打开,然后将图片直接拖拽至工具中
EXIF隐写
Exchangeable image file format EXIF的信息包括:相机拍摄时的各种参数,比如:光圈、快门、白平衡、ISO、焦距、日期时间、定位信息等,类似图片属性信息 制作工具:MagicEXIF 元数据编辑器。
Exiftool.exe
使用方法 直接将图片拖拽至exe程序中(exiftool.exe文件不需要双击打开)
在kali中也有同名的工具 使用方法
exiftool xxx.jpg
二维码
参考链接
https://zhuanlan.zhihu.com/p/662378032
图种
制作图种
输入如下命令
copy /b 1.jpeg+1.zip out.jpg
文件分离
foremost
一般是在kali中安装 使用方式 foremost 图片名 文件分离后,会生成一个output文件夹,进入文件夹中可以查看到分离的结果
binwalk
binwalk 文件名 查看文件中的内容 //没有进行分离
binwalk -e 文件名字 --run-as=root 对文件进行分离 分离的结果就在当前目录下
麻子水印
Silenteye
作用 制作麻子水印图片
使用方式
将图片直接拖拽至软件中 Encode 加密 Decode 解密
点击Encode 注意密钥默认为SilentEye
生成的图片
解密同理
盲水印
盲水印是人眼无法识别到的水印
WaterMark-Python
地址:https://github.com/chishaxie/BlindWaterMark
制作盲水印图
运行环境Python3.8.10
参数说明
python bwmforpy3.py encode 无水印的原图 水印图 有盲水印的的图
python bwmforpy3.py encode hui.png wm.png res.png
提取图中的盲水印
python bwmforpy3.py decode 无水印的原图 带水印的合成图 提取出来的水印图
尝试两种提取方式
python bwmforpy3.py decode hui.png res.png ans.png
python bwmforpy3.py decode hui.png res.png ans.png --oldseed
NTFS数据流隐写
参考链接
解密工具
随波逐流
该工具总结了多种加解密和编码的方式,同时也在不断地更新
解密
当不清楚使用的加密算法时,可以利用该工具进行一键解码,同时该工具会用星标记出可能的正确解密结果
图片隐写
文件图片--> 文件图片及隐写 可以判断图片是否被修改过,例如宽高等,同时还会自动还原出原图
CRC爆破原理 :https://blog.csdn.net/qq_47875210/article/details/126171502
outguess隐写
kali 安装方式 apt install outguess
当都没有结果 尝试outguess隐写
使用方式
使用outguess
输入outguess -help即可获得相关命令。
加密:
outguess -k "my secret key" -d hidden.txt demo.jpg out.jpg
加密之后,demo.jpg会覆盖out.jpg,hidden.txt的内容是要隐藏的东西。
解密:
outguess -k "my secret key" -r out.jpg hidden.txt
解密之后,解密内容放在hidden.txt中
视频查看工具
PotPlayerMini64
播放速度
加速 C
减速 X
正常速度 Z窗口尺寸
全屏 Enter
定位上一帧 D
下一帧 F
快进5s ->
快进30s Ctrl+ ->
快进60s Shift + ->
音量
减少/增加音量 向下键 / 向上键
截屏
复制当前原画面 Ctrl+C
特殊后缀文件
.ELF文件
ELF 全称 “Executable and Linkable Format”,即可执行可链接文件格式,目前常见的Linux、 Android可执行文件、共享库(.so)、目标文件( .o)以及Core 文件(吐核)均为此格式。
可以在Linux操作系统下运行 ./文件名
.vmdk文件
使用kali对该文件进行分析分解
7z x flag.vmdk -o./
.bin文件
用工具RouterPassView打开 建议的系统Win10
RouterPassView:路由器的备份文件通常包含了像ISP的用户名重要数据/密码、路由器的登录密码,是无线网络的关键。如果不小心失去了这些密码/钥匙,也可以通过路由器配置的备份文件找回。RouterPassView就是一个找回路由器密码的工具,可以帮助你从路由器中恢复丢失的密码
结语
本人认为MISC方向比较杂,但是比较好入门。望与君共勉!