elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema copiandose a si mismo a system32
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema copiandose a si mismo a system32  (Leído 2,130 veces)
Dryken

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
Problema copiandose a si mismo a system32
« en: 18 Agosto 2012, 18:20 pm »

Pretendo que al ejecutar el programa, éste se autocopie a la ruta system32, detectando por sí mismo en que ruta se ha ejecutado.

El código a simple vista parece que funciona, lo llamas copiar.exe y debería de copiarse pero surge un problema a la hora de ejecutarse.

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3. main(){
  4.  
  5. char path[256];
  6. char nombre[60]="copiar";
  7. char* ruta=getenv("windir"); //obtiene la ruta de la instalacion de windows
  8.  
  9. strcat(ruta,"\\System32\\"); //agrega System32 a la ruta
  10. strcat(nombre,".exe"); //agrega .exe a wnws
  11. strcat(ruta,nombre); //agrega wnws.exe a C:\WINDOWS\System32
  12. HMODULE exe = GetModuleHandle(0); //nos retornara un handle al archivo usado para crear el proceso de llamada
  13. GetModuleFileName(exe, path, 256); //obtien la ruta de si mismo
  14. CopyFile(path,ruta,false); //se copia a la carpeta System32
  15. }


En línea

Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html
burbu_1

Desconectado Desconectado

Mensajes: 159


hamen gaoz


Ver Perfil
Re: Problema copiandose a si mismo a system32
« Respuesta #1 en: 18 Agosto 2012, 19:03 pm »

tal vez sea por los permisos.... has probado a ejecutarlo como administrador, para copiar archivos en esa ruta necesitar serlo...  :P

y otra cosilla, según  la info de la msdn para el primer parámetro de GetModuleFileName
Citar
If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.
por lo que puedes sustituir
Código
  1. HMODULE exe = GetModuleHandle(0); //nos retornara un handle al archivo usado para crear el proceso de llamada
  2. GetModuleFileName(exe, path, 256); //obtien la ruta de si mismo
por
Código
  1. GetModuleFileName(0, path, 256); //obtien la ruta de si mismo


En línea

Dryken

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
Re: Problema copiandose a si mismo a system32
« Respuesta #2 en: 19 Agosto 2012, 16:10 pm »

Compañero he probado a ejecutarlo como administrador para ver si así permite copiarlo en la ruta pero no funciona, dudo que ese sea el problema para que vaya.

También he probado a sustituirlo por el GetModuleFileName que me has pasado, es verdad que a apariencia debería de ir pero no es así, debería de ser otra cosa u haber otra solución.
En línea

Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Problema copiandose a si mismo a system32
« Respuesta #3 en: 19 Agosto 2012, 16:38 pm »

Depuralo, si GetLastError es 5 entonces es ACCESS_DENIED: ejecutalo como administrador correctamente. Otra cosa es que no deberias tratar a la cadena devuelta por getenv como si fuera un buffer propio, reserva memoria suficiente (estatica o dinamica, da igual).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como instalar 2 quemadores para que quemen lo mismo y al mismo tiempo
Software
vale 2 6,925 Último mensaje 7 Octubre 2005, 00:07 am
por Mordor
ejecutar el mismo programa varia veces al mismo tiempo
Dudas Generales
narizota 3 9,847 Último mensaje 8 Enero 2011, 17:25 pm
por simorg
¿Cómo utilizar dos Rocket Docks al mismo tiempo en un mismo PC? (SOLUCIONADO)
Software
vincent13m 5 8,926 Último mensaje 14 Agosto 2011, 02:04 am
por vincent13m
Problema el mismo se delata « 1 2 »
Dudas Generales
ANTRUCK 13 7,370 Último mensaje 12 Julio 2011, 10:42 am
por skapunky
Problema con System32
GNU/Linux
C13 4 12,413 Último mensaje 29 Noviembre 2023, 04:48 am
por D3s0rd3n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines