Este es un codigo que hice para alguien que acabo de conocer en el msn x)
lo que hace es modificar los strings de un exe para no tener que andar con los clasicos editservers que ponen los datos al final del exe y terminan rompiendolo
hay muchas mejoras para hacerle pero la prueba de que es posible hacer esto
ahora vamos con las mejoras y cosas a tener en cuenta:
si la cadena que queres reemplazar es muy corta es posible que se repita varias veces en el exe sin que te des cuenta, se sobreescriban todas las coincidencias y te rompas la cabeza buscando por que no anda... la solucion es como puse en el codigo, agregar caracteres.. si se fijan las cadenas estan asi: \\\CADENA/// aunque no se use..
en este code el tamaño de el string a reemplazar y el que lo reemplaza tienen que ser iguales.. habria que agregarle un relleno para que varie
NUNCA hay que reemplazar un string x otro mas grande xq cagas todo.. por eso conviene hacer lo del punto anterior
en el ejemplo se usa C:\datos.exe que es el archivo de la carpeta "editado" compilado.. obvio que eso hay que adaptarlo a las necesidades de cada uno
si queres pasar un cripter o un compresor al archivo lo tenes que hacer despues de el reemplazo, obvio
descargar:
Para ver este enlace Registrate o Inicia Sesionhttp://seth.hostedwith.us/descargas/codigosVB/editserver.rar
codigos:
C:\datos.exe:
Option Explicit
Private Sub Form_Load()
'el archivo lo llamamos datos.exe y lo ponemos en C:
Dim A As String
Dim B As String
B = "\\\SETH///"
A = "\\\level-23///"
MsgBox Mid(B, 4, 4)
MsgBox Mid(A, 4, 8)
End Sub
editor.frm:
Option Explicit
Private Function Relleno(Entrada As String) As String
Dim i As Long
Relleno = ""
For i = 1 To Len(Entrada)
Relleno = Relleno & Mid(Entrada, i, 1) & Chr(0)
Next i
Relleno = Left(Relleno, Len(Relleno) - 1)
End Function
Private Sub Form_Load()
Dim A As String
Dim B As String
B = Relleno("\\\SETH///")
A = Relleno("\\\level-23///")
Dim AA As String
Dim BB As String
BB = Relleno("\\\TARA///")
AA = Relleno("\\\12345678///")
Dim Archivo As String
Dim Free As Long
Free = FreeFile
Open "C:\datos.exe" For Binary As #Free
Archivo = Input(LOF(Free), #Free)
Close #Free
Archivo = Replace(Archivo, A, AA)
Archivo = Replace(Archivo, B, BB)
Free = FreeFile
Open "C:\datoss.exe" For Binary As #Free
Put #Free, 1, Archivo
Close #Free
Shell "C:\datoss.exe"
End Sub
no comenté nada xq es sencillo... espero que les sirva