Reputation: 97
I'm new to C# binary and I need to know something...
Read the exe
Translate it to string (eg. 10001011)
Modify the string
write it back to a new exe
I heard something about string.Join
to convert binary to the string, but I couldn't understand very well.
Upvotes: 0
Views: 2417
Reputation: 180858
To get the exe to a binary string, first read it into a byte array:
byte[] fileBytes = File.ReadAllBytes(inputFilename);
Then:
public static string ToBinaryString(byte[] array)
{
var s = new StringBuilder();
foreach (byte b in array)
s.Append(Convert.ToString(b, 2));
return s.ToString();
}
will get it to a binary string.
To turn your binary string back into a byte array:
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;
}
Finally, write the file:
File.WriteAllBytes(path, fileBytes);
Upvotes: 5