vim+xxd编辑十六进制的一个大坑:自动添加0x0a

问题描述

今天在做一个ctf题,它给了一个elf文件,我要做的事情是修复这个elf文件,最后执行它,这个可执行文件会计算它自身的md5作为这道题的flag。我把所有需要修复的地方都修复了,程序也能成功运行,但是flag始终就是不对

操作环境

Linux kali 5.10.0-kali7-amd64 #1 SMP Debian 5.10.28-1kali1 (2021-04-12) x86_64 GNU/Linux
vim版本信息如下
在这里插入图片描述

问题排查

出于困惑,我查看了网上的答案,发现他们修改的地方和我一模一样,但是他们的md5和我的不一样。更进一步的,我尝试了在windows下使用ue修改那个elf文件,得到的md5和他们是一样的
至此,可以初步得出结论:linux下使用vim+xxd修改的结果是有问题的
我分别使用wc -c指令查看了正确的和错误的elf文件的大小
在这里插入图片描述
发现错误的文件比正确的多一个字节,至此真相已经明了,vim+xxd编辑在xxd -r的时候会偷偷在文件末尾多加一个字节
后面通过实验验证,如果这个二进制文件的最后一个字节不是0x0a,那么在xxd -r之后,它会在文件末尾加上一个0x0a

这个大坑属事实把我给坑麻了,排查了大半天,很难想象是编辑器出了问题

解决办法

在windows下可以就用ue进行十六进制编辑
在linux下可以用ghex来进行编辑

一点感悟

在日常做ctf题的过程中,要尽可能多地去探索不同工具的作用,用法以及局限性。所幸这次是在练习中被坑了,也算是涨经验了,如果是在比赛中遇到这种问题,最后也许可以想到是编辑器的问题,但这无疑会很花时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/171252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电路笔记】-快速了电阻

电阻类型 文章目录 电阻类型1、概述2、电阻器的组成类型2.1 碳电阻器2.2 薄膜电阻器2.3 绕线电阻器 3、总结 电阻器是所有电子元件中最基本、最常用的元件,人们几乎认为电阻器是理所当然的,但它们在电路中起着至关重要的作用。 1、概述 有许多不同类型的…

SpringCloud之Gateway(统一网关)

文章目录 前言一、搭建网关服务1、导入依赖2、在application.yml中写配置 二、路由断言工厂Route Predicate Factory三、路由过滤器 GatewayFilter案例1给所有进入userservice的请求添加一个请求头总结 四、全局过滤器 GlobalFilter定义全局过滤器,拦截并判断用户身…

深入解析:如何开发抖音票务小程序

当下,开发抖音票务小程序成为了吸引年轻用户群体的一种创新方式。本文将深入解析如何开发抖音票务小程序,探讨关键步骤和技术要点。 1.确定需求和功能 考虑到抖音的用户特点,可以加入与短视频相关的票务功能,如在线购票、观影记录…

IDEA中的Postman?完全免费!

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

Jenkins用126邮箱发邮件为什么发不出去

1、检查 Jenkins Location中的邮件地址配置与发邮件的地址配置是否一致 Manage Jenkins -》 system 2、检查地址和端口号 3、检查邮箱的登录配置是否正确(这个地方的配置方式网上一抓一大把,自己搜一下就好) 4、126邮箱发邮件不需要勾选ssl协…

Blender学习--模型贴图傻瓜级教程

Blender 官方文档 1. Blender快捷键: 快捷键说明 按住鼠标滚轮:移动视角Tab:切换编辑模式和物体模式鼠标右键: 编辑模式: 物体模式: 其他: 2. 下面做一个球体贴一张纹理的操作 2.1 效果如下…

VM虚拟机中Ubuntu14.04安装VM tools后仍不能全屏显示

1、查看Ubuntu所支持的分辨率大小。 在终端处输入: xrandr,回车 2、输入你想设置的分辨率参数。 我设置的为1360x768,大家可以根据自己的具体设备设置。 在终端输入:xrandr -s 1360x768 注意:这里1360后边是字母 x 且…

Selenium-介绍下其他骚操作

Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器(如 Chrome、Opera 和 Microsoft Edge)中的工具,用于帮助开发人员调试和研究网站。 借助 Chrome DevTools,开发人员可以更深入地访问网站&#xf…

