Buenas gente, estaba escribiendo algún malware y llegado el momento de instalarse necesito que se copie en el directorio "C:\Windows" y necesito permisos de root, he estado buscando bastante por google, y parece que hay funciones para unix, a través de las cuales puedes adquirir el root para ejecutar el programa, yo solo quiero que mi programa al ejecutar tenga permisos de root para poder copiarse en ese directorio, ahora estoy trabajando el C++, soy nuevo pero me adaptaré rápido espero xD.
Confío en que sepáis algo sobre el tema, toda ayuda es bienvenida.
Edito: He estado mirando cosas para hacerlo, quizás con chmod() podría eliminar privilegios del directorio en cuestión. Pero seguramente necesite permisos para usarla no se si windows me pondra en el .exe la opción de correr como administrador, estaría bien.
Edito: No entiendo, si tengo este código:
No entiendo porque para poder ejecutar el move hacia el directorio necesito clicar botón derecho en el programa y ejecutar como administrador, eso ya lo tenía sin hacer nada, lo que quiero es que no tengas que dar al botón derecho, que directamente el programa al darlo click te diga que va a ser ejecutado como administrador (aunque eso solo la primera ejecución luego estaría ya copiado y no necesitaría permisos).
Se supone que le di permisos de escritura al archivo, y me los concedió entonces ¿por qué tengo que ejecutarlo como administrador para hacer el move?
Yo quiero que salga igual que cuando vamos a instalar un programa nos pide permisos, (no se puede correr sin los permisos), y que cuando se instale ya no necesite pedir permisos más, como cualquier programa que instalamos vamos.
Edito: He encontrado esto, ¿cómo debería aplicarlo al código para que me funcionara?
http://msdn.microsoft.com/en-us/library/bb756929.aspx
También mediante makefiles se puede incrustar el manifiesto:
http://msdn.microsoft.com/es-es/library/ms235591.aspx
Saludos.
Confío en que sepáis algo sobre el tema, toda ayuda es bienvenida.
Edito: He estado mirando cosas para hacerlo, quizás con chmod() podría eliminar privilegios del directorio en cuestión. Pero seguramente necesite permisos para usarla no se si windows me pondra en el .exe la opción de correr como administrador, estaría bien.
Edito: No entiendo, si tengo este código:
Código (cpp) [Seleccionar]
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <windows.h>
using namespace std;
int main()
{
int permisos;
permisos=_chmod("C:\\Users\\...\\programa.exe",_S_IWRITE);
if(permisos==-1)
{
printf("Error al dar permisos al archivo.");
}
else
{
printf("Éxito al dar permisos al archivo.");
}
system("move programa.exe C:\\Windows");
getchar();
return 0;
}
No entiendo porque para poder ejecutar el move hacia el directorio necesito clicar botón derecho en el programa y ejecutar como administrador, eso ya lo tenía sin hacer nada, lo que quiero es que no tengas que dar al botón derecho, que directamente el programa al darlo click te diga que va a ser ejecutado como administrador (aunque eso solo la primera ejecución luego estaría ya copiado y no necesitaría permisos).
Se supone que le di permisos de escritura al archivo, y me los concedió entonces ¿por qué tengo que ejecutarlo como administrador para hacer el move?
Yo quiero que salga igual que cuando vamos a instalar un programa nos pide permisos, (no se puede correr sin los permisos), y que cuando se instale ya no necesite pedir permisos más, como cualquier programa que instalamos vamos.
Edito: He encontrado esto, ¿cómo debería aplicarlo al código para que me funcionara?
http://msdn.microsoft.com/en-us/library/bb756929.aspx
También mediante makefiles se puede incrustar el manifiesto:
http://msdn.microsoft.com/es-es/library/ms235591.aspx
Saludos.