[Frage] Gamehacking?! Button

08/18/2014 15:30 BlackFire2k7#1
Hey hey ihrs,

so habe da direkt mal eine Frage, ich bin in dem Thema, ja Programmieren kann ich, ich frage mich wenn ich 1 Programm habe in welchem ich einen Button ansprechen will.

Kann ich die Funktion dafür bzw das Event direkt ansprechen/auslösen über nur die Programm bzw Speicheradresse?

Oder muss ich mit Hooks und Injections arbeiten?

Mfg
08/18/2014 17:18 TeraTroll#2
1.) Welche Sprache?
2.) Bitte ein wenig ausführlicher argumentieren, was überhaubt deine Frage ist.


MfG Joshi
08/18/2014 17:25 .Chakratos#3
Ich glaube er möchte eine ASM Funktion ansprechen ohne eine DLL zu injecten.

Und ja das ist möglich.

LG Chakratos
08/18/2014 17:27 TeraTroll#4
Achso okay das habe ich jetzt nicht rauslesen können hihi
08/18/2014 17:29 .Chakratos#5
Quote:
Originally Posted by TeraTroll View Post
Achso okay das habe ich jetzt nicht rauslesen können hihi
Wenn man länger in diesem Forum aktiv ist lernt man sowas^^

LG Chakratos
08/19/2014 08:16 BlackFire2k7#6
Guten morgen danke erstmal für die Antworten.

Aber um es genauer zu beschreiben. Ich entwickel meine Programme in C# und würde auch gerne dabei bleiben. Es geht darum das wie .Chakratos schon sagte aus einem Externen Programm eine Funktion via ASM ansprechen möchte, diesen Code möchte ich natürlich in meinem C# Programm Implementieren.

Da ich ja nun die Frage beantwortet bekommen habe, dass es auch ohne einen DLL inject geht wäre die nächste das wie.

Greez
BlackFire2k7
08/19/2014 11:10 th0rex#7
Du brauchst die bytes von der asm funktion die du im anderen Prozess ausführen willst. Die packst du in eine byte array. Dann suchst du den Prozess und holst dir mit OpenProcess ein handle für diesen. Danach rufst du VirtualAllocEx auf um Speicher für deine Funktion im Prozess zu reservieren. Das was VirtualAllocEx zurückgibt ist 0 wenn etwas nicht geklappt hat, ansonsten die Adresse des Speichers. Dann schreibst du mit WriteProcessMemory deine Funktion (die du in dem byte array gespeicher hast) in den reservierten Speicher und rufst schließlich CreateRemoteThread auf damit deine Funktion in dem Prozess ausgeführt wird.
08/19/2014 12:43 buFFy!#8
Hmm, schlecht gestellte Frage.
Wenn du nur einen Button ansprechen willst, stellt sich die Frage, welches GUI Framework benutzt wurde.
Wenn du generell einfach nur Funktionen im Remote Prozess aufrufen willst, dann gibt's da mehrere Wege.
Schau dir einfach mal CreateRemoteThread und SetThreadContext an.
08/20/2014 08:23 BlackFire2k7#9
Naja der Plan war ich wollte mich selbst mal an die Bot Programmierung wagen, allerdings hatte ich keine lust auf den Autoit kram und auf Pixel Bots. Das Spiel soll Diablo 3 werden und da ich nicht die ganze zeit das Fenster offen haben möchte (zumindestens Später) wollte ich es direkt richtig machen und dann die Funktionen direkt anfassen ohne irgendwelches Hooking bzw Injecting.

Das Ziel soll zum einstieg erstmal sein, das das Externe Programm die Schwierigkeit einstellt und dann auf den Button "Spiel Starten" klickt bzw die Aktionen ausführt.

Natürlich bin ich für weitere Ideen offen.

Greez
BlackFire2k7
08/20/2014 10:38 buFFy!#10
Ohne injection wird dat nix, CreateRemoteThread ist extrem inperformant für direkte calls. Halt jedes mal 'n TEB weg.