Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Joiner en 1 Septiembre 2007, 17:42 pm



Título: Error 53:File not found
Publicado por: Joiner en 1 Septiembre 2007, 17:42 pm
He estado probando de hacer un programa que copiara los datos de un ejecutable y creara otro archivo tambien ejecutable con los datos, el problema es el siguiente,copia los ejecutables , pero el ejecutable resultante no se ejecuta, lo he mirado con un editor hexadecimal y son identicos los dos, que es lo que no he tenido en cuenta y hace que falle?
El codigo
dim s as string
dim i as integer
i= freefile
open "E:\project1.exe" for binary as #i
s=input(LOF(1),1)
close #i
i=freefile
open "c:\prueba.exe" for binary as #i
put #i,1,s
close #i

Alguien sabe donde esta el fallo? Si alguien sabe otra forma de hacerlo le agradeceria que me lo explicara

Muchas gracias


Título: Re: Error 53:File not found
Publicado por: APOKLIPTICO en 1 Septiembre 2007, 17:45 pm
Primero, para copiar un archivo existe FileCopy().
Segundo, hay un programa que se llama FC (está bajo cmd), que compara dos archios.
Para archivos binary, te conviene usar get en vez de input.
Saludos!


Título: Re: Error 53:File not found
Publicado por: Joiner en 1 Septiembre 2007, 22:15 pm
Lo que queria era hacerlo directamente con las instruciones basicas sin usar APIS, ni otros programas como seria el FC, ya mirare si es debido al FC


Título: Re: Error 53:File not found
Publicado por: HaDeS, - en 1 Septiembre 2007, 22:53 pm
Lo que pasa, es que en la primera parte cuando abres el archivo y lees su contenido, estas usando un canal diferente al que usaste, mira el codigo corregido:
Código
  1. Dim s As String
  2. Dim i As Integer
  3. i = FreeFile
  4. Open "c:\project1.exe" For Binary As #i
  5. s = Input(LOF(i), #i)
  6. Close #i
  7. i = FreeFile
  8. Open "c:\prueba.exe" For Binary As #i
  9. Put #i, 1, s
  10. Close #i
  11.  

Si lo que queres es ejecutar ese programa sin usar ninguna api, agrega una linea al final con esto:
Código
  1. shell "c:\prueba.exe"
  2.  

Espero que te haya servido de algo, saludos ;)