local mem = require "memory" mem . copy ( 0x8D0444 , mem . strptr ( "\x36\x46\x45\x50\x5F\x52\x45\x53\x00\x0B\x00\x00\x40\x01\xAA\x00\x03\x00\x05\x46\x45\x48\x5F\x4D\x41\x50\x00\x0B\x05\x00\x40\x01\xC8\x00\x03\x00\x05\x46\x45\x50\x5F\x4F\x50\x54\x00\x0B\x21\x00\x40\x01\xE6\x00\x03\x00\x05\x46\x45\x50\x5F\x51\x55\x49\x00\x0B\x23\x00\x40\x01\x04\x01\x03\x00" ) , 72 ) mem . fill ( 0x8D048C , 0 , 144 ) mem . write ( 0x8CE47B , 1 , 1 ) mem . write ( 0x8CFD33 , 2 , 1 ) mem . write ( 0x8CFEF7 , 3 , 1 )
SignatureScanner sig_scan ; if ( sig_scan . GetProcess ( "gta_sa.exe" ) ) { module mod = sig_scan . GetModule ( "SignatureTest.exe" ) ; std :: uint64_t address = sig_scan . FindSignature ( mod . dwBase , mod . dwSize , "\x36\x46\x45\x50\x5F\x52\x45\x53\x00\x0B\x00\x00\x40\x01\xAA\x00\x03\x00\x05\x46\x45\x48\x5F\x4D\x41\x50\x00\x0B\x05\x00\x40\x01\xC8\x00\x03\x00\x05\x46\x45\x50\x5F\x4F\x50\x54\x00\x0B\x21\x00\x40\x01\xE6\x00\x03\x00\x05\x46\x45\x50\x5F\x51\x55\x49\x00\x0B\x23\x00\x40\x01\x04\x01\x03\x00" , "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ) ; }
memory . fill ( int address , int value , uint size , [ bool unprotect = false ] )
void * memset ( void * dest , int ch , std :: size_t count ) ;
memory . write ( int address , int value , uint size , [ bool unprotect = false ] )
void * memcpy ( void * dest , const void * src , std :: size_t count ) ;