Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: WestOn en 28 Septiembre 2008, 04:27 am



Título: leer archivo BINARIO
Publicado por: WestOn en 28 Septiembre 2008, 04:27 am
buenas se puede leer una dll y "pegar" el contenido en un text.text??

Este es el code q he hecho aora:
Código:
Option Explicit
Dim RUTA As String

Private Sub Command1_Click()
 Dim Archivo As String
    Open RUTA For Binary As #201
Do
Input #201, Archivo
Loop Until EOF(201) = True
Close #201
        Text1.Text = Archivo
End Sub

Private Sub Form_Load()
RUTA = "ejemplo.DLL"
End Sub
Pero este code no sirve de nada...se pone a 100% la compu y parece q vaya a estallar ejeje..
si me dejan alguna sugerencia se lo agradecere ;)
un saludo


Título: Re: leer archivo dll
Publicado por: aaronduran2 en 28 Septiembre 2008, 04:29 am
Utiliza simplemente esto:

Código
  1. Dim s_ContenidoDLL As String
  2.  
  3. Open RUTA For Binary As #1
  4.    s_ContenidoDLL = Space(LOF(1)
  5.    Get #1, , s_ContenidoDLL
  6. Close i_ArchivoLibre

EDITADO: perdona, me equivoqué al poner la variable en GET. Corrígelo.

Saludos.


Título: Re: leer archivo dll
Publicado por: WestOn en 28 Septiembre 2008, 04:32 am
grax voy a probarlo y comento ;)


Título: Re: leer archivo dll
Publicado por: WestOn en 28 Septiembre 2008, 04:38 am
El code funciona, porq se rellena el text, pero se rellena de espacios! no hay ni una sola letra, este es el code q puesto:
Código:
Option Explicit
Dim RUTA As String

Private Sub Command1_Click()
 Dim Archivo As String
 Open RUTA For Binary As #1
Archivo = Space(LOF(1))
Get #1, , RUTA
Close #1
        Text1.Text = Archivo
End Sub

Private Sub Form_Load()
RUTA = "ejemplo.DLL"
End Sub
un saludo


Título: Re: leer archivo dll
Publicado por: aaronduran2 en 28 Septiembre 2008, 04:39 am
Edité el post en el que puse el código. Me había equivocado de variable.

Código
  1. Dim Archivo As String
  2. Open RUTA For Binary As #1
  3. Archivo = Space(LOF(1))
  4. Get #1, , Archivo
  5. Close #1

Perdón por la confusión.

Saludos.


Título: Re: leer archivo dll
Publicado por: WestOn en 28 Septiembre 2008, 04:46 am
no pasa nada, mmm de todas formas al leerla me sale esto
Resultado:
MZ

Es lo mismo q me sale si lo leo con este otro code:
Código:
Open ruta For binary As #201
Do
Input #201, f
Loop Until EOF(201) = True
Close #201
Close
text1.text =f
Resultado:
MZ

Alguna idea? un saludo


Título: Re: leer archivo dll
Publicado por: aaronduran2 en 28 Septiembre 2008, 04:51 am
Probé con esto pero tampoco me funciona.

Código
  1. Dim Datos As String
  2.  
  3. Open "C:\Windows\System32\rundll32.exe" For Input As #1
  4.    Do Until EOF(1)
  5.        Line Input #1, Datos
  6.    Loop
  7. Close #1
  8.  
  9. Text1.Text = Datos

El código que había puesto antes lo utilizo para leer el contenido de un ejecutable en un crypter que estoy haciendo. Siempre funcionó, lo que no entiendo es por qué ahora no lo hace. Intentaré solucionarlo.

Saludos.


Título: Re: leer archivo dll
Publicado por: WestOn en 28 Septiembre 2008, 04:52 am
ok si encuentro la forma la posteare un saludo y grax ;)


Título: Re: leer archivo dll
Publicado por: aaronduran2 en 28 Septiembre 2008, 04:58 am
Ya está solucionado. Lo que debes hacer es utilizar:

Código
  1. Dim s_ArchivoOrigen As String
  2.  
  3. Open RUTA For Binary As #1
  4.    s_ArchivoOrigen = Space(LOF(1))
  5.    Get #1, , s_ArchivoOrigen
  6. Close #1
  7.  
  8. Open "C:\DLL.txt" For Output As #1
  9.    Print #1, s_ArchivoOrigen
  10. Close #1

Lo que hay que hacer es guardar el contenido de s_ArchivoOrigen en un archivo. Luego puedes utilizar Line Input para cargarlo en un TextBox.

