Hi,
Also ich denke mal das das sehr einfach zu cracken währe und ich möchte das natürlich möglichst vermeiden und dabei die funktionalität erhalten.Gäbe es denn bei so einer verwendung überhaupt eine möglichkeit die Variablen die in Func stehen davor zu schützen verändert zu werden?
Sagen wir mal ich mache das Array jetzt Konstant, ändert das ürgentwas im Assembler Code?
Code:
struct Command{
char Command[3];
DWORD (*Func)(char *);
};
DWORD MSGFunc ( char * Buffer ){
}
DWORD SFTFunc ( char * Buffer ){
}
DWORD CMDFunc ( char * Buffer ){
}
Command cArray [] = { { "MSG" , MSGFunc },// Schwachstelle
{ "SFT" , SFTFunc },
{ "CMD" , CMDFunc } };
class MHandler{
DWORD ProcessMessage(char * );
};
DWORD MHandler::ProcessMessage(char * Buffer ){
DWORD RetV = NULL;
for ( int i = 0; i < sizeof(cArray)/sizeof(Command); i++){
if ( !strncmp(Buffer,cArray[i].Command,3) )RetV = cArray[i].Func(Buffer);
}
return RetV;
}
Also ich denke mal das das sehr einfach zu cracken währe und ich möchte das natürlich möglichst vermeiden und dabei die funktionalität erhalten.Gäbe es denn bei so einer verwendung überhaupt eine möglichkeit die Variablen die in Func stehen davor zu schützen verändert zu werden?
Sagen wir mal ich mache das Array jetzt Konstant, ändert das ürgentwas im Assembler Code?