飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 16897|回复: 10

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

[复制链接]

该用户从未签到

发表于 2014-11-7 23:22:55 | 显示全部楼层 |阅读模式

  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include "Shlwapi.h"

  4. HMODULE g_hMSIMG32 = NULL;

  5. DWORD __stdcall ThreadProc(LPVOID lpParam){
  6.         return 0;
  7. }

  8. BOOL __stdcall DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
  9. {
  10.         if( dwReason == DLL_PROCESS_ATTACH ){
  11.                 HANDLE m_hThread=CreateThread(NULL,0,ThreadProc,NULL,0,NULL);
  12.                 CloseHandle(m_hThread);
  13.         }
  14.         else if( dwReason == DLL_PROCESS_DETACH ){               
  15.         }
  16.         return TRUE;
  17. }

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

  19. #define MSIMG32_BUILD_STUB(x) __declspec(naked) void x ( void ) { \
  20.         __asm pushad \
  21.         __asm call MSIMG32InitializeImports \
  22.         __asm popad \
  23.         __asm jmp g_fp##x## \
  24. }

  25. FARPROC g_fpvSetDdrawflag;
  26. FARPROC g_fpAlphaBlend;
  27. FARPROC g_fpDllInitialize;
  28. FARPROC g_fpGradientFill;
  29. FARPROC g_fpTransparentBlt;

  30. void MSIMG32InitializeImports( void )
  31. {
  32.         if( g_hMSIMG32 == NULL )
  33.         {
  34.                 char szBuffer[ MAX_PATH ] = "";
  35.                 GetSystemDirectory( szBuffer, sizeof( szBuffer ) );
  36.                 strcat( szBuffer, "\\msimg32.dll");
  37.                 g_hMSIMG32 = LoadLibrary( szBuffer );
  38.                 MSIMG32_DEF_IMPORT( vSetDdrawflag, "vSetDdrawflag" );
  39.                 MSIMG32_DEF_IMPORT( AlphaBlend, "AlphaBlend" );
  40.                 MSIMG32_DEF_IMPORT( DllInitialize, "DllInitialize" );
  41.                 MSIMG32_DEF_IMPORT( GradientFill, "GradientFill" );
  42.                 MSIMG32_DEF_IMPORT( TransparentBlt, "TransparentBlt" );
  43.         }
  44. }

  45. MSIMG32_BUILD_STUB(vSetDdrawflag)
  46. MSIMG32_BUILD_STUB(AlphaBlend)
  47. MSIMG32_BUILD_STUB(DllInitialize)
  48. MSIMG32_BUILD_STUB(GradientFill)
  49. MSIMG32_BUILD_STUB(TransparentBlt)


复制代码


这组宏用的好巧妙 ~
节选自 msimg32+with+TabSiPlus\msimg32 with TabSiPlus\DLLMain.cpp 工程

评分

参与人数 2威望 +5 飘云币 +5 收起 理由
rigg + 1 + 1 PYG有你更精彩!
F8LEFT + 4 + 4 很给力!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-6-28 20:47
  • 签到天数: 2048 天

    [LV.Master]伴坛终老

    发表于 2014-11-8 09:00:14 | 显示全部楼层
    {:soso_e113:}不懂C++,菜鸟进来膜拜了呀。。。。不知道C++自学能不能学会呀。。。。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-2 16:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-11-8 10:13:51 | 显示全部楼层
    这组宏不错,不止用来build msimg32,用来build其他的也是可以的
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-3-10 20:59
  • 签到天数: 243 天

    [LV.8]以坛为家I

    发表于 2014-11-8 11:00:32 | 显示全部楼层
    不懂,来支持啦
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-6-13 21:25
  • 签到天数: 38 天

    [LV.5]常住居民I

    发表于 2014-11-8 11:24:04 | 显示全部楼层
    学习宏的使用
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-14 15:35
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2014-11-8 11:53:50 | 显示全部楼层
    支持,有个系列教程就好了。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-14 08:40
  • 签到天数: 675 天

    [LV.9]以坛为家II

    发表于 2014-11-23 14:57:25 | 显示全部楼层
    看不懂也来支持一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-18 09:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-1-22 08:37:52 | 显示全部楼层
    不懂,来支持啦
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-9-18 09:23
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-1-26 14:13:26 | 显示全部楼层
    看不懂也来支持一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-7-11 22:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-7-12 19:29:32 | 显示全部楼层
    不懂C++要是易语言的就好了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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