gpt4 book ai didi

c# - 如何制作固定的十六进制编辑器?

转载 作者:行者123 更新时间:2023-11-30 04:39:08 26 4
gpt4 key购买 nike

所以。假设我要制作一个十六进制编辑器来编辑...哦...假设一个 .DLL 文件。如何使用 C# 或 C++ 编辑 .DLL 文件的十六进制?而对于“固定部分”,我想做到这样我就可以从程序中浏览特定的.DLL,在编程文件上有一些预编码的按钮,当按下按钮时,它会自动执行请求的操作,这意味着该按钮已预先编码以了解要在 .DLL 中查找什么以及将其更改为什么。谁能帮我开始做这件事?

另外,最好是C#。谢谢!

最佳答案

基础非常简单。

DLL 或任何文件都是字节流。

基本文件操作允许您读取和写入文件的任意部分。技术术语基本上是“随机访问文件操作”。

在 C 中,基本操作是 read()、write() 和 lseek()。

read 允许您将字节流读入缓冲区,write 允许您将字节缓冲区写入文件,lseek 允许您定位文件中的任何位置。

例子:

int fd = open("test.dat", O_RDWR);
off_t offset = lseek(fd, 200, SEEK_SET);
if (off_t == -1) {
printf("Boom!\n");
exit(1);
}
char buf[1024];
ssize_t bytes_read = read(fd, buf, 1024);
offset = lseek(fd, 100, SEEK_SET);
ssize_t bytes_written = write(fd, buf, 1024);
flush(fd);
close(fd);

这从文件的第 200 个字节开始读取 1024 个字节,然后在第 100 个字节处将其写回文件。

一旦您可以更改文件中的随机字节,接下来就是选择要更改的字节、如何更改它们以及执行适当的读取/查找/写入以进行更改的问题。

请注意,这些是最原始的 I/O 操作,根据您的语言等,您可能可以使用更好的操作。但它们都是基于这些原语的。

解释文件的字节,显示它们等等。这是给读者的练习。但这些基本的 I/O 功能为您提供了更改文件的基础知识。

关于c# - 如何制作固定的十六进制编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2557598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com