2010-11-22 9 views
3

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

Antwort

1

Wenn Sie ändern (in Ihrem Fall hinzufügen/Vergrößern) ein Abschnitt (In Ihrem Fall die Code-Sektion, auch bekannt als die sogenannte Text Section, müssen Sie dem Windows-Loader auch mitteilen, dass dieser zusätzliche Teil in den Speicher mapped werden soll, indem Sie den zugehörigen Header (Deskriptor) der Sektion modifizieren. In Ihrem Fall sieht es so aus, als hätten Sie das nicht gemacht und der Loader wird den neuen Code nicht laden (und in Ihrem Fall wird die Anwendung nicht einmal geladen/gestartet). Bilddateien zu modifizieren ist cool, aber es braucht Zeit, um es zu meistern.

Portable Executable File Format – A Reverse Engineer View zeigt, wie es funktioniert.

Verwandte Themen