更改c#exe中的十六进制代码

时间:2013-08-31 21:26:53

标签: c# replace hex-editors

如何使用C#更改图像作为十六进制代码http://prntscr.com/1oiw50

byte[] byt = File.ReadAllBytes("D:\\\\a.exe");
string hex = new SoapHexBinary(byt).ToString().Replace("504B0304", "424C0304");
File.WriteAllBytes("D:\\\\b.exe", new SoapHexBinary(hex).Value);

Exe不会这样,但我正在尝试。

1 个答案:

答案 0 :(得分:0)

    byte[] byt = File.ReadAllBytes("D:\\a.exe");
    for (int i = 0; i <= byt.Length - 1; i++)
    {
        if (byt[i] == 80)
        {
            if (byt[i + 1] == 75)
            {
                if (byt[i + 2] == 3)
                {
                    if (byt[i + 3] == 4)
                    {
                        byt[i] = 66;
                        byt[i + 1] = 76;
                        byt[i + 2] = 3;
                        byt[i + 3] = 4;
                    }
                }


            }
        }
    }
    File.WriteAllBytes("D:\\b.exe", byt);

你有这个代码中的错误。我转向十进制十六进制代码,相应改变。