Created
November 4, 2023 17:41
-
-
Save TTFH/fd44baac312c8e0ed3795224c6a4174d to your computer and use it in GitHub Desktop.
Analytics disabler for Teardown - pros.sdk.x64.dll
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define WIN32_LEAN_AND_MEAN | |
#include <windows.h> | |
#include <stdio.h> | |
#include <stdint.h> | |
#define EXPORT extern "C" __declspec(dllexport) | |
#ifdef _MSC_VER | |
#define PROXY(target_name, exp_name) __pragma(comment(linker, "/export:" #exp_name "=" #target_name "." #exp_name)) | |
#else | |
#define PROXY(target_name, exp_name) asm(".section .drectve\n\t.ascii \" -export:" #exp_name "=" #target_name "." #exp_name "\" ") | |
#endif | |
#define HYDRA_OK 0x87; | |
EXPORT uint64_t* prosdk_user_get_kernel_session_id_visual_alias(uint64_t* param1) { | |
return NULL; | |
} | |
EXPORT uint64_t prosdk_user_get_connection_state(uint64_t* param1) { | |
return 0; | |
} | |
EXPORT uint64_t prosdk_user_connect_xbox(uint64_t* param1) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_user_connect_steam(uint64_t* param1) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_user_connect_psn_token(uint64_t* param1) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_user_connect_epic_online_services(uint64_t* param1) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_user_connect_developer(uint64_t* param1, uint64_t param2, int param3) { | |
return HYDRA_OK; | |
} | |
EXPORT void prosdk_update() {} | |
EXPORT void prosdk_term() {} | |
EXPORT uint64_t prosdk_telemetry_user_event(uint64_t* param1, uint64_t param2, uint32_t param3, uint64_t param4) { | |
return HYDRA_OK; | |
} | |
EXPORT bool prosdk_telemetry_deprecated_event(uint64_t param1, uint32_t param2, uint64_t param3) { | |
return false; | |
} | |
EXPORT uint64_t prosdk_mods_upload_mod_image(uint64_t* param1, uint64_t param2, uint64_t param3, uint64_t param4) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_unsubscribe_from_mod(uint64_t* param1, uint64_t param2, uint64_t param3, uint64_t param4, uint64_t* param5) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_subscribe_to_mod(uint64_t* param1, uint64_t param2, uint64_t param3, uint64_t param4, uint64_t* param5) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_rate_mod(uint64_t* param1, uint64_t* param2, uint64_t param3, uint64_t param4) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_get_connection_state(uint64_t* param1) { | |
return 0; | |
} | |
EXPORT void prosdk_mods_disconnect(uint64_t* param1) { } | |
EXPORT uint32_t prosdk_mods_connect(uint64_t* param1, uint64_t param2) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_add_mod_version(uint64_t* param1, uint64_t* param2, uint64_t param3, uint64_t param4) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_mods_add_mod(uint64_t* param1, uint64_t* param2, uint64_t* param3, uint64_t param4, uint64_t param5) { | |
return HYDRA_OK; | |
} | |
EXPORT void prosdk_is_executing_requests() {} | |
EXPORT uint64_t prosdk_init(uint64_t* param1, uint64_t param2, int param3) { | |
return 0; | |
} | |
EXPORT uint64_t prosdk_http_request_get_framed(uint64_t* param1, uint64_t param2, uint64_t param3, uint64_t param4, uint64_t param5) { | |
return 0; | |
} | |
EXPORT uint64_t prosdk_http_request_get(uint64_t* param1, uint64_t param2, uint64_t param3) { | |
return 0; | |
} | |
EXPORT uint64_t* prosdk_get_error_message() { | |
return NULL; | |
} | |
EXPORT uint32_t prosdk_disconnect_everything() { | |
return 123; | |
} | |
EXPORT uint64_t prosdk_container_transfer_upload_rawdata(uint64_t* param1, uint64_t param2, uint64_t* param3, uint64_t param4, uint64_t param5) { | |
return HYDRA_OK; | |
} | |
EXPORT uint64_t prosdk_authorization_user_create(uint64_t* param1) { | |
return 0; | |
} | |
EXPORT const char* prosdk_account_get_status(uint64_t* param1) { | |
return "Hello World ABC"; | |
} | |
EXPORT uint64_t prosdk_account_get_qr_code(uint64_t* param1, uint64_t param2, uint64_t param3, uint64_t param4) { | |
return HYDRA_OK; | |
} | |
EXPORT void prosdk_account_connect(uint64_t* param1, uint64_t param2) { } | |
EXPORT void hydra5_diagnostics_release_crash_reporter_user_token(uint64_t* param1) {} | |
EXPORT uint64_t hydra5_diagnostics_get_crash_reporter_user_token(uint64_t param1) { | |
return 0; | |
} | |
// g++ -Wall -Wextra -Werror -Wpedantic -Wno-unused-parameter -s -shared -static pros.cpp -o pros.sdk.x64.dll | |
/* | |
PROXY(amateurs, prosdk_user_get_kernel_session_id_visual_alias); | |
PROXY(amateurs, prosdk_user_get_connection_state); | |
PROXY(amateurs, prosdk_user_connect_xbox); | |
PROXY(amateurs, prosdk_user_connect_steam); | |
PROXY(amateurs, prosdk_user_connect_psn_token); | |
PROXY(amateurs, prosdk_user_connect_epic_online_services); | |
PROXY(amateurs, prosdk_user_connect_developer); | |
PROXY(amateurs, prosdk_update); | |
PROXY(amateurs, prosdk_term); | |
PROXY(amateurs, prosdk_telemetry_user_event); | |
PROXY(amateurs, prosdk_telemetry_deprecated_event); | |
PROXY(amateurs, prosdk_mods_upload_mod_image); | |
PROXY(amateurs, prosdk_mods_unsubscribe_from_mod); | |
PROXY(amateurs, prosdk_mods_subscribe_to_mod); | |
PROXY(amateurs, prosdk_mods_rate_mod); | |
PROXY(amateurs, prosdk_mods_get_connection_state); | |
PROXY(amateurs, prosdk_mods_disconnect); | |
PROXY(amateurs, prosdk_mods_connect); | |
PROXY(amateurs, prosdk_mods_add_mod_version); | |
PROXY(amateurs, prosdk_mods_add_mod); | |
PROXY(amateurs, prosdk_is_executing_requests); | |
PROXY(amateurs, prosdk_init); | |
PROXY(amateurs, prosdk_http_request_get_framed); | |
PROXY(amateurs, prosdk_http_request_get); | |
PROXY(amateurs, prosdk_get_error_message); | |
PROXY(amateurs, prosdk_disconnect_everything); | |
PROXY(amateurs, prosdk_container_transfer_upload_rawdata); | |
PROXY(amateurs, prosdk_authorization_user_create); | |
PROXY(amateurs, prosdk_account_get_status); | |
PROXY(amateurs, prosdk_account_get_qr_code); | |
PROXY(amateurs, prosdk_account_connect); | |
PROXY(amateurs, hydra5_diagnostics_release_crash_reporter_user_token); | |
PROXY(amateurs, hydra5_diagnostics_get_crash_reporter_user_token); | |
*/ | |
DWORD WINAPI MainThread(HMODULE hModule) { | |
AllocConsole(); | |
FILE* stream; | |
freopen_s(&stream, "CONOUT$", "w", stdout); | |
printf("The Hydra is dead!\n"); | |
FreeLibraryAndExitThread(hModule, 0); | |
return 0; | |
} | |
BOOL APIENTRY DllMain(HMODULE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { | |
(void)lpvReserved; | |
if (fdwReason == DLL_PROCESS_ATTACH) | |
CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)MainThread, hinstDLL, 0, nullptr); | |
return TRUE; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thank you