Hola, estoy necesitando en ejemplo vb que pueda abrir un archivo (*.exe), que lo haga dentro del mismo formulario en "modo bynario",y una función que lo pueda guardar en (*.exe) nuevamente.
Mira, acabo de terminar un programa que lo he llamado Inyector y me han surjido varios problemas. Para sacar los datos de un ejecutable se utiliza Get, y estos datos deben de almacenarse en una variable string con limitaciones, ejemplo:
Dim size As String * 50006 'bytes
El problema es que las limitaciones estás como bien dicen tienen un límite que rondan por los 65000 o por ahí, eso quiere decir que si el archivo pesa 100kb no puedo cojer su código con la función Get, probé haciendo Dim size As String * FileLen("C:\fichero.exe"), pero las limitaciones deben de ser un número o una constante y a una constante no le puedo dar esos datos, a ver si me pueden ayudar.
pues puedes dividir el archivo en las partes k necesites.
dim Trozos as integer
dim i as integer
dim datos as string * 65000
Trozos = FileLen("lala") / 65000
open "lala" for binary as #1
for i = 1 to trozos
get #1,, datos
'aces lo k keras con ellos
next
close #1
Salu2, no tengo el vb aki, corregid errores
Cierto, acabo de recordar un artículo que comentaba sobre la transferencia de bytes mediante el control winsock, que para un proceso mejor se debian transmitir los bytes 1 a 1.
Voy a terminar el código, cuando lo tenga lo publico.
pero eso de byte a byte es por que al mandarlo por internet, si mandas paketes muy grandes no llegan y ocuan much0 ancho de banda, pero para trabajar en el ekipo usa lo k te e dixo, el maximo, se hacen menos divisiones y es mucho mas rapido
Salu2
Lo que no entiendo es porque lo divides entre 65000...
no dices k los maximos datos k te deja cargar en el string son 65000?
Salu2
Bueno sí, pero eso me daría números decimales, si no me equivoco se tendría que usar \ .
Si el estring le defines como EOF te cabe todo el archivo ;D
Rey EOF es el principio del archivo, LOF el final.
Dim Tamaño as string
open "C:\lala.exe" for binary as #1
Tamaño = Space$(LOF(1))
get #1,,Tamaño
CLose #1
Te vale ? ;)
Salu2
Dim size As String * 1, i As Long
Open txtRuta1.Text For Binary As #1
Open txtRuta2.Text For Binary As #2
For i = 1 To FileLen(txtRuta1.Text)
Get #1, i, size
Put #2, LOF(2) + 1, size
Next
Close #2
Close #1
Ahí os dejo el código que he programado y uno compilado también: http://www.polarhome.com/~yeik0s/software/InyectFilev1.0.zip
oigan lo k yo quiero saber es komo guardar un *.exe dentro de otro, asi cuando lo abran el ejecutable les pedira una direccion para guardarlo en mi PC , soy nuevo n el foro- :P gracias
HOLA!!!
... Tema de 5 años de antiguedad, no revivas.
En cuanto a la duda, busca sobre builders, crypters y stubs. ( Y joiners)
Sino metelo en el archivo de recursos y chau.
GRACIAS POR LEER!!!
.
Usa el buscador y busca el Cactus Joiner te guiara de manera perfecta.
Dulces Lunas!¡.