Hallo liebes Forum,
ich habe einen Debugger gefunden ( ollydebugger) mit dem es möglich ist x86 Applikationen zu "zerlegen" um eben die asm- Anweisungen auszulesen
oder gar zu modifizieren.
Das Problem ist folgende:
Ich habe _ gucken wollen was geschieht wenn ich die Datei( die als byte-array vorliegt) entsprechend in C# modifiziere.
Gemeint ist exemplarisch diese Instruktion:
PUSH 00040303
Ist irgendetwas Willkürliches.
Habe _ dann eben folgendes in C# _ geschrieben:
Ich habe angenommen das die Code-Caves im Form von 0x00 im byte-array vorliegen.
Habe dann den Code in ein code-cave Areal injiziert das die Länge vom hex-array hat.
Finde aber( via cntrl+f bei ollydbg) nicht den Befehl PUSH 00040303
Missverstehe ich da irgendwas?
Liebe Grüße.
ich habe einen Debugger gefunden ( ollydebugger) mit dem es möglich ist x86 Applikationen zu "zerlegen" um eben die asm- Anweisungen auszulesen
oder gar zu modifizieren.
Das Problem ist folgende:
Ich habe _ gucken wollen was geschieht wenn ich die Datei( die als byte-array vorliegt) entsprechend in C# modifiziere.
Gemeint ist exemplarisch diese Instruktion:
PUSH 00040303
Ist irgendetwas Willkürliches.
Habe _ dann eben folgendes in C# _ geschrieben:
C#-Quellcode
- static void Main(string[] args)
- {
- byte[] data = File.ReadAllBytes(@"c:\users\dev\desktop\x86.exe");
- bool _lock = false;
- int _count = 0;
- int index = 0;
- byte[] hex = new byte[] { 0x68, 0xC3, 0x40, 0x00, 0x00 };
- int amount = hex.Length;
- for (int i = 0; i < data.Length - 1; i++)
- {
- if (data[i] == 0 && data[i + 1] == 0)
- {
- _lock = true;
- }
- else if(data[i]!= 0 || data[i+1]!=0)
- {
- _lock = false;
- _count = 0;
- }
- if (_lock)
- _count++;
- if(_count > amount)
- {
- index = i - amount;
- Console.WriteLine("Cave_offset:" + index);
- break;
- }
- }
- if (index == 0)
- return;
- for (int i = index; i < hex.Length + index; i++)
- {
- data[i] = hex[i - index];
- }
- File.WriteAllBytes(@"c:\users\dev\desktop\x86modified.exe", data);
- Console.Read();
- }
Ich habe angenommen das die Code-Caves im Form von 0x00 im byte-array vorliegen.
Habe dann den Code in ein code-cave Areal injiziert das die Länge vom hex-array hat.
Finde aber( via cntrl+f bei ollydbg) nicht den Befehl PUSH 00040303
Missverstehe ich da irgendwas?
Liebe Grüße.
Und Gott alleine weiß alles am allerbesten und besser.