ctf图片隐写之修改图片高度

本文详细介绍如何使用Hexworkshop修改PNG图像的高度,通过调整文件结构中特定位置的数据,实现图像尺寸的自定义更改。文章深入解析PNG文件的IHDR块,展示如何通过修改高度和宽度字段来调整图像大小。

这里的例子是安恒2018年12月赛MISC题目
在这里插入图片描述
这里我们用Hex workshop修改png的高度
先看一下png的文件结构

class Chunk
{
public:
DWORD ChunkLen;//ChunkLen 不算 ChunkLen,Tag,CRC的长度
DWORD Tag;//4byte
DWORD CRC;效验码
};//12个字节+4个字节字符串“IHDR” = 0x10=16

class IHDR : public Chunk
{
public:
DWORD Width;//宽
DWORD Height;//高
BYTE BitDepth;//位深 真彩色图像:8或16
BYTE ColorType;//颜色类型 6:带α通道数据的真彩色图像,8或16
BYTE CompressionMethod;
BYTE FilterMethod;//滤波器方法 固定0
BYTE InterlaceMethod;//隔行扫描方法:0
};
可以发现width,height在偏移0x10的位置上,每个变量占4个字节
在这里插入图片描述那我们把0x16,0x17改成0x12,0x13处的值,就可以长度和宽度相等了。
在这里插入图片描述然后用base32解一下,可能还要在字符串后面加一个=

题目下载:https://download.youkuaiyun.com/download/cosmopolitanme/10869861

### 图像术的实现方式与技术原理 图像术的核心在于将秘密信息藏在数字图像中,而不显著改变图像的视觉效果。以下是其实现方式和技术原理: #### 1. **最低有效位(LSB)术** 最低有效位(Least Significant Bit, LSB)术是最常见的图像方法之一。该方法利用了人眼对低比特位的变化不敏感的特点,通过替换像素值的最低几位来嵌入秘密信息[^1]。 具体过程如下: - 将原始图像分解为像素矩阵。 - 提取秘密信息并将其转换为二进制表示。 - 替换目标像素的最低有效位为秘密信息对应的二进制位。 示例代码展示如何使用 MATLAB 实现 LSB 术: ```matlab function stegoImage = embedMessage(image, message) % Convert the image to binary representation imgBinary = dec2bin(double(image), 8); % Prepare the secret message as a bitstream msgBits = reshape(dec2bin(message(:)', 8)', [], 1)'; % Embed the bits into the least significant positions of the image pixels idx = 1; for i = 1:numel(imgBinary) if idx <= numel(msgBits) imgBinary(i, end) = msgBits(idx); idx = idx + 1; else break; end end % Reconstruct the modified image from its binary form stegoImage = uint8(bin2dec(imgBinary)); end ``` #### 2. **基于冗余信息的技术** 图像本身通常含有大量冗余信息,这些冗余可以通过调整某些参数来进行信息藏。例如,修改颜色分量的小数部分或亮度级别,从而嵌入秘密数据[^3]。 #### 3. **不可感知术** 为了提高全性,现代术更倾向于采用不可感知的方式,即即使借助专业工具也很难发现图像中的异常。这通常涉及复杂的算法设计和统计学分析,以确保嵌入后的图像保持自然特性[^2]。 #### 4. **应用领域扩展** 除了传统的保密通信外,图片还广泛应用于版权保护、数字水印以及全备份等方面。例如,在 Python 中也可以轻松实现类似的功能[^5]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值