我是C#binary的新手,我需要了解一些事情......
阅读exe
将其翻译为字符串(例如10001011)
修改字符串
将其写回新的exe
我听说过string.Join
将二进制文件转换为字符串,但我无法理解。
答案 0 :(得分:5)
要将exe获取为二进制字符串,首先将其读入字节数组:
byte[] fileBytes = File.ReadAllBytes(inputFilename);
然后:
public static string ToBinaryString(byte[] array)
{
var s = new StringBuilder();
foreach (byte b in array)
s.Append(Convert.ToString(b, 2));
return s.ToString();
}
会将它变为二进制字符串。
将二进制字符串转换回字节数组:
public static byte[] FromBinaryString(string s)
{
int count = s.Length / 8;
var b = new byte[count];
for (int i = 0; i < count ; i++)
b[i] = Convert.ToByte(s.Substring(i * 8, 8), 2);
return b;
}
最后,写下文件:
File.WriteAllBytes(path, fileBytes);