elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [vbs]Cómo leer un archivo en modo binario ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [vbs]Cómo leer un archivo en modo binario ?  (Leído 8,581 veces)
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
[vbs]Cómo leer un archivo en modo binario ?
« en: 13 Agosto 2009, 05:34 am »

Hola quiero hacer algo, pero no sé nada de vbs, así es que pido un poco de ayuda por favor.

Lo que quiero es leer un archivo binario y reemplazar 3 bytes, y luego escribir en el mismo archivo

estaba haciendo esto:
Código:
set unFileSystemObject = CreateObject("Scripting.FileSystemObject")
set archivo = unFileSystemObject.OpenTextFile("c:\f.bin", ForReading)
dim contenidoArchivo = archivo.ReadAll
contenidoArchivo = contenidoArchivo.Replace("")

y quiero reemplazar tres bytes, pero en modo binario, es decir supongamos que tengo los bytes:
1 2 3

y quiero reemplazarlos por:

1 2 0

Necesito que sea en binario porque el byte 0 es el ascii 0, y no es imprimible, por eso digo que debe ser binario.

Edito: ya encontré la solución.


« Última modificación: 13 Agosto 2009, 10:12 am por 0x0309 » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [vbs]Cómo leer un archivo en modo binario ?
« Respuesta #1 en: 13 Agosto 2009, 13:21 pm »

Realmente no recuerdo una manera de tratar archivos en modo binario ... o la que recuerdo salta en los AV, pero claro, da igual si lo haces tu y sabes para que es que lo haces ... cual fue tu solución?  :P

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: [vbs]Cómo leer un archivo en modo binario ?
« Respuesta #2 en: 13 Agosto 2009, 18:36 pm »

En realidad necesitaba este código para modificar un byte del archivo findstr.exe de windows, para poder utilizar un script que utiliza una virgulería de este comando e imprimir líneas de texto con color en cmd.exe. Esto es para que findstr no muestre el carácter :

Bueno, el código útil puede encontrarse aquí:
http://sites.google.com/site/cmdscripts/home/colores.zip?attredirects=0

Aquí está el código, lo que hace es reemplazar un byte:

Código:
'I found the information for modify a binary file with vbs in:
' http://www.governmentsecurity.org/forum/index.php?showtopic=18727


'With findstr.exe made %UserProfile%\findstr2.exe
'findstr2.exe is for not view the ':' with the option /a
'This alter the text: "%s:"
'hexadecimal: 25 73 3A
'by
'25 73 00
'Only change the 3A by 00

'This write findstr2.exe
'In findstr.exe not made changes.

Dim path,name,name2,obs,ows,strbin,i,f
Set ows = CreateObject("WScript.Shell")
path = ows.ExpandEnvironmentStrings("%SystemRoot%")
name = path & "\system32\findstr.exe"
path = ows.ExpandEnvironmentStrings("%UserProfile%")
name2 = path & "\findstr2.exe"
Set ofs = CreateObject("Scripting.FileSystemObject")

if ofs.FileExists(name) Then
strbin=RSBinaryToString(ReadBinaryFile(name))
i=InStr(1,strbin,chr(&H25)&chr(&H73)&chr(&H3A),0)
If i <> 0 Then
strbin=Left(strbin,i-1)&chr(&H25)&chr(&H73)&chr(&H00)&Mid(strbin,i+3)
Set f = ofs.OpenTextFile(name2,2,True,0)
f.Write strbin
f.Close
End If
End If

WScript.Quit

Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream : Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
BinaryStream.Close
End Function

Function RSBinaryToString(xBinary)
Dim Binary
If vartype(xBinary)=8 Then
Binary = MultiByteToBinary(xBinary)
Else Binary = xBinary
End If
Dim RS, LBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)
If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
RSBinaryToString = RS("mBinary")
Else
RSBinaryToString = ""
End If
End Function
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [vbs]Cómo leer un archivo en modo binario ?
« Respuesta #3 en: 13 Agosto 2009, 19:18 pm »

Entonces si ... estaba en lo cierto  :P

El método que conocía era ese .. haciendo uso del objeto ADODB.Stream, pero como decía .. el problema de ese objeto es que es detectado por muchos AV, ya que cuando aparecieron "bichos" programados en este lenguaje muchos lo utilizaban en las rutias downloader, aunque claro, un code hecho por uno mismo no debería de preocuparnos verdad?  :P

http://foro.elhacker.net/scripting/htmlvbsbatch_propagacion_a_traves_de_internet_posible-t221250.0.html

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: [vbs]Cómo leer un archivo en modo binario ?
« Respuesta #4 en: 13 Agosto 2009, 20:02 pm »

mira parece que lo que detectan los antivirus es el objeto: Microsoft.XMLHTTP
porque envié a virustotal el findstr2.vbs y me arrojó 0/41 amenazas, así es que el objeto ADODB.Stream en mi código no da problemas.
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [vbs]Cómo leer un archivo en modo binario ?
« Respuesta #5 en: 13 Agosto 2009, 20:05 pm »

Juaj ... entonces la combinación tal vez ... porque yo tengo códigos con el objeto Microsoft.XMLHTTP y no me da problemas ... quizás la heurística, ya que si a algo que tiene este último objeto le agrego el ADODB.Stream, entonces si  :-\

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo leer un archivo .dll .exe... de una aplicación? « 1 2 »
Programación General
Azhag_el_Carnicero 10 6,925 Último mensaje 27 Junio 2011, 17:28 pm
por Azhag_el_Carnicero
[?] leer binario y guardar en struct dato AYUDA « 1 2 »
Programación C/C++
nolosabe 17 9,993 Último mensaje 29 Octubre 2011, 15:44 pm
por nolosabe
Leer archivo binario en Vbs
Scripting
kapo.damy 2 4,164 Último mensaje 14 Diciembre 2011, 04:51 am
por kapo.damy
Problema al leer un archivo binario en C
Programación C/C++
the_jocker 5 5,464 Último mensaje 13 Agosto 2012, 01:37 am
por CSQCasimiro
Duda programa JAVA al leer archivo binario
Java
LoLo2207 3 3,688 Último mensaje 15 Diciembre 2012, 20:23 pm
por LoLo2207
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines