吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8031|回复: 18
收起左侧

[其他转载] QQ本地会员补丁汇编源码

  [复制链接]
lkou 发表于 2013-4-22 10:05
把msimg32.dll放在bin下面就行了。


[C] 纯文本查看 复制代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;  QQ本地会员 源代码 [通过msimg32.dll劫持启动] shuax 2011.05.21
;  msimg32.Asm
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.586
.model flat, stdcall
option casemap :none
 
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;头文件
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
include          windows.inc
include          kernel32.inc
includelib        kernel32.lib
 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;全局变量
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.data
;初始化的变量
szCopyright        db        'QQLocalVIP by shuax',0
 
szMsimg32        db        '\msimg32.dll',0
szKernelUtil      db        'KernelUtil.dll',0
 
szvSetDdrawflag      db        'vSetDdrawflag',0
szDllInitialize      db        'DllInitialize',0
szGradientFill      db        'GradientFill',0
szAlphaBlend      db        'AlphaBlend',0
szTransparentBlt    db        'TransparentBlt',0
 
szGetSelfUin      db        '?GetSelfUin@Contact@Util@@YAKXZ',0
szIsFlagValid      db        '?IsFlagValid@Contact@Util@@YAHKK@Z',0
 
;声明函数指针
p_GetSelfUin      typedef proto   C          ;使用__cdecl
p_IsFlagValid      typedef proto  C:DWORD,:DWORD    ;使用__cdecl
 
g_GetSelfUin      typedef ptr   p_GetSelfUin
g_IsFlagValid      typedef ptr    p_IsFlagValid
 
GetSelfUin        g_GetSelfUin  0;判断是否是自己
IsFlagValid        g_IsFlagValid  0
 
.data?
;未初始化的变量
szSysDLL        BYTE MAX_PATH  DUP(?)
 
g_msimg32        dd        ?
g_kernelutil      dd        ?
 
g_vSetDdrawflag      dd        ?
g_DllInitialize      dd        ?
g_GradientFill      dd        ?
g_AlphaBlend      dd        ?
g_TransparentBlt    dd        ?
 
g_bak          BYTE 10      DUP(?)
g_jmp          BYTE 5      DUP(?)
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.code
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;导出函数
vSetDdrawflag proc
  jmp g_vSetDdrawflag
vSetDdrawflag endp
DllInitialize proc
  jmp g_DllInitialize
DllInitialize endp
GradientFill proc
  jmp g_GradientFill
GradientFill endp
AlphaBlend proc
  jmp g_AlphaBlend
AlphaBlend endp
TransparentBlt proc
  jmp g_TransparentBlt
TransparentBlt endp
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;本地会员
MyIsFlagValid proc C QQUIN:DWORD, Flag:DWORD
.IF Flag==4;是否是判断会员
.IF GetSelfUin!=0
      invoke GetSelfUin
.IF QQUIN==eax          ;判断是否是自己,如果是则返回TRUE
        mov eax, TRUE
        jmp original
.ENDIF
.ENDIF
.ENDIF
 
.IF IsFlagValid!=0
    invoke IsFlagValid,QQUIN,Flag;调用原始函数
.ENDIF
 
;返回
original:
  mov esp,ebp   ;使用__cdecl
  pop ebp
  retn
MyIsFlagValid endp
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;5字节inline hook
HookCode proc TargetProc:DWORD, NewProc:DWORD 
;参数检查
.IF TargetProc == 0
    ret
.endif
 
;使得g_bak区块可执行
mov ecx,offset g_bak
  mov IsFlagValid,ecx
  invoke VirtualProtect,IsFlagValid,10,PAGE_EXECUTE_READWRITE,0
 
;读取前5个字节
invoke ReadProcessMemory,-1,TargetProc, IsFlagValid, 5, NULL;
.IF eax!=0
;如果已经被hook过,则修正JMP偏移
mov ecx,dword ptr [g_bak]
.IF cl==0E9h
      mov ecx,dword ptr [g_bak+1]
      add ecx,TargetProc
sub ecx,offset g_bak
 
      mov dword ptr [g_bak+1],ecx
.endif
 
;写入还原
mov ecx,offset g_bak
 
    add ecx,5
    mov byte ptr [ecx],0E9h
    inc ecx
 
    mov eax,TargetProc
sub eax,ecx
    inc eax
    mov dword ptr [ecx],eax
 
;写入跳转
mov eax,offset g_jmp
    mov byte ptr [eax],0E9h
    inc eax
 
    mov ecx,NewProc
sub ecx,TargetProc
sub ecx,5
    mov dword ptr [eax],ecx
 
    invoke WriteProcessMemory,-1,TargetProc, addr g_jmp, 5, NULL
.endif
  ret
HookCode endp
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DllMain
DllEntry proc hModule:HINSTANCE, dwReason:DWORD, lpReserved:DWORD
.IF dwReason == DLL_PROCESS_ATTACH
;获得系统msimg32.dll地址
invoke GetSystemDirectory,addr szSysDLL, MAX_PATH
    invoke lstrcat,addr szSysDLL, addr szMsimg32
    invoke LoadLibrary,addr szSysDLL
.IF eax!=0
;获得各个函数地址
mov g_msimg32,eax
 
      invoke GetProcAddress,g_msimg32,addr szvSetDdrawflag
      mov g_vSetDdrawflag, eax
 
      invoke GetProcAddress,g_msimg32,addr szDllInitialize
      mov g_DllInitialize, eax
 
      invoke GetProcAddress,g_msimg32,addr szGradientFill
      mov g_GradientFill, eax
 
      invoke GetProcAddress,g_msimg32,addr szAlphaBlend
      mov g_AlphaBlend, eax
 
      invoke GetProcAddress,g_msimg32,addr szTransparentBlt
      mov g_TransparentBlt, eax
 
;写入本地会员hook
      invoke GetModuleHandle,addr szKernelUtil
.IF eax!=0
        mov g_kernelutil,eax
 
        invoke GetProcAddress,g_kernelutil,addr szGetSelfUin
        mov GetSelfUin, eax
 
        invoke GetProcAddress,g_kernelutil,addr szIsFlagValid
        invoke HookCode,eax,MyIsFlagValid
 
;打印版权信息
invoke OutputDebugString,addr szCopyright
.ENDIF
.ENDIF
.ENDIF
  mov eax, TRUE
  ret
DllEntry Endp
 
End DllEntry 

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

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jacky520510 发表于 2013-4-22 10:55
虽然现在看的不是很明白,先拿来用下,走通了慢慢研究
pxhb 发表于 2013-4-22 10:15
hackerait 发表于 2013-4-22 10:20
这只猪 发表于 2013-4-22 10:43
哇,大神!膜拜
雨雪迷蒙 发表于 2013-4-22 11:13
这个怎么用的,望高手指点!
1002217709 发表于 2013-4-22 11:24
膜拜,表示这个都有,简直不会用
bin454016008 发表于 2013-5-6 22:24
本地会员也有?难不成是TX的BUG?
you392677102 发表于 2013-5-8 21:05
小白完全看不懂- -,机器语言?
cxj98 发表于 2013-5-9 00:04
叉,这也行啊,TX不封才怪。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-22 07:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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