飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

楼主: Nisy

[C/C++] winmm.dll 劫持代码

    [复制链接]
  • TA的每日心情
    开心
    2022-5-7 18:20
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2014-11-19 15:54:47 | 显示全部楼层

    好东西,学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-5-7 12:58
  • 签到天数: 177 天

    [LV.7]常住居民III

    发表于 2014-11-21 09:44:57 | 显示全部楼层
    收下了。。谢谢N大了。。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-4-7 18:24
  • 签到天数: 79 天

    [LV.6]常住居民II

    发表于 2014-11-21 13:58:04 | 显示全部楼层
    多谢分享。{:soso_e179:}
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-17 19:08
  • 签到天数: 65 天

    [LV.6]常住居民II

    发表于 2014-11-21 14:48:22 | 显示全部楼层
    感谢N大分享!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2016-7-20 18:14
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2014-11-22 11:32:26 | 显示全部楼层

    #include <stdio.h>
    #include <windows.h>
    #include "Shlwapi.h"

    HMODULE g_hMSIMG32 = NULL;

    DWORD __stdcall ThreadProc(LPVOID lpParam){
            return 0;
    }

    BOOL __stdcall DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
    {
            if( dwReason == DLL_PROCESS_ATTACH ){
                    HANDLE m_hThread=CreateThread(NULL,0,ThreadProc,NULL,0,NULL);
                    CloseHandle(m_hThread);
            }
            else if( dwReason == DLL_PROCESS_DETACH ){               
            }
            return TRUE;
    }

    #define MSIMG32_DEF_IMPORT(x, y) g_fp##x = GetProcAddress( g_hMSIMG32, y );

    #define MSIMG32_BUILD_STUB(x) __declspec(naked) void x ( void ) { \
            __asm pushad \
            __asm call MSIMG32InitializeImports \
            __asm popad \
            __asm jmp g_fp##x## \
    }

    FARPROC g_fpvSetDdrawflag;
    FARPROC g_fpAlphaBlend;
    FARPROC g_fpDllInitialize;
    FARPROC g_fpGradientFill;
    FARPROC g_fpTransparentBlt;

    void MSIMG32InitializeImports( void )
    {
            if( g_hMSIMG32 == NULL )
            {
                    char szBuffer[ MAX_PATH ] = "";
                    GetSystemDirectory( szBuffer, sizeof( szBuffer ) );
                    strcat( szBuffer, "\\msimg32.dll");
                    g_hMSIMG32 = LoadLibrary( szBuffer );
                    MSIMG32_DEF_IMPORT( vSetDdrawflag, "vSetDdrawflag" );
                    MSIMG32_DEF_IMPORT( AlphaBlend, "AlphaBlend" );
                    MSIMG32_DEF_IMPORT( DllInitialize, "DllInitialize" );
                    MSIMG32_DEF_IMPORT( GradientFill, "GradientFill" );
                    MSIMG32_DEF_IMPORT( TransparentBlt, "TransparentBlt" );
            }
    }

    MSIMG32_BUILD_STUB(vSetDdrawflag)
    MSIMG32_BUILD_STUB(AlphaBlend)
    MSIMG32_BUILD_STUB(DllInitialize)
    MSIMG32_BUILD_STUB(GradientFill)
    MSIMG32_BUILD_STUB(TransparentBlt)



    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表