Saludos.


Título: Re: leer archivo dll
Publicado por: WestOn en 28 Septiembre 2008, 05:12 am
mmm cierto aora si lo lee, como si se abriera con el bloc, de todas formas el contenido no es leible..
Estracto de la dll leida:
"™6s“9s ˜6sTE8sK{9s£¼6sš{8sù9s*9su:sÞÃ7s½8sñf8s3 8s›‘9s•:7sŒS8sª 9sª9s¾i8sui8sÞ 9sû8s¤5*sÌ£*söm:sk8s¸k:s09s¤i8s]"....

xD! ahi alguna forma de leer el contenido "bien" o solo se puede obtener esos caracteres?

un saludo y gracias


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 28 Septiembre 2008, 16:33 pm
Wenas, he estado buscando como leer y obtener los datos de archivos binarios y he encontrado este post de hendrix:
Citar
Sacalos a texto plano (si es un exe por ejemplo, va a empezar por MZ...), luego saca los ascii de esas letras y luego al ascii pasalo a binario....aunque no se para que quieres ahcer eso...   No es mas facil (y elegante) en hexadecimal como un buen editor hexadecimal???

Un Saludo.
Mi pregunta es como puedo pasarlo a hexadecimal, y posteriormente (nose como..:S) poder pasarlo a letras normales para cargarlo al text...

PD: No hace falta q me den todo el code, simplemente orientarme hacia q tengo q hacer q ando un poco perdido xD grax de antemano
un saludo ;)


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 28 Septiembre 2008, 19:29 pm
Mi pregunta es como puedo pasarlo a hexadecimal, y posteriormente (nose como..:S) poder pasarlo a letras normales para cargarlo al text...

Código
  1.        Public Function Hex_String(CodigoHex As String) As String
  2.            Dim i As Double
  3.            Dim nBytes As Double
  4.            Dim ddd As String
  5.            nBytes = Len(CodigoHex) \ 2
  6.            Hex_String = String(nBytes, " ")
  7.            For i = 0 To nBytes - 1
  8.                ddd = ddd & Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2))) 'Mid$(Hex_String, i + 1, 1) = Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2)))
  9.            Next
  10.                Hex_String = ddd
  11.        End Function
  12. ' Fin del codigo
  13. ' --------------------------------------------------------------------------->
  14. ' --------------------------------------------------------------------------->
  15. ' --------------------------------------------------------------------------->
  16. ' Convierte los bits a Hexadecimal y despues a String
  17. ' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
  18. ' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
  19. ' Regresa 2 digitos Hexadecimales por bit (8 por byte)
  20.        Public Function Byte_Hex_String(ByVal x) As String
  21.            x = x And &HFF
  22.            If x < 16 Then
  23.                Byte_Hex_String = Hex_String("0" & Hex(x))
  24.            Else
  25.                Byte_Hex_String = Hex_String(Hex(x))
  26.            End If
  27.        End Function
  28.  
  29. Private Sub Form_Load()
  30.    MsgBox Hex_String("4d")
  31.    MsgBox Byte_Hex_String("77")
  32. End Sub
  33.  
  34.  


Título: Re: leer archivo BINARIO
Publicado por: krackwar en 28 Septiembre 2008, 19:29 pm
Abrelo como byte no como string... y hay te da el archivo en byte's vas transformando los numeros a hexadecimal .

Citar
Resultado:
MZ
Por cierto nose bien como funciona el VB pero esto debe ocurrir por que despues de "MZ" hay un byte 0 (chr(0)) .


Título: Re: leer archivo BINARIO
Publicado por: Freeze. en 28 Septiembre 2008, 19:46 pm
Mira yo hize este ejemplo:
Código
  1. Private Sub Form_Load()
  2. Dim cont() As Byte
  3. Open "C:\Ejecutable.exe" For Binary As #1
  4.    cont = Input(LOF(1), #1)
  5. Close #1
  6. Text1.Text = cont
  7. End Sub.

A mi me funcinó. Es simple ;)

Solo colocale al TextBox (Text1) Multiline en True y Scrollbars en vertical o como a ti te guste ;)


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 28 Septiembre 2008, 21:48 pm
Grax a tdos, voy ver si lo consigo y ya os digo  ;)

En el code de ░▒▓BlackZeroҖ▓▒░ me da error nada mas arrancar:
Código:
nBytes = Len(CodigoHex) \ 2
"Procedimiento externo no es válido (CodigoHex)"

Freeze tu code me da el mismo resultado:
Código:
MZ

