C# 如何制作固定十六进制编辑器?
所以。假设我要制作一个十六进制编辑器来编辑。。。哦比如说一个.DLL文件。如何使用C++或C++编辑.dll文件的十六进制?对于“固定部分”,我想使其能够从程序中浏览特定的.DLL,在编程文件中有一些预编码的按钮,当按下按钮时,它将自动执行请求的操作,这意味着该按钮已预编码,以便知道在.DLL中查找什么以及将其更改为什么。有人能帮我开始吗C# 如何制作固定十六进制编辑器?,c#,c++,dll,hex,C#,C++,Dll,Hex,所以。假设我要制作一个十六进制编辑器来编辑。。。哦比如说一个.DLL文件。如何使用C++或C++编辑.dll文件的十六进制?对于“固定部分”,我想使其能够从程序中浏览特定的.DLL,在编程文件中有一些预编码的按钮,当按下按钮时,它将自动执行请求的操作,这意味着该按钮已预编码,以便知道在.DLL中查找什么以及将其更改为什么。有人能帮我开始吗 另外,最好是C。谢谢大家! 如果要加载十六进制编辑框,可以使用以下方法: 编辑文件的“十六进制”只不过是更改其中的字节而已。预编程更改的部分将是更通用的类型。
另外,最好是C。谢谢大家! 如果要加载十六进制编辑框,可以使用以下方法:
编辑文件的“十六进制”只不过是更改其中的字节而已。预编程更改的部分将是更通用的类型。但是对于实际查看、查找并拥有更改任何您想要的内容的选项,Be.HexEditor是一个不错的选择。我在一年多前使用过它,我希望它有一些新功能,可以让你的生活更轻松。基本原理非常简单 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操作,但它们都基于这些基本操作
解释文件的字节,显示它们等等。这是读者的练习。但这些基本的I/O功能为您提供了更改文件的基础。到目前为止您的方法是什么?还没有方法,因为目前我的时间有点短,但春假即将到来,我会感到无聊。该程序看起来不错,但我不知道如何将其用于我的想法:\它就像一个插件,为您提供一个小部件,它是一个十六进制编辑器框。就像我说的,编辑一个文件的“十六进制”只不过是改变它的字节而已。如果你只想这样做,而没有一个真正的编辑器(在谷歌中查找“十六进制编辑器”,看看你得到了什么),你将需要像C#类、文件流、BinaryReader和BinaryWriter这样的东西。这就是我想要的。从程序中调用函数来更改文件的字节。您知道如何在C#中使用OpenFileDialog吗?是的,我知道如何使用它,但这有什么帮助?