交叉编译 和 软硬链接 的初识(面试重点)

目录 交叉编译的初认识Q&A Q1: 编译是什么? Q2: 交叉编译是什么? Q3: 为什么要交叉编译 Q3.1:树莓派相对于C51大得多,可以集成编译器比如gcc,那么树莓派就不需要交叉编译了吗? Q4: 什么是宿主机和…

鸿蒙HarmonyOS 编辑器 下载 安装

好 各位 之前的文章 注册并实名认证华为开发者账号 我们基实名注册了华为的开发者账号 我们可以访问官网 https://developer.harmonyos.com/cn/develop/deveco-studio 在这里 直接就有我们编辑器的下载按钮 我们直接点击立即下载 这里 我们根据自己的系统选择要下载的系统 例…

Unsupervised MVS论文笔记(2019年)

Unsupervised MVS论文笔记(2019年) 摘要1 引言2 相关工作3 实现方法3.1 网络架构3.2 通过光度一致性学习3.3 MVS的鲁棒光度一致性3.4 学习设置和实施的细节3.5.预测每幅图像的深度图 4 实验4.1 在DTU上的结果4.2 消融实验4.3 在ETH3D数据集上的微调4.4 在…

电力感知边缘计算网关产品设计方案-网关软件设计方案

网关采用网络协议和软件技术在通信网络中针对工业协议、互联网通用协议进行分析和记录,提升工业控制系统环境的安全防护能力。A类和B类网关采用容器技术的软件架构,采用C/S架构软件客户端提供应用软件平台,为管理员提供功能丰富的图形管理控制界面。 因A类和B类网关在产品定…

按需引入 ElMessage,没有样式且类型检查失败

文章目录 ElMessage 弹框没有样式问题描述解决方案 ts 类型检查失败问题描述解决办法 eslint 检查失败问题描述解决办法 ElMessage 弹框没有样式 问题描述 Element-plus 在使用 ElMessage 消息弹框的时候没有样式,按照官方的按需加载的方式引入的 import { ElMes…

AIGC ChatGPT4总结Linux Shell命令集合

在Linux中,Shell命令的数量非常庞大,因为Linux提供了各种各样的命令来处理系统任务。这些命令包括GNU核心工具集、系统命令、shell内置命令以及通过安装获得的第三方应用程序命令。以下是一些常见的Linux命令分类及其示例,但请注意,这不是一个全面的列表,因为列出所有命令…

Dempster-Shafer(D-S)证据理论的基本定义和详细分析,优点,缺点,应用!!(系列1)

文章目录 前言一、D-S证据理论的应用:二、D-S证据理论的优点:三、D-S证据理论的缺陷:四、D-S组合规则:总结 前言 Dempster-Shafer(D-S)证据理论是一种不精确推理理论,也称为Dempster/Shafer证据…

【开源】基于Vue+SpringBoot的农家乐订餐系统

项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

spark数据倾斜的解决思路

数据倾斜是:多个分区中,某个分区的数据比其他分区的数据多的多 数据倾斜导致的问题: 导致某个spark任务耗时较长,导致整个任务耗时增加,甚至出现OOM运行速度慢:主要发生在shuffle阶段,同样的k…

大数据数据仓库,Sqoop--学习笔记

数据仓库介绍 1. 数据仓库概念 数据仓库概念创始人在《建立数据仓库》一书中对数据仓库的定义是:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、数据集成的(Integrated)、相对…

一、深入简出串口(USRT)通信——基本概念。

一、前言 串口到底是什么?简单来说一句话就可以解释,串口就是一种通信协议。 看到这里可能大家会觉得你这不是放屁么,说了跟没说一样。所以这里做前言来描述,大家要先对通信协议有一个下意识地认识才能在学习串口的时候不至于迷茫…

【Flutter 常见问题系列 第 1 篇】Text组件 文字的对齐、数字和字母对齐中文

TextStyle中设置height参数即可 对齐的效果 Text的高度 是根据 height 乘于 fontSize 进行计算的、这里指定heiht即可、不指定的会出现 无法对齐的情况,如下: 这种就是无法对齐的情况