⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stub.cpp

📁 QQ2009组件管理源码
💻 CPP
字号:
#include "stdafx.h"
#include "bgwnd.h"

#define FUNMAX 5
static DWORD FuncStable1=NULL;
static DWORD FuncStable2=NULL;
static DWORD FuncStable3=NULL;
static DWORD FuncStable4=NULL;
static DWORD FuncStable5=NULL;
static DWORD* FuncStable[FUNMAX]=
{
	&FuncStable1,
	&FuncStable2,
	&FuncStable3,
	&FuncStable4,
	&FuncStable5
};
static CHAR* FuncStr[FUNMAX]=
{
	"vSetDdrawflag",
	"AlphaBlend",
	"DllInitialize",
	"GradientFill",
	"TransparentBlt"
};
#pragma comment(linker, "/EXPORT:vSetDdrawflag@1=MyFunc1")
#pragma comment(linker, "/EXPORT:AlphaBlend@2=MyFunc2")
#pragma comment(linker, "/EXPORT:DllInitialize@3=MyFunc3")
#pragma comment(linker, "/EXPORT:GradientFill@4=MyFunc4")
#pragma comment(linker, "/EXPORT:TransparentBlt@5=MyFunc5")

void _declspec(naked) MyFunc1(void)
{
   __asm PUSH EBP
   __asm MOV EBP, ESP
   __asm PUSH ECX
   __asm POP ECX
   __asm POP EBP
   __asm JMP FuncStable1
};

void _declspec(naked) MyFunc2(void)
{
   __asm PUSH EBP
   __asm MOV EBP, ESP
   __asm PUSH ECX
   __asm POP ECX
   __asm POP EBP
   __asm JMP FuncStable2
};

void _declspec(naked) MyFunc3(void)
{
   __asm PUSH EBP
   __asm MOV EBP, ESP
   __asm PUSH ECX
   __asm POP ECX
   __asm POP EBP
   __asm JMP FuncStable3
};

void _declspec(naked) MyFunc4(void)
{
   __asm PUSH EBP
   __asm MOV EBP, ESP
   __asm PUSH ECX
   __asm POP ECX
   __asm POP EBP
   __asm JMP FuncStable4
};

void _declspec(naked) MyFunc5(void)
{
	__asm PUSH EBP
	__asm MOV EBP, ESP
	__asm PUSH ECX
	__asm POP ECX
	__asm POP EBP
	__asm JMP FuncStable5
};

CBGWnd g_bgwnd;
static BOOL bInQQ09=FALSE;

BOOL StartStub()
{
	TCHAR szLib[MAX_PATH];
	HINSTANCE hLib=NULL;
	GetSystemDirectory(szLib,MAX_PATH);
	_tcscat(szLib,_T("\\MSIMG32.dll"));
	hLib=LoadLibrary(szLib);
	if (NULL==hLib) return FALSE;
	for (int i=0;i<FUNMAX;i++)
	{
		*FuncStable[i]=(DWORD)GetProcAddress(hLib,FuncStr[i]);
	}

	bInQQ09=(GetModuleHandle(_T("KernelUtil.dll")) && GetModuleHandle(_T("qq.exe")));
	if (bInQQ09)
	{
		g_bgwnd.Init();
	}

	return TRUE;
}

void StopStub()
{
	if (bInQQ09)
	{
		g_bgwnd.Delete();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -