• 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 AutoIt Code Injection + AutoIT

Seiten (3): « Zurück 1 2 3 Weiter »
Ansichts-Optionen
Code Injection + AutoIT
Schnieker Offline
Neuling
**
Beiträge: 39
Themen: 8
Registriert seit: Jul 2012
Bewertung: 0
#11
15.07.2013, 01:05
Ah okay,
also mir ist gerade aufgefallen, dass wenn ich den code per AutoIT injecte, im Disassembler von CE statt nop immer "pop eax" steht. Wenn ich die alten Bytes zurückschreibe steht da "pop ebx".
Per AutoIT schreibe ich immer "90 90" als BYTE. Kann es sein dass ich da irgendwie 2 Bytes oder so benötige?
Suchen
Antworten
Acubra Offline
Trainermaker
****
Beiträge: 904
Themen: 127
Registriert seit: Oct 2010
Bewertung: 6
#12
15.07.2013, 01:15
Hey,
ja. Oder du schreibst 4 Bytes als "word", wobei die ersten beiden dann 90 90 wären und die letzten beiden der Originalcode.
"Auf dieser Welt gibt es mehr Scheisse als auf Festivalklos"
[Bild: hoglogo_smalpxga.jpg]
Homepage Suchen
Antworten
Schnieker Offline
Neuling
**
Beiträge: 39
Themen: 8
Registriert seit: Jul 2012
Bewertung: 0
#13
15.07.2013, 01:51
Hi Acubra,
Das mit den 2 Bytes will irgendwie nicht klappen. Ich habe versucht "90 90" als short zu schreiben -> Das Spiel stürzt ab. Als byte[2] (Die Pointer.au3 kann das interpretieren) -> Das Spiel stürzt ab. Ich mache irgendwas falsch... Hier nochmal das aktuelle Skript:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Pointer.au3>

HotKeySet("{F2}","_Run")

Func _Run()
   $PID = ProcessExists("Cube.exe")
   $Handle = _MemoryOpen($PID)
   $Module = "Cube.exe"
   
   $BaseAdr = _MemoryModuleGetBaseAddress($PID,$Module)
   _MemoryWrite($BaseAdr + 0x2177E3,$Handle,"90 90","byte[2]")
EndFunc

While 1
   Sleep(10000)
WEnd

Suchen
Antworten
iNvIcTUs oRCuS Offline
Super Moderator
****
Beiträge: 2.688
Themen: 529
Registriert seit: Aug 2010
Bewertung: 19
#14
15.07.2013, 02:05
Ich kenn mich zwar mit AutoIt absolut net aus, aber nur mal so interessehalber gefragt... Müssen die Bytes durch ein Leerzeichen getrennt sein ("90 90") oder sollte das eher zusammengeschrieben werden ("9090")?! Huh
Wenn jetzt z.B. die 90 als Dezimal interpretiert wird dann heißt das hexadezimal 0x5A was wiederum der Opcode für "pop edx" ist...

Vielleicht liegt ja irgendwo in dieser Richtung der Fehler...
Irren ist menschlich. Aber wer richtigen Mist bauen will, braucht einen Computer !!!

Traineranfragen per PM werden prinzipiell gelöscht...

[Bild: signatur6akm7.gif]
Suchen
Antworten
Schnieker Offline
Neuling
**
Beiträge: 39
Themen: 8
Registriert seit: Jul 2012
Bewertung: 0
#15
15.07.2013, 02:18
Genau an sowas habe ich auch schon gedacht. Allerdings habe ich schon alle Möglichkeiten durchprobiert und es stürzt immer ab.
Suchen
Antworten
Bluespide Offline
Member
***
Beiträge: 96
Themen: 14
Registriert seit: Jun 2010
Bewertung: 0
#16
15.07.2013, 17:17
Bei mir funktioniert das mit der baseAddress gar nicht. Es kommt immer 0 raus.

PHP-Code:
1
2
3
4
5
6
7
8
9
10
#include <Pointer.au3>

$PID = ProcessExists("Cube.exe")
$Handle = _MemoryOpen($PID)
   
$BaseAdr = _MemoryGetBaseAddress($PID)
MsgBox(0, "", $BaseAdr)

$BaseAdr = _MemoryGetBaseAddress($Handle)
MsgBox(0, "", $BaseAdr)

Suchen
Antworten
Schnieker Offline
Neuling
**
Beiträge: 39
Themen: 8
Registriert seit: Jul 2012
Bewertung: 0
#17
15.07.2013, 17:52 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2013, 17:57 von Schnieker.)
Du musst

Code:
_MemoryModuleGetBaseAddress

verwenden.

Code:
1
2
3
4
5
6
$PID = ProcessExists("Cube.exe")
$Handle = _MemoryOpen($PID)
$Module = "Cube.exe"

$BaseAdr = _MemoryModuleGetBaseAddress($PID,$Module)
_MemoryWrite($BaseAdr + 0x2177E3,$Handle,"90 90","byte")


Funktioniert so ja eigentlich. Nur beim Schreiben der Bytes habe ich Probleme.

Suchen
Antworten
Bluespide Offline
Member
***
Beiträge: 96
Themen: 14
Registriert seit: Jun 2010
Bewertung: 0
#18
15.07.2013, 18:13
Lass dir die Addresse mal ausgeben mit

PHP-Code:
$BaseAdr = _MemoryModuleGetBaseAddress($PID,$Module)
MsgBox(0, "", $BaseAdr) ;<==


Wenn diese nicht 0 ist, kann du dann mal die Funktion _MemoryModuleGetBaseAddress aus deiner Pointer.au3 Posten?

Suchen
Antworten
Schnieker Offline
Neuling
**
Beiträge: 39
Themen: 8
Registriert seit: Jul 2012
Bewertung: 0
#19
15.07.2013, 18:21
[Bild: unbenanntc1ue1.png]
Das wird dann mit dem Offest addiert und es kommt die richtige Adresse raus. Es wird ja in die richtige Adresse geschrieben, allerdings wird nicht das geschrieben was ich will.
Suchen
Antworten
Bluespide Offline
Member
***
Beiträge: 96
Themen: 14
Registriert seit: Jun 2010
Bewertung: 0
#20
15.07.2013, 18:39
So geht es jetzt bei mir.

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Pointer.au3>

HotKeySet("{F2}","_Run")

Func _Run()
   $PID = ProcessExists("Cube.exe")
   $Handle = _MemoryOpen($PID)
   $Module = "Cube.exe"
  
   $BaseAdr = _MemoryModuleGetBaseAddress($PID,$Module)
   _MemoryWrite($BaseAdr + 0x2177E3,$Handle,0x9090,"byte[2]")
EndFunc

While 1
   Sleep(10000)
WEnd

Suchen
Antworten
Share Thread:            
Seiten (3): « Zurück 1 2 3 Weiter »


  • 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