DLL Injection in 64bit Prozess

08/20/2012 14:06 ehauser#1
Hi, ich kann ja eine 32bit Dll nicht in einen 64bit Prozess injecten.Wie kompiliere ich mit Visual Studio 2010 eine Dll für 64bit, oder gibt es eine andere Lösung?
08/20/2012 14:21 Dr. Coxxy#2
musst 64bit dll kompilieren, wie das geht ist auf der msdn erklärt.
08/20/2012 18:17 tnd0#3
rechtsklick auf die solution "properties" oben rechts auf "Configuration Manager.." und dann bei "Active Solution Platform" x64 auswählen. zum injecten von 64bit libraries empfiehlt es sich tls beim compiler zu deaktivieren. sonst fliegt dir früher oder später alles um die ohren, es sei denn dein target-process wurde auch mit visualstudio >2008 erstellt.
08/20/2012 19:05 MrSm!th#4
Geht natürlich nur mit einer x64 Version von Visual Studio.
08/20/2012 20:01 ehauser#5
Also ich hab jetzt als Zielplattform x64 aber es passiert trotzdem nichts. Liegt es an diesem tls ? Wie aktiviert man das ?
08/22/2012 16:13 tnd0#6
was heisst "passiert nichts"? wenn das ding auf x64 steht wird er wohl auch eine 64-bit DLL erstellen oder fehler werfen.
08/24/2012 19:41 ehauser#7
Nein, die Dll wird schon 64bit kompiliert, aber beim injecten passiert nichts.
08/25/2012 01:03 nkkk#8
Quote:
Originally Posted by MrSm!th View Post
Geht natürlich nur mit einer x64 Version von Visual Studio.
Es gibt keine 64 bit version von visual studio.

@te
wie injectest du die dll denn?
08/25/2012 16:45 MrSm!th#9
Ich meinte damit auf einer x64 Maschine.
Du kannst x64 auf einer x86 Maschine nicht auswählen.
08/25/2012 17:06 ehauser#10
Ich habs mit Winject und meinem eigenen Injector ausprobiert. x86 Dll in x86 Prozess geht natürlich (MessageBox erscheint). x64 Dll in x64 Prozess geht zwar zu injecten, aber es passiert nichts, also die MessageBox kommt nicht.
08/26/2012 01:32 MrSm!th#11
Attach doch mal mit nem Debugger und schau, was passiert.