• Trainer
  • Forums
  • Suche
  • Members
  • Kalender
  • Hilfe
  • Extras
Forum stats
Show team
Neue Beiträge ansehen
Heutige Beiträge ansehen
Home of Gamehacking - Archiv
Login to account Create an account
Login
Benutzername:
Passwort: Passwort vergessen?
 



  Home of Gamehacking - Archiv Coding C, C#, C++, Visual C++
1 2 Weiter »
C++ Code Injection(ohne DLL)

Ansichts-Optionen
C++ Code Injection(ohne DLL)
sungwoo Offline
Junior Member
**
Beiträge: 6
Themen: 2
Registriert seit: Oct 2012
Bewertung: 0
#14
14.10.2012, 19:37 (Dieser Beitrag wurde zuletzt bearbeitet: 14.10.2012, 19:37 von sungwoo.)
Hallo, ich weiss zwar nicht ob das hier noch Interesse an dem Thema besteht aber ich schreib mal was dazu:

1. Mit VirtualAllocEx Speicher im Zielprozess reservieren.
VirtualAllocEx(handle, NULL, SizeOfBytesToReserve, MEM_COMMIT , PAGE_EXECUTE_READWRITE );


2. Mit ReadProcessMemory die Daten sichern welche überschrieben werden.
3. Mit WriteProcessMemory folgendes schreiben:
JMP AdresseVoMReserviertenSpeicherBereich

Hier schreibst du zuerst den Opcode 0xe9
Die Adresse wo hingesprungen werden soll wird wohl kleiner sein als

die Adresse VON der du springst, also rechnest du folgendes:
ZielAdressOpcodes = ZielSprungAdresse - StartSprungAdresse - 5

Ach ich geb mal ein genaueres Beispiel^^:

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0040ff90 mov eax,1234

Kurzer Peseudcode(naja eigentlich ist der gar nicht so Pseudo^^):
unsigend LongJmpOpcode = 0xe9;
unsigned JumpFromThisAddr = 0040ff90;

WriteProcessMemory(handle, (void*)JumpFromThisAddr, &LongJmpOpcode, 1, 0 );
        
unsigned TargerAddrOpcodes = BerechneSprungAdresse(  AdressOfReserveMemoryArea, JumpFromThisAddr);

JumpFromThisAddr++;  // Du willst ja nicht deinen JMP Long Opcode überschreiben

WriteProcessMemory(handle, (void*)JumpFromThisAddr, &LongJmpOpcode, OpcodeLength, 0 );  // OpcodeLength = 4

Hier noch:

JumpFromThisAddr+=4;
unsigned nop = 0x90;  // NOP operation
WriteProcessMemory(handle,(void*)CallFromThisAddr, &nop, 1, 0 );

Damit dein JMP die richtige Opcode Länge bekommt.

Ich hoffe man kann meine Erklärung verstehen.


So würde dann BerechneSprungAdresse intern aussehen:

PHP-Code:
unsigned BerechneSprungAdresse( unsigned AdressOfReserveMemoryArea, unsigned JumpFromThisAddr)
{
return ZielAdressOpcodes = (AdressOfReserveMemoryArea - JumpFromThisAddr)  - 5;
}

Suchen
Antworten
Share Thread:            


Nachrichten in diesem Thema
C++ Code Injection(ohne DLL) - von Colix - 12.07.2012, 22:33
RE: C++ Code Injection(ohne DLL) - von fr33k - 12.07.2012, 23:56
RE: C++ Code Injection(ohne DLL) - von Colix - 13.07.2012, 00:31
RE: C++ Code Injection(ohne DLL) - von iNvIcTUs oRCuS - 13.07.2012, 10:59
RE: C++ Code Injection(ohne DLL) - von Colix - 13.07.2012, 13:31
RE: C++ Code Injection(ohne DLL) - von fr33k - 13.07.2012, 15:31
RE: C++ Code Injection(ohne DLL) - von Colix - 13.07.2012, 15:37
RE: C++ Code Injection(ohne DLL) - von Acubra - 13.07.2012, 16:37
RE: C++ Code Injection(ohne DLL) - von iNvIcTUs oRCuS - 13.07.2012, 17:13
RE: C++ Code Injection(ohne DLL) - von Colix - 13.07.2012, 17:14
RE: C++ Code Injection(ohne DLL) - von Acubra - 13.07.2012, 17:49
RE: C++ Code Injection(ohne DLL) - von Colix - 17.07.2012, 23:35
RE: C++ Code Injection(ohne DLL) - von Acubra - 19.07.2012, 14:42
RE: C++ Code Injection(ohne DLL) - von sungwoo - 14.10.2012, 19:37

  • Druckversion anzeigen
  • Thema abonnieren


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

  • Kontakt
  • Forum team
  • Forum stats
  • Nach oben
 
  • RSS-Synchronisation
  • Lite mode
  • Home of Gamehacking - Archiv
  • Help
 
Forum software by © MyBB - Theme © iAndrew 2014



Linearer Modus
Baumstrukturmodus