|
You last visited: Today at 14:58
Advertisement
Externer Aufruf von Prozessfunktionen
Discussion on Externer Aufruf von Prozessfunktionen within the General Coding forum part of the Coders Den category.
08/07/2010, 11:36
|
#1
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Externer Aufruf von Prozessfunktionen
Hallo zusammen,
ich bräuchte mal eure Hilfe:
Ich möchte gerne ein Programm schreiben, mit dem ich eine Funktion in einem fremden Prozess (In diesem Fall ist das eine Funktion mit 3 Eingabeparametern, die einen Mapwechsel in einem Spiel frühzeitig ermöglicht) zu einem beliebigen Zeitpunkt per Knopfdruck auslösen kann. Ich habe bereits einige Tutorials zum Thema DLL-Injektion gelesen, mit der das wohl möglich sein soll. Allerdings habe ich nur Tutorials gefunden, die in dem fremden Prozess eine msg-box auslösen. Das ist natürlich auch schön aber hilft mir nicht wirklich weiter
Gibt es eine Möglichkeit das o.g. möglichts einfach zu bewergstelligen?
Noch etwas am Rande:
-Meine bevorzugte Programmiersprache ist VB.net
-Bitte verwendet in euren Antworten möglichts viele Code Beispiele, da ich mir die Funktion daran am ehesten erklären kann
Ich freue mich über jede Hilfe!
|
|
|
08/07/2010, 11:51
|
#2
|
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
|
Ich kenn mich damit zwar nicht wirklich aus aber soviel weiß ich: Du musst erstmal mit OllyDbg die Funktion zum Mapwechsel finden und dann mit Dll-Injektion den benötigten Assembler Code injizieren (korrigiert mich wenn ich falsch liege).
Das Thema interessiert mich nämlich auch brennend aber soviel wie ich gehört habe ist das nichts für Anfänger sondern schon eher für Fortgeschrittene.
|
|
|
08/07/2010, 13:11
|
#3
|
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
|
Du kannst das mit CreateRemoteThread machen.
Eine Dll injection kannst aber vergessen weill du VB.net benutzt.
|
|
|
08/07/2010, 16:32
|
#4
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Quote:
Originally Posted by Akorn
Eine Dll injection kannst aber vergessen weill du VB.net benutzt.
|
Das ist mir schon klar. Ich werde mich natürlich auf die notwendigen Sprachen einstellen.
|
|
|
08/07/2010, 19:04
|
#5
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Wie ich eine DLL in einen Prozess bekomme habe ich jetzt anhand mehrer Tutorials verstanden.
Allerdings weiß ich immernoch nicht was in der dll stehen soll. Es soll schließlich kein Biep oder eine msg box kommen sondern es soll die Funktion GoZone(int,int,int) (den Namen dieser Funktion kenn ich bereits) aus dem injizierten Prozess ausgeführt werden.
Der Inhalt einer solchen dll würde mich schon enorm weiterbringen.
|
|
|
08/07/2010, 19:06
|
#6
|
elite*gold: 1
Join Date: Jun 2009
Posts: 1,142
Received Thanks: 158
|
|
|
|
08/07/2010, 19:09
|
#7
|
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
Received Thanks: 1,609
|
Du brauchst die Addresse der GoZone() funktion, die du aufrufen möchtest.
Das ganze Kapitel nennt sich übrigens "Funktionszeiger" , was du dafür kennen musst. (Neben der normalen MsgBox DLL Injektion )
|
|
|
08/07/2010, 23:11
|
#8
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Quote:
Originally Posted by Unkn0wn0x
|
Da habe ich die Seite doch tatsächlich in einer deutschen Kurzfassung gefunden:
Stück für Stück komm ich voran, danke euch 2
|
|
|
08/08/2010, 14:27
|
#9
|
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
|
lol.
Aber jetzt mal ernst: - die dll solltest du in c++ schreiben
- Die adresse kannst du mit einer winapi funktion (getprocadress glaub ich) herausfinden
- gozone ist eine memberfunktion! also thiscall.
Ps: wenn ich zuhause bin kann ich vieleicht auch ein codebeispiel posten.
|
|
|
08/08/2010, 19:35
|
#10
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Quote:
Originally Posted by nkkk
Ps: wenn ich zuhause bin kann ich vieleicht auch ein codebeispiel posten.
|
Das wäre super nett
|
|
|
08/08/2010, 19:55
|
#11
|
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
|
Schritt 1: Verabschiede dich von VB und .NET.
Ansonsten, wenn du nur 'ne Funktion callen willst, erstelle 'nen Thread im Spiel (CreateRemoteThread) und rufe deine Funktion per inline ASM oder Funktionszeiger auf.
|
|
|
08/08/2010, 20:18
|
#12
|
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
|
Quote:
Originally Posted by SmackJew
Schritt 1: Verabschiede dich von VB und .NET.
Ansonsten, wenn du nur 'ne Funktion callen willst, erstelle 'nen Thread im Spiel (CreateRemoteThread) und rufe deine Funktion per inline ASM oder Funktionszeiger auf.
|
Ich hab es mit inline asm gemacht.
|
|
|
08/08/2010, 22:00
|
#13
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Einen Injector habe ich soeben mit Hilfe eines Tutorials in VB.net 2008 geschrieben. Ob der auch wirklich was taugt kann ich leider nicht sagen, denn es fehlt mir noch die .dll und da habe ich leider keine Ahnung was da jetzt drin stehen soll. Ich werde die Tage noch ein bisschen danach googlen.
Für Tipps bin ich trotzdem immernoch offen
Edit: Der Injektor funktioniert einwandfrei
|
|
|
08/10/2010, 16:07
|
#14
|
elite*gold: 0
Join Date: Jan 2010
Posts: 399
Received Thanks: 272
|
Ich bin jetzt soweit, dass ich meine eigne kleine .dll geschrieben habe. Injekten lässt die sich auch so weit ohne Probleme, allerdings macht sie nicht das, was sie machen soll.
Code:
MessageBox(NULL, TEXT("Erfolgreich injectet"), NULL, MB_OK);
typedef UINT (CALLBACK* LPFNDLLFUNC1)(UINT, UINT, UINT);
HINSTANCE hDLL; // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer
int uParam1 = 2, uParam2 = 0, uParam3 = 149, uReturnVal;
hDLL = LoadLibrary(TEXT("Engine.dll"));
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"GoZone");
MessageBox(NULL, TEXT("Startet..."), NULL, MB_OK);
lpfnDllFunc1(uParam1, uParam2, uParam3);
MessageBox(NULL, TEXT("Ausgeführt"), NULL, MB_OK);
Die erste msg box erscheint schonmal. Die 2. auch. Dann sollte der ( zumindest ist das in der Beschreibung von dem Code, von der Seite, wo ich den her habe so beschrieben ) die Funktion, die ich zuvor bei GetProcAddress eingegeben habe ausführen. Leider passiert nichts und auch die letzte msg box kommt nicht.
was könnte ich falsch gemacht haben? Habe ich die richtige .dll geladen, ist der Funktionsname "GoZone" überhaupt richtig? Mit ollydbg habe ich die Funktion in der Eninge.dll gefunden, allerdings waren vor und hinter der Funktion noch Sonderzeichen angegeben ( Hier [] ) "[]GoZone[]".
|
|
|
08/10/2010, 17:12
|
#15
|
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
|
Quote:
Originally Posted by Nulpe123
Ich bin jetzt soweit, dass ich meine eigne kleine .dll geschrieben habe. Injekten lässt die sich auch so weit ohne Probleme, allerdings macht sie nicht das, was sie machen soll.
Code:
MessageBox(NULL, TEXT("Erfolgreich injectet"), NULL, MB_OK);
typedef UINT (CALLBACK* LPFNDLLFUNC1)(UINT, UINT, UINT);
HINSTANCE hDLL; // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer
int uParam1 = 2, uParam2 = 0, uParam3 = 149, uReturnVal;
hDLL = LoadLibrary(TEXT("Engine.dll"));
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"GoZone");
MessageBox(NULL, TEXT("Startet..."), NULL, MB_OK);
lpfnDllFunc1(uParam1, uParam2, uParam3);
MessageBox(NULL, TEXT("Ausgeführt"), NULL, MB_OK);
ist der Funktionsname "GoZone" überhaupt richtig?
|
nein
|
|
|
|
|
Similar Threads
|
Metin2 pserver externer MySQL Server
08/02/2010 - Metin2 Private Server - 14 Replies
Guten tag ich bin gerade dabei einen PServer mit nem Kumpel einzurichten und wir haben noch eine MySQL Datenbank über.
Jetzt würde ich gerne wissen wie man den Server auf diese Datenbank connecten lassen kann.
|
server geht nicht bei externer db
07/27/2010 - Metin2 Private Server - 4 Replies
hallo erstmal
ich weiß zwar nihct ob das der richtige berreich ist aba ich fange erstmal an
also ich hab nach dem tut von imer Laggfreien Stabiler sicherer(!) Server bis > 1000 Spieler (mehr nicht tested)
naja habe es so gemacht und die sachen geändert allerdings nur die player common db ...
nun hab eich allerdiongs das problem das er immer connectrin refused anziegt und nej core fehler hat hier mal der screen daszu
http://www4.pic-upload.de/27.07.10/rq9ef5d85apu.j pg
naja hier mal der...
|
Problem mit neuer externer Festplatte
05/04/2010 - Technical Support - 3 Replies
Also ich habe mir Heute eine 1 tb festplatte von TOSHIBA gekauft.
http://www.dealgott.de/wp-content/uploads/2009/12 /toshibaPX1396E.JPG
nur habe ich nun ein Problem normal sind insgesammt 1000gb verfügbar so darauf war von anfang an McAffe zum Installieren drauf was 280 mb verwenden.Windows zeigt mir aber "nur" 931 gb
http://img215.imageshack.us/img215/5653/unbenannt peh.jpg
an die frei sind was ja irgendwie nicht stimmen kann.
So nach Windows müsste ich ja 931 gb frei(was aber...
|
Externer Monitor Problem
02/23/2010 - Technical Support - 6 Replies
Hey
ich habe folgendes Problem
ich hab nen laptop aber der bildschirm ist kaputt also hab ich jetzt nen externen nur vor der anmeldung geht der immer aus und funktioniert nicht mehr. wenn ich aber im abgesicherten modus starte funktioniert der einwandfrei ich kann halt nur nicht starten...
hilfe dringend nötig ;)
|
Externer Hack?
01/20/2010 - World of Warcraft - 2 Replies
Heyho,
Ich habe eine ganz kleine frage, welche Hacks bzw Programme sind Extern..
(Wenn WPE PRO extern ist hat es sich erledigt :p ) habe nur keine ahnugn was Extern ist (dumm halt)
Ich hoffe ihr könnt mir weiter helfen.. danke und BTW: Es ist für 2.4.3 :rtfm:
das Teil, das die protected functions der WoW API freigibt, DAS wäre hilfreich!
|
All times are GMT +2. The time now is 14:58.
|
|