找回密码
 创建账号

QQ登录

只需一步,快速开始

查看: 2398|回复: 7

[其他发布] QQ本地会员补丁汇编源码

  [复制链接]
  • TA的每日心情
    奋斗
    2024-8-13 08:57
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]青行灯

    发表于 2013-8-24 16:35:00 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有账号?创建账号

    ×
    1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2. ;
    3. ;  QQ本地会员 源代码 [通过msimg32.dll劫持启动] shuax 2011.05.21
    4. ;  msimg32.Asm
    5. ;
    6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    7. .586
    8. .model flat, stdcall
    9. option casemap :none
    10.   
    11.   
    12.   
    13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    14. ;头文件
    15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    16. include          windows.inc
    17. include          kernel32.inc
    18. includelib        kernel32.lib
    19.   
    20.   
    21. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    22. ;全局变量
    23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    24. .data
    25. ;初始化的变量
    26. szCopyright        db        'QQLocalVIP by shuax',0
    27.   
    28. szMsimg32        db        '\msimg32.dll',0
    29. szKernelUtil      db        'KernelUtil.dll',0
    30.   
    31. szvSetDdrawflag      db        'vSetDdrawflag',0
    32. szDllInitialize      db        'DllInitialize',0
    33. szGradientFill      db        'GradientFill',0
    34. szAlphaBlend      db        'AlphaBlend',0
    35. szTransparentBlt    db        'TransparentBlt',0
    36.   
    37. szGetSelfUin      db        '?GetSelfUin@Contact@Util@@YAKXZ',0
    38. szIsFlagValid      db        '?IsFlagValid@Contact@Util@@YAHKK@Z',0
    39.   
    40. ;声明函数指针
    41. p_GetSelfUin      typedef proto   C          ;使用__cdecl
    42. p_IsFlagValid      typedef proto  C:DWORD,:DWORD    ;使用__cdecl
    43.   
    44. g_GetSelfUin      typedef ptr   p_GetSelfUin
    45. g_IsFlagValid      typedef ptr    p_IsFlagValid
    46.   
    47. GetSelfUin        g_GetSelfUin  0;判断是否是自己
    48. IsFlagValid        g_IsFlagValid  0
    49.   
    50. .data?
    51. ;未初始化的变量
    52. szSysDLL        BYTE MAX_PATH  DUP(?)
    53.   
    54. g_msimg32        dd        ?
    55. g_kernelutil      dd        ?
    56.   
    57. g_vSetDdrawflag      dd        ?
    58. g_DllInitialize      dd        ?
    59. g_GradientFill      dd        ?
    60. g_AlphaBlend      dd        ?
    61. g_TransparentBlt    dd        ?
    62.   
    63. g_bak          BYTE 10      DUP(?)
    64. g_jmp          BYTE 5      DUP(?)
    65.   
    66. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    67. ;代码
    68. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    69. .code
    70.   
    71. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    72. ;导出函数
    73. vSetDdrawflag proc
    74.   jmp g_vSetDdrawflag
    75. vSetDdrawflag endp
    76. DllInitialize proc
    77.   jmp g_DllInitialize
    78. DllInitialize endp
    79. GradientFill proc
    80.   jmp g_GradientFill
    81. GradientFill endp
    82. AlphaBlend proc
    83.   jmp g_AlphaBlend
    84. AlphaBlend endp
    85. TransparentBlt proc
    86.   jmp g_TransparentBlt
    87. TransparentBlt endp
    88.   
    89. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    90. ;本地会员
    91. MyIsFlagValid proc C QQUIN:DWORD, Flag:DWORD
    92. .IF Flag==4;是否是判断会员
    93. .IF GetSelfUin!=0
    94.       invoke GetSelfUin
    95. .IF QQUIN==eax          ;判断是否是自己,如果是则返回TRUE
    96.         mov eax, TRUE
    97.         jmp original
    98. .ENDIF
    99. .ENDIF
    100. .ENDIF
    101.   
    102. .IF IsFlagValid!=0
    103.     invoke IsFlagValid,QQUIN,Flag;调用原始函数
    104. .ENDIF
    105.   
    106. ;返回
    107. original:
    108.   mov esp,ebp   ;使用__cdecl
    109.   pop ebp
    110.   retn
    111. MyIsFlagValid endp
    112.   
    113. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    114. ;5字节inline hook
    115. HookCode proc TargetProc:DWORD, NewProc:DWORD
    116. ;参数检查
    117. .IF TargetProc == 0
    118.     ret
    119. .endif
    120.   
    121. ;使得g_bak区块可执行
    122. mov ecx,offset g_bak
    123.   mov IsFlagValid,ecx
    124.   invoke VirtualProtect,IsFlagValid,10,PAGE_EXECUTE_READWRITE,0
    125.   
    126. ;读取前5个字节
    127. invoke ReadProcessMemory,-1,TargetProc, IsFlagValid, 5, NULL;
    128. .IF eax!=0
    129. ;如果已经被hook过,则修正JMP偏移
    130. mov ecx,dword ptr [g_bak]
    131. .IF cl==0E9h
    132.       mov ecx,dword ptr [g_bak+1]
    133.       add ecx,TargetProc
    134. sub ecx,offset g_bak
    135.   
    136.       mov dword ptr [g_bak+1],ecx
    137. .endif
    138.   
    139. ;写入还原
    140. mov ecx,offset g_bak
    141.   
    142.     add ecx,5
    143.     mov byte ptr [ecx],0E9h
    144.     inc ecx
    145.   
    146.     mov eax,TargetProc
    147. sub eax,ecx
    148.     inc eax
    149.     mov dword ptr [ecx],eax
    150.   
    151. ;写入跳转
    152. mov eax,offset g_jmp
    153.     mov byte ptr [eax],0E9h
    154.     inc eax
    155.   
    156.     mov ecx,NewProc
    157. sub ecx,TargetProc
    158. sub ecx,5
    159.     mov dword ptr [eax],ecx
    160.   
    161.     invoke WriteProcessMemory,-1,TargetProc, addr g_jmp, 5, NULL
    162. .endif
    163.   ret
    164. HookCode endp
    165.   
    166. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    167. ;DllMain
    168. DllEntry proc hModule:HINSTANCE, dwReason:DWORD, lpReserved:DWORD
    169. .IF dwReason == DLL_PROCESS_ATTACH
    170. ;获得系统msimg32.dll地址
    171. invoke GetSystemDirectory,addr szSysDLL, MAX_PATH
    172.     invoke lstrcat,addr szSysDLL, addr szMsimg32
    173.     invoke LoadLibrary,addr szSysDLL
    174. .IF eax!=0
    175. ;获得各个函数地址
    176. mov g_msimg32,eax
    177.   
    178.       invoke GetProcAddress,g_msimg32,addr szvSetDdrawflag
    179.       mov g_vSetDdrawflag, eax
    180.   
    181.       invoke GetProcAddress,g_msimg32,addr szDllInitialize
    182.       mov g_DllInitialize, eax
    183.   
    184.       invoke GetProcAddress,g_msimg32,addr szGradientFill
    185.       mov g_GradientFill, eax
    186.   
    187.       invoke GetProcAddress,g_msimg32,addr szAlphaBlend
    188.       mov g_AlphaBlend, eax
    189.   
    190.       invoke GetProcAddress,g_msimg32,addr szTransparentBlt
    191.       mov g_TransparentBlt, eax
    192.   
    193. ;写入本地会员hook
    194.       invoke GetModuleHandle,addr szKernelUtil
    195. .IF eax!=0
    196.         mov g_kernelutil,eax
    197.   
    198.         invoke GetProcAddress,g_kernelutil,addr szGetSelfUin
    199.         mov GetSelfUin, eax
    200.   
    201.         invoke GetProcAddress,g_kernelutil,addr szIsFlagValid
    202.         invoke HookCode,eax,MyIsFlagValid
    203.   
    204. ;打印版权信息
    205. invoke OutputDebugString,addr szCopyright
    206. .ENDIF
    207. .ENDIF
    208. .ENDIF
    209.   mov eax, TRUE
    210.   ret
    211. DllEntry Endp
    212.   
    213. End DllEntry

    214. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  QQ本地会员 源代码 [采用msimg32.dll劫持] shuax 2011.05.21;  msimg32.Def;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;LIBRARY "msimg32.DLL"EXPORTS    vSetDdrawflag    DllInitialize    GradientFill    AlphaBlend    TransparentBlt
    复制代码

    评分

    参与人数 2贡献 +8 金钱 +46 收起 理由
    liwanglin12 -2 -4 无聊……
    三个小石头 + 10 + 50 赞一个!

    查看全部评分

  • TA的每日心情
    奋斗
    2022-7-24 22:49
  • 签到天数: 291 天

    连续签到: 1 天

    [LV.8]荒川之主

    发表于 2013-8-24 17:35:30 | 显示全部楼层
    虽然看不懂 但也不知道有什么用
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-30 23:28
  • 签到天数: 302 天

    连续签到: 1 天

    [LV.8]荒川之主

    发表于 2013-8-24 20:01:56 | 显示全部楼层
    11年耍下的源码..还有用?
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-8-13 08:57
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]青行灯

     楼主| 发表于 2013-8-24 20:49:25 | 显示全部楼层
    836955823 发表于 2013-8-24 20:01
    11年耍下的源码..还有用?

    必须有用,修改下就好







      神奇的:Opera/9.80 (Windows NT 6.2; WOW64; U; OperaDot; zh-cn) Presto/2.10.229 Version/11.64  (zh-cn)
      ┈─━ 你的幸福是我的快乐!(+^_^*)
      ——┃俺为尾巴代言←
               
      回复

      使用道具 举报

    • TA的每日心情
      开心
      昨天 16:43
    • 签到天数: 1887 天

      连续签到: 1 天

      [LV.Master]酒吞童子

      发表于 2013-8-24 21:45:38 | 显示全部楼层
      耍X很了不起的
      回复

      使用道具 举报

    • TA的每日心情
      开心
      昨天 16:43
    • 签到天数: 1887 天

      连续签到: 1 天

      [LV.Master]酒吞童子

      发表于 2013-8-24 21:58:45 | 显示全部楼层
      知道怎么改有用也很了不起
      回复

      使用道具 举报

    • TA的每日心情
      郁闷
      2022-10-24 01:17
    • 签到天数: 889 天

      连续签到: 1 天

      [LV.10]茨木童子

      发表于 2013-8-24 23:19:32 | 显示全部楼层
      围观,不明觉厉
      回复

      使用道具 举报

    • TA的每日心情
      擦汗
      2023-10-4 10:37
    • 签到天数: 221 天

      连续签到: 1 天

      [LV.7]雪女

      发表于 2013-8-26 11:08:58 | 显示全部楼层
      有易语言的吗
      回复

      使用道具 举报

      您需要登录后才可以回帖 登录 | 创建账号

      本版积分规则

      Archiver|手机版|小黑屋|iYa.App 软件交流社区

      GMT+8, 2024-12-26 00:30 , Processed in 0.037107 second(s), 19 queries .

      Powered by Discuz! X3.5

      © 2001-2024 Discuz! Team.

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