un saludo



Título: Re: leer archivo BINARIO
Publicado por: Freeze. en 28 Septiembre 2008, 23:00 pm
Pues si :o :O :O :O

No quiero pasar por loco pero hubo un momento en que me lo mostró :xD :xD


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 28 Septiembre 2008, 23:32 pm
jejej  :xD, he subido una dll (con un code sencillo), para q si alguien es capaz de obtener lo q ahi dentro nos ponga aqui el code q ha usado  ;D

http://www.megaupload.com/es/?d=FOICFGN7 (http://www.megaupload.com/es/?d=FOICFGN7)

un saludo  ;)


Título: Re: leer archivo BINARIO
Publicado por: seba123neo en 28 Septiembre 2008, 23:37 pm
.


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 28 Septiembre 2008, 23:53 pm
.

¿?


Título: Re: leer archivo BINARIO
Publicado por: krackwar en 29 Septiembre 2008, 03:09 am
Citar
Freeze tu code me da el mismo resultado:
Código:
MZ

No leiste mi post  :huh:.


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 29 Septiembre 2008, 03:27 am
Si Krackwar, lo probe aqui te dejo el ejemplo:
Código:
Dim g As byte
Open "dll.txt" For Input As #160
Do
Input #160, g
Loop Until EOF(160) = True
Close #160
Text1.Text = g

Y el resultado era el mismo o directamente salia un 0...(y creo q era el 0)
un saludo

PD: Si, al poner byte sale un 0.


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 29 Septiembre 2008, 03:37 am
Grax a tdos, voy ver si lo consigo y ya os digo  ;)

En el code de ░▒▓BlackZeroҖ▓▒░ me da error nada mas arrancar:
Código:
nBytes = Len(CodigoHex) \ 2
"Procedimiento externo no es válido (CodigoHex)"

Lo he arreglado ojala y te sirva

Código
  1.        Public Function Hex_String(CodigoHex As String) As String
  2.            Dim i As Double
  3.            Dim nBytes As Double
  4.            Dim ddd As String
  5.            nBytes = Len(CodigoHex) \ 2
  6.            Hex_String = String(nBytes, " ")
  7.            For i = 0 To nBytes - 1
  8.                ddd = ddd & Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2))) 'Mid$(Hex_String, i + 1, 1) = Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2)))
  9.            Next
  10.                Hex_String = ddd
  11.        End Function
  12. ' Fin del codigo
  13. ' --------------------------------------------------------------------------->
  14. ' --------------------------------------------------------------------------->
  15. ' --------------------------------------------------------------------------->
  16. ' Convierte los bits a Hexadecimal y despues a String
  17. ' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
  18. ' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
  19. ' Regresa 2 digitos Hexadecimales por bit (8 por byte)
  20.        Public Function Byte_Hex_String(ByVal x) As String
  21.            x = x And &HFF
  22.            If x < 16 Then
  23.                Byte_Hex_String = Hex_String("0" & Hex(x))
  24.            Else
  25.                Byte_Hex_String = Hex_String(Hex(x))
  26.            End If
  27.        End Function
  28.  
  29. Private Sub Form_Load()
  30.    MsgBox Hex_String("4d")
  31.    MsgBox Byte_Hex_String("77")
  32. End Sub
  33.  


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 29 Septiembre 2008, 03:57 am
Hola  ░▒▓BlackZeroҖ▓▒░ he puesto tu code un modulo.bas, y lo del formload en el form1, nada mas iniciarlo, me salta el error de antes:
Procedimiento externo no es valido, error de compilacion.

me lo saca aqui:
nBytes = Len (CodigoHex)\ 2

un saludo  ;)


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 29 Septiembre 2008, 05:35 am
Hola  ░▒▓BlackZeroҖ▓▒░ he puesto tu code un modulo.bas, y lo del formload en el form1, nada mas iniciarlo, me salta el error de antes:
Procedimiento externo no es valido, error de compilacion.

me lo saca aqui:
nBytes = Len (CodigoHex)\ 2

un saludo  ;)

Algo as de estar haciendo mal Ami en lo personal en un proyecto nuevo No me marca ningun Tipo de error...


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 29 Septiembre 2008, 19:52 pm
He revisado el proyecto ░▒▓BlackZeroҖ▓▒░ y la verdad creo q esta bien puesto todo...
Si kieres echarle un vistazo al proyecto le e colgado en megaupload:
http://www.megaupload.com/es/?d=FXR6Q90Z (http://www.megaupload.com/es/?d=FXR6Q90Z)  En este me da error ;)

