相信看过Andrew那本很经典的《计算机网络》都会记得第N章(N是多少我忘记了……)里面提到的在一幅图像里面隐藏了一本《莎士比亚》全集的数据。
这种代码在网上已经是很常见的了,不过最近因为研究着拆游戏的cg立绘之类的东西就学习了一下BMP图像的格式就想到一个不同隐藏方法。
网上的代码大多都是利用每个像素里面颜色后面几位来存储要隐藏的数据,这样的话在颜色比较单一的情况下对图像的影响是十分明显的。而我的代码中是将24位的图像转换为32位图像后在alpha通道的位置写入数据。
在24位位图中,每个像素用三个字节存储,而32位位图则是4个字节,除了RGB通道外,还有多出来的一个字节是alpha通道。alpha通道是用来存储透明度的信息的,例如有两幅图片,一幅是风景另外一幅是一间房子,房子上有个玻璃窗。按照常理来说,当两幅图像重叠的时候可以透过玻璃看到外面的景物的,而ALPHA混合就是用来实现这个功能。Alpha混合根据图像的alpha通道的值来计算两幅图像重叠后那一点的色彩值。所以修改这个值在位图上是看不出改变的。
还有一点要注意的是位图文件里面每一行像素数据的字节数一定要是4的倍数,所以在位图中每隔位图宽*3个字节数会有几个0字节是用来填充的,所以转换的时候要跳过这几个字节。
而位图文件头和信息头的修改可以直接参考MSDN相关说明。
程序和源码见附件。很久没用ASM写程序,用来练一下手,代码写得有点难看orz
分享到:
相关推荐
将自己的重要文件保存到bmp文件中,避免攻击者获取到意外信息
1.10、BMP位图显示方法 1.11、截取Cstring中某一部分_例 1.12、格式化CString数据 1.13、CString数据写入到文件 1.14、读取数据文件到Cstring对象 1.15、绘图 1.16、使按钮/菜单项失效和生效 1.17、在EDIT控件中追加...
VB采用高密嵌入算法将文件隐藏到BMP文件中,打开BMP图片与信息文件,取得信息文件长度,从bmp中读取位图开始处,向BMP图片中写入信息长度,有无使用密码,保存位图开始处读写指针,写入信息时会用,跳到位图开始处,...
第六章 1、Win9x/ME系统下的磁盘扇区...1、基于24位bmp位图的信息隐藏编程实例 2、基于一阶Bézier曲线的信息隐藏编程实例 第十章 1、文件分割与合并实例——单线程模式 2、文件分割与合并实例——多线程模式
1、隐写:分别完成位图格式图像头文件冗余、图片尾部追加和数据区覆盖三种隐写。 2、分析:分别完成位图格式图像头文件冗余、图片尾部追加和数据区覆盖三种隐写图像与正常图像的分析及隐写数据的提取。
1.10、BMP位图显示方法 1.11、截取Cstring中某一部分_例 1.12、格式化CString数据 1.13、CString数据写入到文件 1.14、读取数据文件到Cstring对象 1.15、绘图 1.16、使按钮/菜单项失效和生效 1.17、在EDIT控件中追加...
0218 如何把ADO中的数据导入到ListBox中 145 0219 使用SQL语句保存数据 146 0220 使用赋值方式保存数据 147 0221 当ADO循环删除数据时需要注意的问题 147 0222 把Excel中的数据保存到数据库中 147 0223 ...
0218 如何把ADO中的数据导入到ListBox中 145 0219 使用SQL语句保存数据 146 0220 使用赋值方式保存数据 147 0221 当ADO循环删除数据时需要注意的问题 147 0222 把Excel中的数据保存到数据库中 147 0223 ...
自己吐血珍藏的,分两部分啊。...在程序中创建ODBC数据源 第五章 VC实现Flash动画播放 VC实现WAV文件播放器 创建CD播放器 利用VC实现OPENGL编程 用playsound播放声音文件 用VC制作简单AVI文件播放器
实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...
实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...
实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...
实例071 在ListView控件中对数据排序或统计 92 实例072 在ListView控件中绘制底纹 93 实例073 在列表视图中拖动视图项 94 实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7...