|
You last visited: Today at 09:45
Advertisement
[c++]wäre das theoretisch möglich...
Discussion on [c++]wäre das theoretisch möglich... within the C/C++ forum part of the Coders Den category.
07/22/2010, 12:43
|
#1
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
[c++]wäre das theoretisch möglich...
... eine funktion im prozess mit CreateRemoteThread auszuführen (also das an sich schon), nur eben dass man eine struct erstellt, die den gleichen aufbau des normalen call stacks hat?
und könnte man wenn der thread durch is, mit GetThreadContext den return wert aus EAX auslesen?
pseudo code:
Code:
struct stackrip
{
DWORD ptr1;
DWORD ptr2;
}
...
stackrip x;
x.ptr1 = (DWORD)VirtualAllocEx(...);
x.ptr2 = (DWORD)VirtualAllocEx(...);
LPVOID lpX = VirtualAllocEx(/*sizeof(x) zum lesen/schreiben freigeben*/);
WriteProcessMemory(/*x an lpX schreiben*/);
HANDLE hThread = CreateRemoteThread(hProc,0,0,(LPTHREAD_START_ROUTINE)0xDEADBEEF,lpX,0,0);
WaitForSingleObject(hThread,INFINITE);
CONTEXT ctx;
GetThreadContext(hThread,&ctx);
DWORD ret_urn = ctx.Eax;
wenn ich da nich schon genügend fehler drin habe XD (parameter bei VirtualAllocEx sind mit absicht weg  );
|
|
|
07/22/2010, 14:49
|
#2
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Denk einfach mal genau nach was CreateRemoteThread macht...
lpParameter wird als der LPTHREAD_START_ROUTINE als Argument übergeben, es funktioniert nicht so wie du dir das vorstellst das deine Struktur dann plötzlich der Stack ist...
Der nächste Logische Fehler den du machst ist, dass du darauf wartest dass der Thread terminiert, wie willst du danach noch einen sinnvollen Kontext auslesen?
Allerdings ist es natürlich möglich mit Hilfe von CreateRemoteThread und VirtualAllocEx eine Funktion im Zielprozess auszuführen, dazu musst du einen Call Stub bauen an den du den nötigen Code schreibst um die Funktion mit den Argumenten die du haben möchtest aufzurufen, dass heißt du reservierst dir Speicher als Read/Write/Execute, so dass du CreateRemoteThread auf deinen Code Stub aufrufen kannst, wenn du irgendwelche Rückgabewerte der Aufgerufenen Funktion auslesen willst, dann muss das natürlich dein Codestub regeln, also mit einer beliebigen IPC Methode die Daten übermitteln, zb über Named Pipes und du lässt deinen Prozess einfach auf die Antwort aus dem Code Stub warten.
|
|
|
07/22/2010, 15:25
|
#3
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by Bot_interesierter
Denk einfach mal genau nach was CreateRemoteThread macht...
lpParameter wird als der LPTHREAD_START_ROUTINE als Argument übergeben, es funktioniert nicht so wie du dir das vorstellst das deine Struktur dann plötzlich der Stack ist...
Der nächste Logische Fehler den du machst ist, dass du darauf wartest dass der Thread terminiert, wie willst du danach noch einen sinnvollen Kontext auslesen?
Allerdings ist es natürlich möglich mit Hilfe von CreateRemoteThread und VirtualAllocEx eine Funktion im Zielprozess auszuführen, dazu musst du einen Call Stub bauen an den du den nötigen Code schreibst um die Funktion mit den Argumenten die du haben möchtest aufzurufen, dass heißt du reservierst dir Speicher als Read/Write/Execute, so dass du CreateRemoteThread auf deinen Code Stub aufrufen kannst, wenn du irgendwelche Rückgabewerte der Aufgerufenen Funktion auslesen willst, dann muss das natürlich dein Codestub regeln, also mit einer beliebigen IPC Methode die Daten übermitteln, zb über Named Pipes und du lässt deinen Prozess einfach auf die Antwort aus dem Code Stub warten.
|
alles klar thx, ich habs jetzt so geregelt dass ich nen stub geschrieben habe, der ne struct als parameter erwartet, von da aus wie du geschrieben hast dann die funktion aufrufen.
hab grad rausgefunden dass ich überhaupt keine return werte brauche ^.^
dann muss ich jetzt nurnoch dafür sorgen dass der stub RICHTIG generiert wird.....
|
|
|
07/23/2010, 14:11
|
#4
|
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
|
|
|
|
07/30/2010, 09:46
|
#5
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
Quote:
Originally Posted by rEdoX
|
omfg warum bin ich nich selbst drauf gekommen? -.-
|
|
|
 |
Similar Threads
|
Wäre so was möglich?
08/20/2010 - Last Chaos - 4 Replies
http://www.youtube.com/watch?v=FIkZLRx0XPI&fea ture=related
Wäre sowas möglich clientside ist das nicht sondern Serverside.
100% kein Keylogger
|
Wäre so ein Bot möglich?
08/12/2010 - Last Chaos - 8 Replies
So habe mal ne frage ob ein Marktschreier Bot theoretisch möglich wäre.
Er sucht z.b nach 3 Items und man kann einstellen das er sie wenn er das item für 5kk oder billiger als bsp sieht kauft. das mit den preis und der menge die das item verkauft wird könnte ja man locker mit CE rausfinden und auch bestimmt so die offsets.
Nur nach dem bild müsste man wohl Imagesearch benutzen oder auch Pixelsearch.
Nur wäre sowas überhaupt zu realisieren? Was denkt ihr?! Würde ihr so einen Bot gut...
|
Wäre es möglich?
05/25/2010 - Metin2 - 3 Replies
Hallo
ich bin gerade dabei meine Buff zu lvl´n im Dt 7 eben ( geht schneller wie im sd2) nun hab ich das problem das ich sie imm wider aufstehen lassen muss:(
da mit eh langweilig ist wollte ich euch schnell was fragen;) :
man wird ja nach ca 3 min in die stadt teleportiert ;) wäre es möglich das automatische "stadt Neustart" auszutauschen gegen das "hier aufstehen"?
|
[Wäre das möglich}
05/16/2010 - Metin2 Private Server - 7 Replies
Wäre es möglich auf meinem Laptop einen Pserver zu hosten ?
Prozesser:i5
Betriebssystem:Windows 7
Ramm:8GB
Möchte nur einen hamachi-Server für den Freundeskreis drauf hosten.
Das problem: Habe nur eine 1k Internetverbindung =(
|
Wäre es möglich ?!
10/26/2009 - Off Topic - 2 Replies
Were es möglich so ein Code zu lösen " ************ " ?
|
All times are GMT +1. The time now is 09:47.
|
|