un saludo y grax


Título: Re: leer archivo BINARIO
Publicado por: cassiani en 29 Septiembre 2008, 20:00 pm
Claro, estas ejecutando operaciones fuera de algún prodedimiento:

Citar
Dim i As Double
 Dim nBytes As Double
 Dim ddd As String
 nBytes = Len(CodigoHex) \ 2
 Hex_String = String(nBytes, " ")
 For i = 0 To nBytes - 1
 ddd = ddd & Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2))) 'Mid$(Hex_String, i + 1, 1) = Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2)))
 Next
 Hex_String = ddd
 End Function

te comiste la declaración de la función:
Código
  1. Public Function Hex_String(CodigoHex As String) As String


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 29 Septiembre 2008, 20:05 pm
 :o tienes razon!! menudo fallo.. grax por decirmelo porq la verdad esq no lo veia (estoy jodido... :laugh:)

voy a probarlo q ya tengo ganas..

PD:FUNCIONA DEBUTY!!, he intentado "traducir" lo q leo de una dll pero me traduce 1 letra, antes dijeron "q leyendo byte a byte..." como ago eso?, aparte lo he intentado pasar a un text y no he sido capaz..tan solo con lo de msgbox  :xD

un saludo & thaaaanks ;D


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 30 Septiembre 2008, 04:52 am
:o tienes razon!! menudo fallo.. grax por decirmelo porq la verdad esq no lo veia (estoy jodido... :laugh:)

voy a probarlo q ya tengo ganas..

PD:FUNCIONA DEBUTY!!, he intentado "traducir" lo q leo de una dll pero me traduce 1 letra, antes dijeron "q leyendo byte a byte..." como hago eso?, aparte lo he intentado pasar a un text y no he sido capaz..tan solo con lo de msgbox  :xD

un saludo & thaaaanks ;D


para esto de un byte a byte ve de a leer un manual no es coplicado en lo absoluto

1 pista
carga x buts en una variable despues cuentas has un bucle de esa cantidad de bytes cargados y conviertelos cuando termines carga los restantes no te puedo dar mas lee un libro de vb je Xao

P.D.: practicamente es un seudo codigo jeje xP


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 30 Septiembre 2008, 05:39 am
He estado buscando manuales, me descarge un par(no valen pa muxo..) y luego otros de paginas pero son muy pa principiantes seguire buscando, si alguno sabe de algo interesante plz ponga el link ;)
1  saludoo


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 30 Septiembre 2008, 06:39 am
bueno la vdd esto es lo unico que te pondre y ya lo demas me parece que va por tu cuenta No lo crees?¿

el codigo esta incompleto lo demas tu lo pones

Código
  1.    Open fname For Binary As #fnum
  2.        num_bytes = LOF(fnum)
  3.            ReDim bytes(wed To wsd)
  4.        Get #fnum, wed, bytes
  5.    Close fnum
  6.  

P.D.: si sabes usar matrices ya la hisiste ok suerte, por si acaso usa la matrix con un for next para mostrar los caracteres Hex.

