1010#ifdef _WIN32
1111#define DLL_EXPORT __declspec (dllexport)
1212#else
13- #define DLL_EXPORT __attribute__ (( visibility(" default" )))
13+ #define DLL_EXPORT [[gnu:: visibility("default")]]
1414#endif
1515
1616typedef int (*exampleFunction_fptr_t)(int a, int b, int c);
@@ -35,13 +35,22 @@ extern "C" DLL_EXPORT void onStartup() {
3535#endif
3636 printf (" handle = %p\n " , handle);
3737#ifdef _WIN32
38- exampleFunction_original = (exampleFunction_fptr_t) GetProcAddress ((HMODULE ) handle, " exampleFunction" );
38+ exampleFunction_original = reinterpret_cast <exampleFunction_fptr_t>(
39+ GetProcAddress ((HMODULE ) handle, " exampleFunction" )
40+ );
3941#else
40- exampleFunction_original = (exampleFunction_fptr_t) dlsym (handle, " exampleFunction" );
42+ exampleFunction_original = reinterpret_cast <exampleFunction_fptr_t>(
43+ dlsym (handle, " exampleFunction" )
44+ );
4145#endif
42- printf (" exampleFunction_original = %p\n " , (void *) exampleFunction_original);
46+ printf (" exampleFunction_original = %p\n " , reinterpret_cast <void *>(exampleFunction_original));
47+
48+ ret = funchook_prepare (
49+ funchook,
50+ reinterpret_cast <void **>(&exampleFunction_original),
51+ reinterpret_cast <void *>(exampleFunction_hook)
52+ );
4353
44- ret = funchook_prepare (funchook, (void **) &exampleFunction_original, (void *) exampleFunction_hook);
4554 if (ret != 0 ) {
4655 printf (" [-] funchook_prepare failed, ret = %d\n " , ret);
4756 return ;
@@ -52,4 +61,6 @@ extern "C" DLL_EXPORT void onStartup() {
5261 printf (" [-] funchook_install failed, ret = %d\n " , ret);
5362 return ;
5463 }
64+
65+ printf (" [+] done\n " );
5566}
0 commit comments