2016-07-25 110 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導致了一個混亂:(