"" INSERTAR UN EJECUTABLE DENTRO DE OTRO ""

Iniciado por gera, 13 Octubre 2005, 05:43 AM

0 Miembros y 1 Visitante están viendo este tema.

gera

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.

yeikos

#1
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.

Kizar

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

yeikos

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.

Kizar

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

yeikos

Lo que no entiendo es porque lo divides entre 65000...

Kizar

no dices k los maximos datos k te deja cargar en el string son 65000?

Salu2

yeikos

Bueno sí, pero eso me daría números decimales, si no me equivoco se tendría que usar \ .

programatrix

Si el estring le defines como EOF te cabe todo el archivo  ;D

Kizar

#9
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