在文件中搜索十六进制代码
本文关键字:十六进制 代码 搜索 文件 | 更新日期: 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();