man kann doch mit cheat engine auch assembler scripts ausführen oder ?
Jedenfalls hab ich das früher so in etwa gemacht:
Code:
void PickUpHack()
{
DWORD xxx = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( baseadr )));;
xxx += 0x1C;
xxx = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( xxx)));
xxx += 0x10;
xxx = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( xxx )));
xxx += 0x04;
xxx = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( xxx)));
DWORD * ecx = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( baseadr )));
DWORD oldprotection = 0;
// ?SendPickMessage@CNetworkLibrary@@QAEXPAVCEntity@@KH@Z
typedef int ( __thiscall * SendPickMessageType )( DWORD * ecx, DWORD centity, unsigned long itemid, BOOL bLayerCheck );
SendPickMessageType SendPickMessage = (SendPickMessageType)GetProcAddress( GetModuleHandle("engine"), "?SendPickMessage@CNetworkLibrary@@QAEXPAVCEntity@@KH@Z" );
DWORD adr = (DWORD)SendPickMessage;
adr += 0x1C;
adr = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( adr )));
reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( adr ))) = 1;
DWORD itemid = 0;
DWORD numberofitems = *(DWORD*)baseadr;
numberofitems = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>(numberofitems+0x1C)));
numberofitems = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>(numberofitems+0x4C))); // 0x2C == Number of Player | 0x4C == number of items
if( numberofitems )
{
if ( checkinventoryspace() )
{
DWORD firstradaritem = *(DWORD*)baseadr;
firstradaritem = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>(firstradaritem +0x1C)));
firstradaritem = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>(firstradaritem +0x48)));
for( unsigned int i = 0; i < numberofitems; ++i )
{
itemid = reinterpret_cast<DWORD*>(*( reinterpret_cast<DWORD*>( firstradaritem+( 0x90 * i ) )));
SendPickMessage( ecx, xxx, itemid, FALSE );
Sleep(200);
}
}
}
}
Wäre mit Assembler natürlich auch möglich ( der Code ist für eine DLL ).
Nebenbei könnte man natürlich auch einfach eine beschreibbare leere Stelle im Code
suchen dort den Assemblercode dafür schreiben und dann zb die Drawschleife
darauf umleiten. Es gibt einige möglichkeiten jedoch etwas komplizierter als
selber einfach n hack zu erstellen.