Created
September 5, 2009 09:13
-
-
Save oksoftware/181356 to your computer and use it in GitHub Desktop.
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
#include <windows.h> | |
#include <tchar.h> | |
#include "NPSWF32.h" | |
BOOL WINAPI DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved){ | |
switch(dwReason){ | |
case DLL_PROCESS_ATTACH: | |
AddLog(_T("DllMain called: dwReason == DLL_PROCESS_ATTACH\r\n")); | |
hOriginal = LoadLibrary(ORIGINAL_DLL_NAME); | |
if(hOriginal == NULL){ | |
return TRUE; | |
} | |
GetProcAddresses(); | |
break; | |
case DLL_THREAD_ATTACH: | |
AddLog(_T("DllMain called: dwReason == DLL_THREAD_ATTACH\r\n")); | |
break; | |
case DLL_THREAD_DETACH: | |
AddLog(_T("DllMain called: dwReason == DLL_THREAD_DETACH\r\n")); | |
break; | |
case DLL_PROCESS_DETACH: | |
AddLog(_T("DllMain called: dwReason == DLL_PROCESS_DETACH\r\n")); | |
FreeLibrary(hOriginal); | |
break; | |
default: | |
AddLog(_T("DllMain called: dwReason == Unknown\r\n")); | |
break; | |
} | |
return TRUE; | |
} | |
BOOL AddLog(LPCTSTR str){ | |
HANDLE hFile; | |
DWORD nBytesWritten; | |
hFile = CreateFile(LOG_FILE_NAME, GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | |
if(hFile == INVALID_HANDLE_VALUE){ | |
MessageBox(NULL, "CANNOT WRITE TO LOG FILE!", "Error:AddLog", MB_ICONERROR); | |
return FALSE; | |
} | |
SetFilePointer(hFile, 0, NULL, FILE_END); | |
if(WriteFile(hFile, str, _tcslen(str), &nBytesWritten, NULL) != 0){ | |
return FALSE; | |
} | |
CloseHandle(hFile); | |
return TRUE; | |
} | |
BOOL GetProcAddresses(){ | |
p_NP_GetEntryPoints = GetProcAddress(hOriginal, "NP_GetEntryPoints"); | |
p_NP_Initialize = GetProcAddress(hOriginal, "NP_Initialize"); | |
p_NP_Shutdown = GetProcAddress(hOriginal, "NP_Shutdown"); | |
p_Flash_DisableLocalSecurity = GetProcAddress(hOriginal, "Flash_DisableLocalSecurity"); | |
p_Flash_EnforceLocalSecurity = GetProcAddress(hOriginal, "Flash_EnforceLocalSecurity"); | |
p_DllRegisterServer = GetProcAddress(hOriginal, "DllRegisterServer"); | |
p_DllUnregisterServer = GetProcAddress(hOriginal, "DllUnregisterServer"); | |
p_Java_ShockwaveFlash_CurrentFrame_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_CurrentFrame_stub"); | |
p_Java_ShockwaveFlash_FlashVersion_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_FlashVersion_stub"); | |
p_Java_ShockwaveFlash_FrameLoaded_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_FrameLoaded_stub"); | |
p_Java_ShockwaveFlash_GetVariable_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_GetVariable_stub"); | |
p_Java_ShockwaveFlash_GotoFrame_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_GotoFrame_stub"); | |
p_Java_ShockwaveFlash_IsPlaying_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_IsPlaying_stub"); | |
p_Java_ShockwaveFlash_LoadMovie_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_LoadMovie_stub"); | |
p_Java_ShockwaveFlash_Pan_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_Pan_stub"); | |
p_Java_ShockwaveFlash_PercentLoaded_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_PercentLoaded_stub"); | |
p_Java_ShockwaveFlash_Play_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_Play_stub"); | |
p_Java_ShockwaveFlash_SetVariable_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_SetVariable_stub"); | |
p_Java_ShockwaveFlash_SetZoomRect_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_SetZoomRect_stub"); | |
p_Java_ShockwaveFlash_StopPlay_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_StopPlay_stub"); | |
p_Java_ShockwaveFlash_TCallFrame_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TCallFrame_stub"); | |
p_Java_ShockwaveFlash_TCallLabel_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TCallLabel_stub"); | |
p_Java_ShockwaveFlash_TCurrentFrame_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TCurrentFrame_stub"); | |
p_Java_ShockwaveFlash_TCurrentLabel_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TCurrentLabel_stub"); | |
p_Java_ShockwaveFlash_TGetProperty_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TGetProperty_stub"); | |
p_Java_ShockwaveFlash_TGotoFrame_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TGotoFrame_stub"); | |
p_Java_ShockwaveFlash_TGotoLabel_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TGotoLabel_stub"); | |
p_Java_ShockwaveFlash_TPlay_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TPlay_stub"); | |
p_Java_ShockwaveFlash_TSetProperty_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TSetProperty_stub"); | |
p_Java_ShockwaveFlash_TStopPlay_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TStopPlay_stub"); | |
p_Java_ShockwaveFlash_TotalFrames_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_TotalFrames_stub"); | |
p_Java_ShockwaveFlash_Zoom_stub = GetProcAddress(hOriginal, "Java_ShockwaveFlash_Zoom_stub"); | |
p_native_ShockwaveFlash_CurrentFrame = GetProcAddress(hOriginal, "native_ShockwaveFlash_CurrentFrame"); | |
p_native_ShockwaveFlash_FlashVersion = GetProcAddress(hOriginal, "native_ShockwaveFlash_FlashVersion"); | |
p_native_ShockwaveFlash_FrameLoaded = GetProcAddress(hOriginal, "native_ShockwaveFlash_FrameLoaded"); | |
p_native_ShockwaveFlash_GetVariable = GetProcAddress(hOriginal, "native_ShockwaveFlash_GetVariable"); | |
p_native_ShockwaveFlash_GotoFrame = GetProcAddress(hOriginal, "native_ShockwaveFlash_GotoFrame"); | |
p_native_ShockwaveFlash_IsPlaying = GetProcAddress(hOriginal, "native_ShockwaveFlash_IsPlaying"); | |
p_native_ShockwaveFlash_LoadMovie = GetProcAddress(hOriginal, "native_ShockwaveFlash_LoadMovie"); | |
p_native_ShockwaveFlash_Pan = GetProcAddress(hOriginal, "native_ShockwaveFlash_Pan"); | |
p_native_ShockwaveFlash_PercentLoaded = GetProcAddress(hOriginal, "native_ShockwaveFlash_PercentLoaded"); | |
p_native_ShockwaveFlash_Play = GetProcAddress(hOriginal, "native_ShockwaveFlash_Play"); | |
p_native_ShockwaveFlash_SetVariable = GetProcAddress(hOriginal, "native_ShockwaveFlash_SetVariable"); | |
p_native_ShockwaveFlash_SetZoomRect = GetProcAddress(hOriginal, "native_ShockwaveFlash_SetZoomRect"); | |
p_native_ShockwaveFlash_StopPlay = GetProcAddress(hOriginal, "native_ShockwaveFlash_StopPlay"); | |
p_native_ShockwaveFlash_TCallFrame = GetProcAddress(hOriginal, "native_ShockwaveFlash_TCallFrame"); | |
p_native_ShockwaveFlash_TCallLabel = GetProcAddress(hOriginal, "native_ShockwaveFlash_TCallLabel"); | |
p_native_ShockwaveFlash_TCurrentFrame = GetProcAddress(hOriginal, "native_ShockwaveFlash_TCurrentFrame"); | |
p_native_ShockwaveFlash_TCurrentLabel = GetProcAddress(hOriginal, "native_ShockwaveFlash_TCurrentLabel"); | |
p_native_ShockwaveFlash_TGetProperty = GetProcAddress(hOriginal, "native_ShockwaveFlash_TGetProperty"); | |
p_native_ShockwaveFlash_TGotoFrame = GetProcAddress(hOriginal, "native_ShockwaveFlash_TGotoFrame"); | |
p_native_ShockwaveFlash_TGotoLabel = GetProcAddress(hOriginal, "native_ShockwaveFlash_TGotoLabel"); | |
p_native_ShockwaveFlash_TPlay = GetProcAddress(hOriginal, "native_ShockwaveFlash_TPlay"); | |
p_native_ShockwaveFlash_TSetProperty = GetProcAddress(hOriginal, "native_ShockwaveFlash_TSetProperty"); | |
p_native_ShockwaveFlash_TStopPlay = GetProcAddress(hOriginal, "native_ShockwaveFlash_TStopPlay"); | |
p_native_ShockwaveFlash_TotalFrames = GetProcAddress(hOriginal, "native_ShockwaveFlash_TotalFrames"); | |
p_native_ShockwaveFlash_Zoom = GetProcAddress(hOriginal, "native_ShockwaveFlash_Zoom"); | |
p_register_ShockwaveFlash = GetProcAddress(hOriginal, "register_ShockwaveFlash"); | |
p_unregister_ShockwaveFlash = GetProcAddress(hOriginal, "unregister_ShockwaveFlash"); | |
p_unuse_ShockwaveFlash = GetProcAddress(hOriginal, "unuse_ShockwaveFlash"); | |
p_unuse_netscape_plugin_Plugin = GetProcAddress(hOriginal, "unuse_netscape_plugin_Plugin"); | |
p_use_ShockwaveFlash = GetProcAddress(hOriginal, "use_ShockwaveFlash"); | |
p_use_netscape_plugin_Plugin = GetProcAddress(hOriginal, "use_netscape_plugin_Plugin"); | |
return TRUE; | |
} | |
//Hooked functions | |
__declspec(naked) int NP_GetEntryPoints(){ | |
AddLog(_T("NP_GetEntryPoints called\r\n")); | |
_asm{ jmp p_NP_GetEntryPoints } | |
} | |
__declspec(naked) int NP_Initialize(){ | |
AddLog(_T("NP_Initialize called\r\n")); | |
_asm{ jmp p_NP_Initialize } | |
} | |
__declspec(naked) int NP_Shutdown(){ | |
AddLog(_T("NP_Shutdown called\r\n")); | |
_asm{ jmp p_NP_Shutdown } | |
} | |
__declspec(naked) int Flash_DisableLocalSecurity(){ | |
AddLog(_T("Flash_DisableLocalSecurity called\r\n")); | |
_asm{ jmp p_Flash_DisableLocalSecurity } | |
} | |
__declspec(naked) int Flash_EnforceLocalSecurity(){ | |
AddLog(_T("Flash_EnforceLocalSecurity called\r\n")); | |
_asm{ jmp p_Flash_EnforceLocalSecurity } | |
} | |
__declspec(naked) int DllRegisterServer(){ | |
AddLog(_T("DllRegisterServer called\r\n")); | |
_asm{ jmp p_DllRegisterServer } | |
} | |
__declspec(naked) int DllUnregisterServer(){ | |
AddLog(_T("DllUnregisterServer called\r\n")); | |
_asm{ jmp p_DllUnregisterServer } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_CurrentFrame_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_CurrentFrame_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_CurrentFrame_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_FlashVersion_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_FlashVersion_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_FlashVersion_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_FrameLoaded_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_FrameLoaded_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_FrameLoaded_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_GetVariable_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_GetVariable_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_GetVariable_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_GotoFrame_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_GotoFrame_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_GotoFrame_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_IsPlaying_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_IsPlaying_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_IsPlaying_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_LoadMovie_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_LoadMovie_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_LoadMovie_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_Pan_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_Pan_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_Pan_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_PercentLoaded_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_PercentLoaded_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_PercentLoaded_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_Play_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_Play_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_Play_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_SetVariable_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_SetVariable_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_SetVariable_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_SetZoomRect_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_SetZoomRect_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_SetZoomRect_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_StopPlay_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_StopPlay_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_StopPlay_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_TCallFrame_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_TCallFrame_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_TCallFrame_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_TCallLabel_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_TCallLabel_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_TCallLabel_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_TCurrentFrame_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_TCurrentFrame_stub called\r\n")); | |
_asm{ jmp p_Java_ShockwaveFlash_TCurrentFrame_stub } | |
} | |
__declspec(naked) int Java_ShockwaveFlash_TCurrentLabel_stub(){ | |
AddLog(_T("Java_ShockwaveFlash_TCurrentLabel_stub called\r\n")); | |
_asm{ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment