2016-07-25 147 views
-2

我想在.exe的特定地址更改4个字节。我尝试这样做:如何修改c#中的.exe文件?

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十六进制编辑器中手动更改它,但我想要一个程序。

+1

“_Nothing作品迄今_”有没有错误只是没有改变? –

+0

没有得到改变的exe文件 – Anonymous55

+0

@ Anonymous55:你是否积极观察exe地址,以确保他们'你真的没有改变吗?你怎么验证什么都没有改变? – Ingenioushax

回答

0

固定!事实上,事实证明,Windows Defender导致了一个混乱:(