Ich versuche, eine JMP-Anweisung am Ende des Textabschnitts in der calc.exe für Windows XP hinzuzufügen, und ich habe es hinzugefügt und den Einstiegspunkt geändert, um von dieser Adresse zu starten und die virtuelle Größe des Textes geändert Abschnitt, so dass es die hinzugefügte Anweisung verarbeiten kann, aber das Ergebnis exe hat nicht funktioniert. also vermisse ich hier etwas? hier ist der C# -Code schrieb ich habe diese Dinge zu handhaben:Wie ändert man den Einstiegspunkt der EXE-Datei?
public static void inject()
{
StreamReader sr = new StreamReader("C:\\calc.EXE");
BinaryReader br = new BinaryReader(sr.BaseStream);
List<byte> bytesList = new List<byte>();
for (long i = 0; i < br.BaseStream.Length; i++)
{
bytesList.Add(br.ReadByte());
}
{
// updating the entry point
bytesList[280] = 176;
bytesList[281] = 42;
bytesList[282] = 1;
bytesList[283] = 0;
}
{
bytesList[496] = 192;
}
{
// second jmp
bytesList.RemoveRange(76464, 5);
byte[] injectedBytes = { 233, 255, 255, 249, 192 };
bytesList.InsertRange(76464, injectedBytes);
}
StreamWriter sw = new StreamWriter("C:\\calc2.EXE");
BinaryWriter bw = new BinaryWriter(sw.BaseStream);
bw.Write(bytesList.ToArray());
bw.Close();
}
und Dank im Voraus