在文件中搜索十六进制代码

本文关键字:十六进制 代码 搜索 文件 | 更新日期: 2023-09-27 18:37:02

我想制作一个程序,允许用户在文件中搜索特定的十六进制代码,输出将是偏移量或找不到。到目前为止,我拥有的代码是:

 namespace search
 {
class Program
{
    static void Main(string[] args)
    {
        System.IO.BinaryWriter bw = new BinaryWriter(File.OpenWrite("C:''1.txt"));
        bw.BaseStream.Position = 3;
        bw.Write((byte)0x01);
        bw.Close();
        Console.WriteLine("Wrote the byte 01 at offset 3!");
    }
}

}

我在网上到处找过,没有找到任何有用的东西,是否可以搜索十六进制代码并有一个带有偏移量的输出?

编辑1:

假设我们有这个文件 1.txt在这个偏移量0x1300我们有这个十六进制代码 0120/0x01 0x20/"0120"(我不知道怎么写)。打开程序后,它会用console.readline询问您要搜索的十六进制代码,输出将0x1300

编辑2:我的问题与此类似VB.Net 获取偏移地址它有一个解决方案,但 vb.net

在文件中搜索十六进制代码

这使用 BinaryReader 来查找您写入文件的字节。

//Write the byte
BinaryWriter bw = new BinaryWriter(File.OpenWrite("1.txt"));
bw.BaseStream.Position = 3;
bw.Write((byte)0x01);
bw.Close();
Console.WriteLine("Wrote the byte 01 at offset 3!");
//Find the byte
BinaryReader br = new BinaryReader(File.OpenRead("1.txt"));
for (int i = 0; i <= br.BaseStream.Length; i++)
{
     if (br.BaseStream.ReadByte() == (byte)0x01)
     {
          Console.WriteLine("Found the byte 01 at offset " + i);
          break;
     }
}
br.Close();