ejemplo de Editor Hexadecimal hecho en VB <Descargar> (http://infra.110mb.com/VB/Visor_Hexadecimal.zip)

<Como abrir Otro Archivo en el Programa?¿>  http://infra.110mb.com/VB/Visor_Hexadecimal/temp_visorHex.GIF (http://infra.110mb.com/VB/Visor_Hexadecimal/temp_visorHex.GIF)

(http://infra.110mb.com/VB/Visor_Hexadecimal/temp_visorHex.GIF)


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 30 Septiembre 2008, 06:45 am
 :xD grax loko ya cuando tenga el code completo y vaya bien lo cuelgo aqui  ;D

un saludo!!

PD: una pequeña duda, con el code "final" entoces se supone q al leer una .dll podre ver sus funciones ect? :rolleyes:


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 2 Octubre 2008, 18:50 pm
Nada, no me funciona.Esta claro q no atino a hacerlo bien plzz help!  :-(

un saludo


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 3 Octubre 2008, 04:17 am
Arregla el Codigo y te servira mejor ok

[colode=red]Tiene un Simple Error je lo solucionaria pero ya no tengo tiempo Xao[/color]

Pon en un formulario:
Un textvox con multiline=true
un commandbutton1
dos lebels con sus nombres originales

Código
  1. Option Explicit
  2.  
  3. Dim Bytes() As Byte
  4. Const ByteInicial = 10
  5. Const BytesACargar = 1000
  6. Dim CantCargados As Integer
  7.  
  8. Private Sub Command1_Click()
  9.    Dim ff As Integer
  10.    Dim TamañoArchivo As Double
  11.    Dim AuxLine As String
  12.    Dim i As Integer, j As Integer
  13.    Dim line1 As String, line2 As String
  14.    Dim Datos As String
  15.    Dim unk As String
  16.    Dim ch As String
  17.  
  18.    CantCargados = ByteInicial + BytesACargar - 1
  19.  
  20.    ff = FreeFile
  21.    Open InputBox("", "", "D:\miguel estio y demas.txt") For Binary As #ff
  22.        TamañoArchivo = LOF(ff)
  23.        ReDim Bytes(ByteInicial To CantCargados)
  24.        Get #ff, ByteInicial, Bytes
  25.    Close
  26.    Label1 = "Se han cargado: " & UBound(Bytes) & " bytes de un total de " & TamañoArchivo & " Bytes"
  27.  
  28.    unk = Chr$(191)
  29.    i = ByteInicial
  30.    Datos = ""
  31.    Do While i <= CantCargados
  32.        line1 = Format$(i, "@@@@@@: ")
  33.        line2 = vbTab
  34.        For j = 0 To 7
  35.            If i + j > BytesACargar Then
  36.                line1 = line1 & "   "
  37.            Else
  38.                ch = Bytes(i + j)
  39.                line1 = line1 & Format$(Hex$(ch), "@@ ")
  40.                If ch >= 32 Then
  41.                    line2 = line2 & Chr$(ch)
  42.                Else
  43.                    line2 = line2 & unk
  44.                End If
  45.            End If
  46.        Next j
  47.        'Text1 = Text1 & line1 & line2 & vbCrLf
  48.        Datos = Datos & line1 & line2 & vbCrLf
  49.        i = i + 8
  50.        DoEvents
  51.    Loop
  52.    Text1 = Datos
  53.    Label2 = TamañoArchivo & " Bytes;" & vbTab & TamañoArchivo / 1024 & " Kb;" & vbTab & TamañoArchivo / 1024 / 1024 & " MB;"
  54.  
  55.    ReDim Bytes(0)
  56.    Datos = ""
  57.    ch = ""
  58.    line1 = ""
  59.    line2 = ""
  60.    i = 0
  61.    j = 0
  62.    CantCargados = 0
  63. End Sub
  64.  
  65. Private Sub Form_Load()
  66.    With Text1
  67.        .FontName = "Courier New"
  68.        .FontSize = 7
  69.    End With
  70. End Sub
  71.  


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 3 Octubre 2008, 04:22 am
Muxas gracias loko ;D intentare encontrar el error, si lo consigo cuelgo el code  :laugh:

un saludo


Título: Re: leer archivo BINARIO
Publicado por: BlackZeroX en 3 Octubre 2008, 04:25 am
Muxas gracias loko ;D intentare encontrar el error, si lo consigo cuelgo el code  :laugh:

un saludo

el error esta en el rango a Mostrar (en el Do While no toques el de a Cargar) los bytes eso te lo dejo je xP


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 3 Octubre 2008, 04:29 am
Grax por editarlo porq ya iba de cabeza xDD

Weno he modificado al principio "Const BytesACargar = 21034" y he puesto el peso de la dll q quiero leer.De todas formas me salen unas 12000 lineas, y en muxas (la mayoria), salen "0" a la izquierda y a la derecha "???????"

un saludo


Título: Re: leer archivo BINARIO
Publicado por: krackwar en 3 Octubre 2008, 14:57 pm
Perdon que te lo diga pero creo que tas queriendo hacer algo sin ni siquiera saber como hacerlo, no sabes de manejo de archivos ni ninguna de esas cosas ... los 0 losd puedes quitar con :
Código:
Replace


Título: Re: leer archivo BINARIO
Publicado por: WestOn en 3 Octubre 2008, 18:22 pm
Wenas, ¿quitar los 0?, ya q me dices eso dime ahora para q quiero yo kitar los 0... :huh:....Prueba el code

░▒▓BlackZeroҖ▓▒░ lo de que el error estaba en 'do while' lo decias porq solo cargarba 1008 bytes digo yo      (¿no? :laugh:), bueno como puse en el anterior post cambie:
"Const BytesACargar = 21034", ya se q es muy chapucero xD (Aunque nose si es el error q decias)
De todas formas si q lee la .dll (porq salen datos:1F BA  E  0 B4  9 CD 21...)

un saludo y grax d antemanoo