kopiering af kode i runtime
Kan man i c ( msvc 71 ) kopierer noget kompileret kode over i et array og bagefter kalde det med en funktions pointer som peger på en addresse der svarer til det sted man kopierede over i arrayet ?jeg har prøvet noget ala det her men det fejler når jeg kører funktionern.
#define FUNC_ADDR(func) func
static int func_copy( int* param1 ) {
int i=0;
int x=24;
i += *param1;
x++;
x+=i;
x++;
x+=i;
return i;
}
int main(void)
{
BYTE opCodes[0xFF];
int (*pt2Function)( int* ) = 0; //opCodes;
int rv = 0;
memcpy(opCodes, FUNC_ADDR(func_copy), 0xFF);
pt2Function = opCodes;
rv = (*pt2Function)(0);
printf( "rv = %i" , rv );
}