por alxsts » 15 Mar 2010 14:09
Olá!
Para a tua necessidade de identificar um .Exe genérico talvez a dica do Rochinha, acima, funcione. Por curiosidade, abri cinco executáveis e em todos encontrei "MZ" nos bytes 1 e 2. Não encontrei "MZP".
Quanto à outra situação, você pode, através de outro programa (pode ser o instalador do sistema), fazer o seguinte:
- abrir o executável do teu sistema com FOpen()
- posicionar o ponteiro no final do arquivo com FSeek( nHandle, 0, FS_END )
- escrever alguma chave ou assinatura (que o teu sistema possa validar posteriormente, em tempo de execução) com FWrite e fechar o arquivo com FClose().
Quando o teu aplicativo for executado, ele deverá abrir a si próprio, recuperar os bytes gravados acima e validar essa assinatura (talvez contra uma chave encriptada gravada em algum arquivo de parâmetros ou .INI).
Esse processo não corrompe o arquivo executável.
[]´s
Alexandre Santos (AlxSts)