winhex在ctf中简单的使用
winhex简介
Winhex
是 X-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编码值
一 键 锤 爆 出 题 人 的 头 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