C++ __asm weigert sich - Proxy DLL - Api Hooking

ICE TRUCK

Grünschnabel
Hallo,

ich habe erstmal dieses Tutorial als ausgangslage: http://www.tutorials.de/forum/c-c-tutorials/164662-tutorial-ueber-windows-hooks.html

das hat schonmal perfekt geklappt

http://www.icetruck.de/maushook.rar
also das is die exe mit der dll

dann habe ich versucht eine Proxy-DLL zu erstellen^^ und bin genau an der stelle wo ich n jump per __asm machen sollte hängengeblieben...

Der Code ist von der Seite ... http://www.codeproject.com/dll/CreateYourProxyDLLs.asp nur schon ein wenig abgeändert also...

es sieht im moment so aus: http://www.icetruck.de/mousehook.proxy.rar
(im archiv ist die projektdatei und die cpp datei)

Ausschnitt:
Code:
extern "C" __declspec(naked) void __stdcall __E__0__()
	{
	__asm
		{
		jmp p[0*4];
		}
	}

// UninstallHook
extern "C" __declspec(naked) void __stdcall __E__1__()
	{
	__asm
		{
		jmp p[1*4];
		}
	}

Ich hab das ganze in Dev-C++ gemacht ...
also bis auf das mit __asm scheint alles ausser den warnungen bei naked zu klappen...

Code:
33 [Warning] `naked' attribute directive ignored 
 In function `void __E__0__()': 
35 expected `(' before '{' token 
35 expected asm body before '{' token 
36 `jmp' undeclared (first use this function) 
  (Each undeclared identifier is reported only once for each function it appears in.) 
36 expected `;' before "p" 
36 At global scope: 
42 [Warning] `naked' attribute directive ignored 
 In function `void __E__1__()': 
44 expected `(' before '{' token 
44 expected asm body before '{' token 
45 `jmp' undeclared (first use this function) 
45 expected `;' before "p" 
 C:\test\api hooking\maushook2\dll\Makefile.win [Build Error]  [main.o] Error 1
Das sind die fehler^^ angeblicherweise soll __asm ja mit { und } geschrieben werden aber scheinbar...

nun die frage: Wie löse ich dieses Problem? :D

danke schonmal,

ICE TRUCK
 
Zuletzt bearbeitet:
na super^^ irgendwann find ich heraus dass das in dev-c++ anders ist ...

Code:
    test=(int)p[0*4];
	__asm("jmp _test");
man nutzt da nicht { } sondern ( ) ... und mit _var kann man ne var einsetzen... war in allem was ich vorher gefunden hab ohne _ ... naja ok^^ dass es jetzt nicht ganz funktioniert da ich die def datei ja noch für überhaupt nix verwendet hab isn anderes problem :D aber kann schon die dll erstellen ... ok danke^^
 
Zurück