buuCTF练习题misc大白记一次vim配合xxd使用

buuCTF的杂项题,要用十六进制修改,winhex和010edit没下载,就想试试可不可以用vim配合xxd来实现,最后成功了,记录一下踩过的坑。

一、用二进制打开文件

bash 复制代码
vim -b dabai.png

二、先进用xxd进入一次hex模式,查看偏移量地址,通过网上找到别人的解题答案发现图片宽和高的偏移量横坐标都为0x00000010,纵坐标偏移量从0到3就是宽,纵坐标偏移量从4到7就是高。

查看十六进制文件

vim 复制代码
:%!xxd

其中"0000 02a7"就是宽,"0000 0100"就是高,这里要改的数据就是高。换算成十进制,可以看到宽是679,高是256。

三、确定了偏移量,还不着急下手,因为现在对十六进制更改会影响到右边的ascii码,这时按uuu撤消,回到二进制文件。取消显示偏移量和ascii码,找到高的位置再进行更改。

进入并定位到高的位置。

vim 复制代码
:%!xxd -p
:/000002a700000100

把高也改成679试试。

四、退出xxd,并保存文件,将文件复制到windows中,打开得到flag。

vim 复制代码
:%!xxd -r -p
:wq

五、总结,此方法为未安装winhex和010edit时用Linux来编辑十六进制文件,也算是用xxd的一次学习。

相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo6 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10157 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao7 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql