Mutex in externem Programm?



  • Hallo,
    ich befasse mich gerade mit DLL Injection und habe zum testen eine kleine DLL geschrieben, welche verschiedene Funktionen hookt. Diese Funktionen befinden sich jedoch alle in unterschiedlichen Threads. In jedem Hook möchte ich auf eine Variable zugreifen.

    Da ich mich noch nie mit Threads auseinandergesetzt habe (zumindest nicht mit Mutexes) würde ich gerne von euch wissen, wie ich mit so etwas umzugehen habe.

    Kurzes, runtergebrochenes Beispiel:

    class SimpleClass
    {
    public:
    	void mache_irgendetwas();
    };
    
    SimpleClass instance;
    void *orig_my_func1 = NULL;
    void *orig_my_func2 = NULL;
    
    int main(int argc, char *argv[])
    {
    	orig_my_func1 = DetourFunction(external_function_ptr1, my_func1);
    	orig_my_func2 = DetourFunction(external_function_ptr2, my_func2);
    }
    
    int my_func1()
    {
    	// hier Mutex, da aus anderem Thread als func2?
    	instance.mache_irgendetwas();
    
    	return orig_my_func1();
    }
    
    void my_func2(double x)
    {
    	// hier Mutex, da aus anderem Thread als func1?
    	instance.mache_irgendetwas();
    
    	orig_my_func2(x);
    }
    

    Vielen Dank!


Anmelden zum Antworten