Parameter Auslesen?!

09/05/2012 19:13 bloodx#1
Hey Hou, ich habe ein naja nennen wir es "Problem"

Momentan lese ich den gewünschten Parameter so aus ->

überschreibe halt 6 Bytes mit einem JMP push ECX call meine Funktion und stelle das Original wieder her und springe zu origina+6 Bytes halt.
Code:
DWORD oGameStartBack = 0x00458276;
int __declspec( naked ) GameStarts()
{
	__asm{
			push    ecx
			call    StealPlayerP
			pop ecx
			push	 ebp
			mov ebp, esp
			sub esp, 8
			mov   edx,oGameStartBack
			jmp   edx
	}
}
Meine Frage weis jemand ne möglichkeit an die Daten zu kommen ohne ASM? ._.
09/05/2012 20:05 Nightblizard#2
Setz einen Breakpoint oder benutze eine Library, die das Detouren übernimmt.
09/05/2012 20:14 bloodx#3
Quote:
Originally Posted by Nightblizard View Post
Setz einen Breakpoint oder benutze eine Library, die das Detouren übernimmt.
öhm ._. wie sollte mir dass jetzt helfen? oO

wieso das Detouren übernimmt? ich Hook die funktion doch bereist mit einem JMP ?
09/05/2012 20:42 Nightblizard#4
Hmm? Du wolltest wissen wie das ohne Assembly geht und so geht das. Du setzt entweder einen Breakpoint an der Stelle und hängst dich mit nem Exception Handler in den Thread (wodurch du Zugriff auf die Parameter bekommst) oder du lässt eine andere Lib die Funktion hooken. Letzteres ist das Gleiche was du jetzt machst, nur halt ohne Assembly, also das, wonach du gefragt hast.
Oder habe ich dich falsch verstanden?
09/05/2012 21:31 SmackJew#5
Was wollt ihr denn alle mit extra libs und SEH hooks? Der Mann will keine Rakete zum Mond schicken.

Finde die Calling Convention und die Parameteranzahl + Größe heraus und fertig? Bleibt natürlich die Frage, was ist dein Problem mit ASM?
09/05/2012 23:01 bloodx#6
finde ASM nicht so schön :) mache es lieber ohne nut im Notfall.

bzw. habe es so gelöst jetzt(dank nem Freund der mich daran erinnert hat) ->

Code:
void __fastcall GameStart(void* _this)
{
	ServerPIDPlayer.push_back(_this);
	oGameStart(_this);
}
Mem->Hook(0x000452F71,GameStart,0xe8,5);

Sieht doch gleich viel besser aus :)
09/06/2012 18:29 Nightblizard#7
Ach du wolltest eine thiscall Funktion aufrufen... Warum sagst du das nicht? Dann hätte man dir hier auch helfen können. :/
09/06/2012 20:51 MrSm!th#8
Das wäre übrigens mit MS Detours ebenso gegangen :O
09/06/2012 22:34 bloodx#9
Quote:
Originally Posted by MrSm!th View Post
Das wäre übrigens mit MS Detours ebenso gegangen :O
Weis ich jetzt auch wieder :D habe es zu lange nicht mehr gemacht und deswegen da oben diesen hirngespinnst von ASM code geschrieben :D:bandit: