失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > vi笔记 - 使用vi加xxd完成对二进制文件的内容修改

vi笔记 - 使用vi加xxd完成对二进制文件的内容修改

时间:2024-05-06 22:26:47

相关推荐

vi笔记 - 使用vi加xxd完成对二进制文件的内容修改

VI笔记 - 使用vi加xxd完成对二进制文件的内容修改

背景编译生成a.out的代码修改的a.out目的反汇编获取修改点使用xxd转十六进制显示定位到修改点并且进行修改使用xxd还原二进制并保存执行结果

背景

在一些破解二进制应用的场景中,需要修改二进制执行的机器码,那么就需要搜索并且修改二进制应用的十六进制数据

编译生成a.out的代码

#include <stdio.h>int run() {printf("call run\n");return 1;}int main(void) {if(run()==1) {return 1;}printf("hello\n");return 0;}

修改的a.out

目的

我们做个实验,就是通过修改二进制a.out让程序逻辑跳过run验证,完成打印hello;

反汇编获取修改点

vi a.out

使用xxd转十六进制显示

:%!xxd

该指令在vi执行完后就会将当前的二进制文件全部以16进制的形式进行呈现,如下图:

定位到修改点并且进行修改

e8 cc ff ff ff修改为b8 00 00 00 00

修改后:

使用xxd还原二进制并保存

:%!xxd -r:w

执行结果

如果觉得《vi笔记 - 使用vi加xxd完成对二进制文件的内容修改》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。