winhex在ctf中简单的使用

2019-09-29 11:45:51 浏览数 (1)

winhex简介

WinhexX-Ways公司出品的一款 十六进制编辑磁盘编辑软件,其公司网站对其功能介绍如下:

  • 可以对硬盘、软盘、CD-ROM、DVD、ZIP及各种存储卡进行编辑
  • 支持FAT、NTFS、Ext2/3、ReiserFS、Reiser4、UFS、CDFS、UDF等文件系统
  • 可支持重组RAID及动态磁盘
  • 附带数据恢复功能
  • 可以访问物理内存及虚拟内存
  • 内置数据解释器,可以识别解释20种数据类型
  • 可以用数据结构模板查看、编辑结构数据
  • 可以分割与合并文件
  • 可以对文件进行分析与对比
  • 具有灵活的搜索和替换功能
  • 可以对磁盘进行克隆
  • 可对磁盘进行压缩镜像备份,支持对备份文件进行分卷处理
  • 具有编程接口,支持脚本操作
  • 支持256位加密、校验和、CRC32、hash(MD5,SHA-1)计算
  • 支持对磁盘进行数据安全销毁
  • 包含ANSI ASCII, IBM ASCII, EBCDIC, Unicode字符集
  • 支持文件大小超过4GB

从上面官网介绍可以看出:winhex功能非常丰富,也很强大,具体的功能使用介绍这里就不说了,童鞋们有兴趣可以去 安恒萌新粉丝群:928102972群文件下载 《最完整的winhex教程集合 winhex数据恢复入门使用教程》工具(X-WaysWinHex19.6-SR0 x86/x64绿色汉化版)

这里就谈谈winhex在CTF中的简单应用,欢迎各位大佬在评论区发表高端的操作技巧或者经验分享。

十六进制编辑

这个功能也是最常用的,ctf中经常会用来 查看十六进制数据和ascii码修改文件头修改图片IHDR等。

查看十六进制数据和ascii码

把目标文件直接拖进 winhex或者 文件——>打开——>选择要打开的文件

会有些送分题,打开直接 ctrl f,输入搜索 flag,会有意想不到的惊喜

这里也就比直接给flag多了个ascii编码

修改文件头

在CTF经常会遇到 打开文件错误或者 无法打开文件,但是又已知 文件格式后缀的 可以检查一下文件头或者文件尾是否完整。 常见文件文件头文件尾格式总结及各类文件头

例如下面这题:

发现这个gif文件打开错误,发现缺少文件头。 光标点击第一个字符处,点击 编辑——> 粘贴0字节——>在弹窗中输入0字节数的输入框里输入 4——>确定

发现多了4个字节的空位,然后点击十进制值 00,依次在键盘里输入gif的文件头 47494638,然后点击保存

发现图片可以正常打开了

然后用一些看图软件或者gif编辑工具,逐帧查看记录下flag即可 这里推荐一个在线转换编辑gif的工具https://ezgif.com/功能很丰富。

修改图片IHDR

文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。 文件头数据块由13字节组成,它的格式如下表所示。

有时候我们拿到的图片可能是显示不完全的

这里查看到十六进制高度值

这时候就可以去尝试修改IHDR中的宽高值。这里只要修改高度值为 027F

最终效果

修改软件界面名字

这个也可以用很多资源工具实现,比如 reshack,用winhex手动也可以实现 前提: 确定原始的软件被替换的文字,必须是软件存在的,而且替换文字长度不能比被替换文字长,否则程序就可能被破坏了,可能导致程序无法正常运行哦。 这里我拿 godofhack演示,对就是这个屌炸天的工具,黑客神器,谁用谁知道!

这里把 一键锤爆出题人的头改成 安恒大学是最可爱的

首先查询出这些文字的ASCII编码值

代码语言:javascript复制
一     键     锤     爆     出     题     人     的     头
0x4e00;0x952e;0x9524;0x7206;0x51fa;0x9898;0x4eba;0x7684;0x5934;
安     恒     大     学     是     最     可     爱     的
0x5b89;0x6052;0x5927;0x5b66;0x662f;0x6700;0x53ef;0x7231;0x7684;

得到了每一个字的编码,我们来组合一下完整的十六进制存储序列。我们不看0x,每一个编码只剩下4个数字,后面两位放在前面,前面两位放在后面,那么 一键锤爆出题人的头的完整的十六进制序列为 004e2e9524950672fa519898ba4e84763459替换成 895b52602759665b2f660067ef5331728476 最终效果如下

修改其他字符也是一样的原理。

其他

CTF还会遇到一些几个文件合并成一个的,那种可以用 File_Analysis这个工具简单分析一下,然后打开winhex搜索文件头尾讲数据块复制出来另存实现文件分离。linux里可以用binwalk -e 文件名。 还有一些 修改软件界面名字内存编译磁盘编辑数据恢复等更高级的功能就让小伙伴们自行探索吧

文中用到的附件:https://pan.baidu.com/s/1nYwzHlXSYhZGMqN3yLmRmQ

0 人点赞