Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 09:45

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1
 
Tyrar's Avatar
 
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 );
Tyrar is offline  
Old 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.
Bot_interesierter is offline  
Old 07/22/2010, 15:25   #3
 
Tyrar's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
Quote:
Originally Posted by Bot_interesierter View Post
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.....
Tyrar is offline  
Old 07/23/2010, 14:11   #4
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
rEdoX is offline  
Old 07/30/2010, 09:46   #5
 
Tyrar's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
Quote:
Originally Posted by rEdoX View Post

omfg warum bin ich nich selbst drauf gekommen? -.-
Tyrar is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.