我想在.exe的特定地址更改4个字节。我试过这个:
string path = @"C:\test\mod.exe";
if (File.Exists(path))
{
using (BinaryWriter stream = new BinaryWriter(File.Open(path, FileMode.Open)))
{
stream.BaseStream.Position = 0x0032D837;
stream.Write(StringToByteArray("00050000"), 0, 4);
}
}
StringToByteArray()是这样的:
public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
它找到exe但没有任何改变,所以最正确的方法是什么?另外我想补充一点,我可以在HxD十六进制编辑器中手动更改它,但我想要一个程序。
答案 0 :(得分:0)
固定!事实证明,Windows后卫造成了一团糟:(