#1 27. August 2009 Frage zu *.dll Moin - ich habe ein frage.. eine *.dll ist in c++ ja wie folgt aufgebaut: PHP: #include "StdAfx.h" extern "C" _declspec ( dllexport ) int _stdcall Addiere ( int a , int b ){ return (int) a + b ;} BOOL APIENTRY DllMain ( HINSTANCE hinstDLL , DWORD fdwReason , LPVOID lpvReserved ){ switch ( fdwReason ) { case DLL_PROCESS_ATTACH : // Code beim Laden in den Adressraum ausführen... break; } return TRUE ;} Nun zu meiner Frage... ich möchte bestimmten code nur ausführen wenn die *.dll Injektiert wird und nicht auch, wenn ich z.B. die Funktion Addiere aufrufe...ist das möglich? Wenn ja wie? Ich hoffe Ihr habt meine Frage verstanden. MfG EDIT: Keiner eine Lösung?^^ + Multi-Zitat Zitieren
#2 27. August 2009 AW: Frage zu *.dll Die Frage ist wie du die DLL injektierst, wenn die DLL geladen und wieder freigegben wird über LoadLiberary zum Beispiel, wird der Eintrittspunkt der Bibliothek aufgerufen also die Funktion 'DllMain'. Mfg Rushh0ur + Multi-Zitat Zitieren
#3 27. August 2009 AW: Frage zu *.dll Sie wird im 1. Fall einfach mit einem Injektor injektiert und im 2. Fall wird z.B. einfach Addieren gecallt... nur springt er bei beides mal an... + Multi-Zitat Zitieren
#4 27. August 2009 AW: Frage zu *.dll Du meinst das jedes mal dein Antivir anspringt wenn du dein Programm startest? Zitat aus dem letzten Beitrag aus diesem Thread: Mfg Rushh0ur + Multi-Zitat Zitieren
#5 27. August 2009 AW: Frage zu *.dll Nein, das meine ich nicht... ich möchte blos das er einen bestimmten code nicht ausführt, wenn ich eine Funktion in der dll calle sondern nur den code ausführt, wenn die dll injektiert wird.... jedoch denke ich das das nicht geht richtig? Daher müsse ich 2 getrennte dlls machen?? + Multi-Zitat Zitieren
#6 28. August 2009 AW: Frage zu *.dll Ja ich denke du brauchst 2 DLLs. Der Code in DllMain wird immer aufgerufen, sobald die Dll "geladen" wird. Ob das jedoch durch DLL-Injection oder durch einen normalen Funktionsaufruf passiert, ist egal. + Multi-Zitat Zitieren
#7 28. August 2009 AW: Frage zu *.dll kannst du nicht ne bool variable erstellen, die in dllMain jedes mal auf True gesetzt wird und in denn einzelnen Funktionen auf False? zuerst wird sie immer auf True gesetzt aber wenn eben ne Funktion aufgerufen wird, wird sie sofort wieder auf false gesetzt. Am ende eben ne Abfrage, bei True kann es ja dann kein Call gewesen sein. Bin leider noch nicht so bewandert in C++ daher ist das einfach nur nen Denkansatz. + Multi-Zitat Zitieren
#8 28. August 2009 AW: Frage zu *.dll Das würde nur funktionieren, wenn er die funktion vor der dllmain aufrufen würde, was aber nicht der Fall ist + Multi-Zitat Zitieren