Muchas veces no se basa solo en el ejecutable , me ha tocado ver programas q verifican dicho registro en una DLL que metieron en windows/sytem32 por ejemplo .. Utiliza filemon.. al momento de tratar de registrarlo asi te daras cuenta si revisa en el .exe o en otro lado.
Quieres que una llave de registro de ejecute cada vez que inicias windows?
Por que no la grabas directamente en la entrada correspondiente?.. Ó es que el programa que la requiere no lo permite ó es que la elimina o cambie en cada inicio?
Si tienes conocimientos de programacion.. crea un programa que se dedique a agregar dicha llave al registro cada que incie.. en Windows XP lo agregas a servicios y en Windows ME a los archivos de inicio.
Aun asi.. dar dos clicks se me hace muy poco para tener un programa de por vida.
Lo mas probable es q tengas un programa "hackeado" para UPX(ya sabeis esos q modifican cierta parte para no permitir que se desempaque con UPX tradicional).
Intanta bajar un compresor original de UPX e intenta desinstalarlo con upx.exe -d programa.exe
Si te indica que fue hackeado ó que no lo puede descomprimir, lo mas seguro es que este comprimido y parcheado con algo como UPXShit,UPXScramble..etc..
El PEiD cuenta con varios plugins para detectar e incluso para desempacar programa de UPX Modificados. Utiliza el plugin de Crypto Analyzer y si te da algun resultado como :
CRC32:: 0000XXX :: 00xxxxxxx
Entonces fue modificado el archivo comprimido con UPX.
Hay varios manuales para desempacar estas joyitas.. y los puedes encontrar en la lista de correo de cracklatinos:
hxxp://www.crackslatinos.hispadominio.net
En este caso q te menciono solo seria cuestion de cambiar el CRC32 con un plugin con el q tambien cuenta el PEiD.
Aunque tambien existen scripts de Olly q lo hacen automatico
Yo en lo personal te recomendaria renombrar los programas q digan "crack.exe" con algo como "__crack.exe" asi es casi imposible que lo detecten. Yo cierta vez en un programa llamado system mechanic hace lo mismo pero con la trivialidad de que si encuentra algun programa funcionando con el nombre "keyxxx.xxx" reinicia el ordena. La forma mas facil ahi fue parchear esa "proteccion" .
No importa si revisa la info en el server..localiza la llamada q hace al server y parcheala.. lo mas comun es nopearla para eviatar q haga comprobaciones en el server..asi puedes limpiar las demas limitantes.
No te fies si Filemon te dice q revisa tal o cual el programa puede ser q solo haga un scan del disco mas no q busque un nombre en expecifico.. eso chekalo poniendo un BPX generico. Ademas si cuenta con esa proteccion tambien contara con alguna para el debugger.