ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:194.44KB ,
资源ID:9792576      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9792576.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(debug在信息隐藏中简单的应用.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

debug在信息隐藏中简单的应用.docx

1、debug在信息隐藏中简单的应用Microsoft PC操作系统工具Debug 在信息隐藏中的应用目录1、debug 和位图文件的基础1.1 debug简单介绍.31.2 位图文件格式简单介绍.32、使用debug编写信息隐藏算法以及提取算法2.1 隐藏隐藏算法.82.2 提取算法.92.3 生成程序文件.113、总结3.1 总结.11一debug和位图文件基础1.1 debug简单介绍这里说的debug是windows 从dos时代就带有的一个工具。它是一个16位的调试器,同时也是一个简单的汇编器,和16进制编辑器。虽然很小巧但是功能强大。这里用它和bmp格式文件来进行简单的信息隐藏。关于d

2、ebug的指令这里就不详解了,用到时会说明用法的。使用debug的信息隐藏缺点是编程复杂,对个人的汇编编程能力要求极高。造成上述缺点的原因是在debug中写算法使用的是汇编语言,汇编语言对于算法的表达由于个人汇编编程能力而具有一定的局限性。优点是在windows甚至是dos下随时随地都可以做,即使没有安装任何的编程软件,因为debug是windows自带的1.2位图文件格式简单介绍这里只说明带有调色板的这种bmp文件格式。位图文件包含如下部分:位图文件头位图信息头色彩表(又称调色板)图像数据阵列字节位图文件头:开头的两个字节是用来标示位图(表明这个文件是一个位图)一般情况下位“BM”,下面用d

3、ebug载入位图文件验证一下:左图是源图像文件,第一行指令是 将文件路径导入debug,第二行加载文件到默认地址(100)处,第三行查看100处的值右边对应的是ascii 。 可以看到前连个字母位”BM“。接下来的一些字节是 位图文件的各种参数:文件的大小标志位,图像数据偏移。位图的文件头共占有文件的前十四个字节。信息头:这里的数据主要是和位图的像素参数色彩参数相关的,这里就不一一的列出了。这部分共占有40个字节调色板:256色位图的调色板共有256中颜色,这个是显而易见的,调色板就像一个数组数组每个元素的大小位4byte,设置调色板的目的是为了对位文件进行一定的压缩,有的图像需要的颜色种类可

4、能不要那么多,而如果每中颜色用一个字节的话,每个像素有三基色组成颜色就要用三个字节。带有调色板的位图文件中的图像数据,只要使用对应的位图文件在调色板中对应颜色的索引号,每个像素只要一个字节即可。调色板的组成结构位(蓝,绿,红,ALpha),每一种颜色占有一个字节。调色板的数据在文件中依次排开。256种颜色一共用去256*4=1024=1k个字节。图像数据阵列(这里是用于显示的图像数据):正如前边所说,带有调色板位的文件的图像数据种类每个像素占有一个字节,反之则每个占有四个字节。位图图像的格式就简单的介绍完了。为了验证上述的格式,我用16位的汇编编写了一个简单的位图文件显示软件,这个软件可以在d

5、os和xp(vista和win7子系统对于视频16位中断支持不好,容易产生蓝屏死机现象)下显示128*128位的256色的文件源代码如下:这里没有使用文图文件的调色板,使用的是系统默认的调色板。;作者:仲崇阳;版权所有,如有引用,请联系cutaLkgmaiL.comdata segment;huoquwenjiandaxiao;文件长度放在dx:axLujin db d:a.bmpshuju db 10 dup(0)tishi db PLEASE ENTER THE PATH,0DH,0AH,$LUJINJIN DB 100 DUP(0)data endsbmp segmentbuff db

6、64000 dup(0)shj db 10 dup(0)bmp endscode segmentassume cs:code , ds:datastart:mov ax,datamov ds,axLEA DX,TISHIMOV AH,09INT 21H;BELLOW ENTER THE PATH;MOV BX,0SHURU:MOV AH,1INT 21HCMP AL,0DHJE SHURUENDMOV LUJINJINBX,ALINC BXJMP SHURUSHURUEND:;ABOVE ENTER THE PATH;0A 0D;MOV DL,0AHMOV AH,2INT 21HMOV DL,

7、0DHMOV AH,2INT 21H;0A 0D;mov dx,offset Lujinmov ax,3d00h int 21hmov bx,ax mov cx,0 mov dx,0 mov ax,4202h int 21h push ax;xianshihuancuntianhcongmov si,0xianshi:mov dx,0mov bx,10div bxpush axadd dL,48mov shujusi,dLinc sipop axcmp ax,0ja xianshi;xianshidec siLooper:mov dL,shujusimov ah,2int 21hdec sic

8、mp si,-1jne Looper;Lea dx,Lujinmov ah,3dhmov aL,02hxor cx,cxint 21hmov bx,axpop axmov cx,axpush axmov ax,bmpmov ES,axMOV DS,AXLea dx,buffmov ah,3fhmov aL,0hint 21h;0A 0D;MOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21H;0A 0D;BELLOW READING X,Y ;MOV AX,BMPMOV DS,AXMOV AL,ES:BUFF12HMOV DL,ALMOV AH,2

9、INT 21H;ABOVE READING X,Y ;mov ah,1int 21hmov ah,4chint 21hcode endsend start这个代码就不做解释了,两年前写的,注释使用的是汉语拼音加英语,很容易看懂的代码编译后可以运行的,主要原理是读取图像像素阵列数据然后使用dos中断查找调色板,然后显示。运行截图如下:在dos全屏模式下不能使用截图软件,只能拍照由上面的位图的图像格式可以知道对于空域中能隐藏信息的地方主要在图像阵列数据曲的每个字节最底几位,和调色版中的ALpha 位。下面用debug将信息隐藏在位图文件中,源文件使用的是第一页的128*128的256色的位图文件。

10、首先 使用windows 运行如下指令:cmddebug。然后使用debug的n指令和L指令将文件载入到内存,如下图。其中 指令 r 是查看寄存器的值,其中寄存器cx保存载入文件的16进制大小(由图可知g.bmp大小为4436h,十进制为17462,在资源管理器下查看文件大小如图)2、使用debug编写信息隐藏算法以及提取算法2.1隐藏隐藏算法由位图文件格式可知 带有256色调色板的位图的调色板开始于文件偏移54(16进制为36h)处,这里对调色板进行最底有效位的信息隐藏是因为带调色板的位图图像像素阵列数据不是颜色数据而是调色板的一个索引,要是对其进行改变则不能预测颜色变化,即使索引号改变1

11、调板中对于的颜色也有可能由白变黑,这样就起不到隐藏作用了。下面将 字符 “a”隐藏在图像中的算法以及详细的deubg操作。首先将文件载入到debug中,然后 使用a指令输入 隐藏算法的汇编代码,输入完成后使用 指令 g=4600 4603 执行,然后用p指令单步执行完Loop汇编指令,执行到mov ah,ah(这几行代码是标志代码,目的单步时不至于执行到代码之外)后,执行完所有代码后使用 n d:gg.bmp ,rcx 4436,w 100 指令图像数据写入 gg.bmp文件,这个文件就是隐藏了字符“a”的文件.如图下面通过 c指令来比较 这两个文件首先用前面的方法,将 g.bmp文件加载到

12、地址 100h处,将gg.bmp文件加载到5000处,然后使用指令 c 100,140 5000(解释:c内存是比较指令100为第一块要比较内存的起始地址,140为结束地址 5000为下一块内存的起始地址地址,因为刚才的汇编代码只对 136h到13dh 数据改变,所以 使用100到140,这样做既包含了136h到13dh 而且输入起来要方便,没什么特殊原因)如图:根据指令执行结果 可以得到二进制 1100001b,十六进制为 61h 表示为字符既是“a”。2.2 提取算法使用n d:gg.bmp 和 L100 指令将隐藏了数据的 gg.bmp文件 加载到 地址为100h处然后使用a 5000

13、指令输入提取算法,通过g=5000 5003 和p指令 执行完代码,然后使用n d:src.txt和 rcx 1,w 100 指令将提取出来的数据写入到 src.txt中,打开src.txt可以看见 字符 “a”。算法以及指令执行截图:如上图可以看到 p指令执行int21h中断后输出完我们隐藏的数据“a”,在算法中将提取出来的信息写入地址位100h处,如图:然后将 提取出来的信息写入 SRC.TXT 文件,如图打开SRC.TXT如图:2.3 生成程序文件使用debug可以生成数据隐藏和数据提取程序的,使用指令 n d: ,rcx rbx 和w5000来生成数据隐藏程序,数据提取程序的生成和这个

14、类似 n d: ,rcx rbx 和w5000。(其中rcx 执行后填写最后一条汇编指令偏移地址减去5000,rbx 执行后填写0).但是生成的程序不可以直接使用的,做隐藏使用时先将 128*128 256色 的位图加载至100h处,然后将程序加载到5000h处,使g=5000 5003,单步执行完即可,做提取使用时和这个类似,此时加载的图像应为隐藏过信息的载体图像。这里就不截图了。三、总结使用debug这个工具来做信息隐藏的想法是无意间想到的,当时不知道16位的debug程序能不能胜任这项任务,于是就试着写指令和代码,在最后遇到一个小问题,就是当我把提取出来的数据写入src.txt文件的时候

15、,出现了错误,我的原指令如下:-n d:src.txt-rcx-:1-w 100但是显示的为Writing 6100001 bytes这明显是不对的,本意是将 地址100h处的 字符“a“写入到文件,但是实际写入6兆的字符,经过反复试验发现 w指令 是将 bx乘以ffff加上 cx 所得到的数字 ,按照这个数字来写文件。Debug是个很强大的工具,如果不怕麻烦的话,可以用它写出复杂的算法。本文只是简单的介绍了最低有效位隐藏算法。时间有限,只隐藏了一个字符的数据。隐藏更多的数据也是可以的,但那样会增加错误率,浪费不必要的时间。至于debug的应用只是个人爱好而已,当然可以使用matlab 但是相比较而言 debug小巧精湛,而且从dos 到 Windows 都自带debug。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1