示例#1
0
void CServer::CheckPlayerLevelHook( )
{
	lpAsm->MakeBaseAddress( ( int )EditData );
	lpAsm->Push( EBX );
	lpAsm->Call( ( int )&_CheckPlayerLevel );
	lpAsm->AddEsp( 4 );
	lpAsm->Test( EAX, EAX );
	lpAsm->Je( 0x00571A43 );
	lpAsm->Jmp( 0x00571A04 );
	lpAsm->SetLastAddress( );
	lpAsm->MakeBaseAddress( ( int )0x005719FB );
	lpAsm->Jmp( ( int )EditData );
	lpAsm->FillNops( 4 );
	lpAsm->AtualizeAddress( &EditData, true );
};
示例#2
0
void CServer::PacketHook( )
{
	lpAsm->MakeBaseAddress( ( int )EditData );
	lpAsm->Push( EAX );
	lpAsm->Push( EBP );
	lpAsm->Push( EDI );
	lpAsm->Call( ( int )&_ReceivedPacket );
	lpAsm->AddEsp( 8 );
	lpAsm->Pop( EAX );
	lpAsm->Cmp( ESI, 0x48478400 );
	lpAsm->Jmp( 0x0056F527 );
	lpAsm->SetLastAddress( );
	lpAsm->MakeBaseAddress( ( int )0x0056F521 );
	lpAsm->Jmp( ( int )EditData );
	lpAsm->FillNops( 1 );
	lpAsm->AtualizeAddress( &EditData, true );
};