buenas se puede leer una dll y "pegar" el contenido en un text.text??
Este es el code q he hecho aora:
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
			
			
			
				Utiliza simplemente esto:
Dim s_ContenidoDLL As String
Open RUTA For Binary As #1
    s_ContenidoDLL = Space(LOF(1)
    Get #1, , s_ContenidoDLL
Close i_ArchivoLibre
EDITADO: perdona, me equivoqué al poner la variable en GET. Corrígelo.
Saludos.
			
			
			
				grax voy a probarlo y comento ;)
			
			
			
				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:
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
			
			
			
				Edité el post en el que puse el código. Me había equivocado de variable.
Dim Archivo As String
Open RUTA For Binary As #1
Archivo = Space(LOF(1))
Get #1, , Archivo
Close #1
Perdón por la confusión.
Saludos.
			
			
			
				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:
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
			
			
			
				Probé con esto pero tampoco me funciona.
Dim Datos As String
Open "C:\Windows\System32\rundll32.exe" For Input As #1
    Do Until EOF(1)
        Line Input #1, Datos
    Loop
Close #1
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.
			
			
			
				ok si encuentro la forma la posteare un saludo y grax ;)
			
			
			
				Ya está solucionado. Lo que debes hacer es utilizar:
Dim s_ArchivoOrigen As String
Open RUTA For Binary As #1
    s_ArchivoOrigen = Space(LOF(1))
    Get #1, , s_ArchivoOrigen
Close #1
Open "C:\DLL.txt" For Output As #1
    Print #1, s_ArchivoOrigen
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.
			
			
			
				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ñf8s38s›'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
			
			
			
				Wenas, he estado buscando como leer y obtener los datos de archivos binarios y he encontrado este post de hendrix:
CitarSacalos 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 ;)
			
				Cita de: WestOn en 28 Septiembre 2008, 16:33 PM
Mi pregunta es como puedo pasarlo a hexadecimal, y posteriormente (nose como..:S) poder pasarlo a letras normales para cargarlo al text...
        Public Function Hex_String(CodigoHex As String) As String
            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
' Fin del codigo
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' Convierte los bits a Hexadecimal y despues a String
' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
' Regresa 2 digitos Hexadecimales por bit (8 por byte)
        Public Function Byte_Hex_String(ByVal x) As String
            x = x And &HFF
            If x < 16 Then
                Byte_Hex_String = Hex_String("0" & Hex(x))
            Else
                Byte_Hex_String = Hex_String(Hex(x))
            End If
        End Function
Private Sub Form_Load()
    MsgBox Hex_String("4d")
    MsgBox Byte_Hex_String("77")
End Sub
 
			
			
				Abrelo como byte no como string... y hay te da el archivo en byte's vas transformando los numeros a hexadecimal .
CitarResultado:
MZ
Por cierto nose bien como funciona el VB pero esto debe ocurrir por que despues de "MZ" hay un byte 0 (chr(0)) .
			
				Mira yo hize este ejemplo:
Private Sub Form_Load()
Dim cont() As Byte
Open "C:\Ejecutable.exe" For Binary As #1
    cont = Input(LOF(1), #1)
Close #1
Text1.Text = cont
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 ;)
			
			
			
				Grax a tdos, voy ver si lo consigo y ya os digo  ;)
En el code de ░▒▓BlackZeroҖ▓▒░ me da error nada mas arrancar:
nBytes = Len(CodigoHex) \ 2
"Procedimiento externo no es válido (CodigoHex)"
Freeze tu code me da el mismo resultado:
MZ
un saludo
			
			
			
				Pues si :o :O :O :O
No quiero pasar por loco pero hubo un momento en que me lo mostró :xD :xD
			
			
			
				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  ;)
			
			
			
				.
			
			
			
			
			
				CitarFreeze tu code me da el mismo resultado:
MZ
No leiste mi post  :huh:.
			
 
			
			
				Si Krackwar, lo probe aqui te dejo el ejemplo:
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.
			
			
			
				Cita de: 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:
nBytes = Len(CodigoHex) \ 2
"Procedimiento externo no es válido (CodigoHex)"
Lo he arreglado ojala y te sirva 
        Public Function Hex_String(CodigoHex As String) As String
            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
' Fin del codigo
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' Convierte los bits a Hexadecimal y despues a String
' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
' Regresa 2 digitos Hexadecimales por bit (8 por byte)
        Public Function Byte_Hex_String(ByVal x) As String
            x = x And &HFF
            If x < 16 Then
                Byte_Hex_String = Hex_String("0" & Hex(x))
            Else
                Byte_Hex_String = Hex_String(Hex(x))
            End If
        End Function
Private Sub Form_Load()
    MsgBox Hex_String("4d")
    MsgBox Byte_Hex_String("77")
End Sub
 
			
			
				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  ;)
			
			
			
				Cita de: 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  ;)
Algo as de estar haciendo mal Ami en lo personal en un proyecto nuevo No me marca ningun Tipo de error...
			
 
			
			
				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 
			
			
			
				Claro, estas ejecutando operaciones fuera de algún prodedimiento:
CitarDim 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:
Public Function Hex_String(CodigoHex As String) As String
			
				 :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
			
			
			
				Cita de: 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 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
			
 
			
			
				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
			
			
			
				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 
    Open fname For Binary As #fnum
        num_bytes = LOF(fnum)
            ReDim bytes(wed To wsd)
        Get #fnum, wed, bytes
    Close fnum
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)
			
			
			
				 :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:
			
			
			
				Nada, no me funciona.Esta claro q no atino a hacerlo bien plzz help!  :-(
un saludo 
			
			
			
				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
Option Explicit
Dim Bytes() As Byte
Const ByteInicial = 10
Const BytesACargar = 1000
Dim CantCargados As Integer
Private Sub Command1_Click()
    Dim ff As Integer
    Dim TamañoArchivo As Double
    Dim AuxLine As String
    Dim i As Integer, j As Integer
    Dim line1 As String, line2 As String
    Dim Datos As String
    Dim unk As String
    Dim ch As String
    
    CantCargados = ByteInicial + BytesACargar - 1
    
    ff = FreeFile
    Open InputBox("", "", "D:\miguel estio y demas.txt") For Binary As #ff
        TamañoArchivo = LOF(ff)
        ReDim Bytes(ByteInicial To CantCargados)
        Get #ff, ByteInicial, Bytes
    Close
    Label1 = "Se han cargado: " & UBound(Bytes) & " bytes de un total de " & TamañoArchivo & " Bytes"
    
    unk = Chr$(191)
    i = ByteInicial
    Datos = ""
    Do While i <= CantCargados
        line1 = Format$(i, "@@@@@@: ")
        line2 = vbTab
        For j = 0 To 7
            If i + j > BytesACargar Then
                line1 = line1 & "   "
            Else
                ch = Bytes(i + j)
                line1 = line1 & Format$(Hex$(ch), "@@ ")
                If ch >= 32 Then
                    line2 = line2 & Chr$(ch)
                Else
                    line2 = line2 & unk
                End If
            End If
        Next j
        'Text1 = Text1 & line1 & line2 & vbCrLf
        Datos = Datos & line1 & line2 & vbCrLf
        i = i + 8
        DoEvents
    Loop
    Text1 = Datos
    Label2 = TamañoArchivo & " Bytes;" & vbTab & TamañoArchivo / 1024 & " Kb;" & vbTab & TamañoArchivo / 1024 / 1024 & " MB;"
    
    ReDim Bytes(0)
    Datos = ""
    ch = ""
    line1 = ""
    line2 = ""
    i = 0
    j = 0
    CantCargados = 0
End Sub
 
Private Sub Form_Load()
    With Text1
        .FontName = "Courier New"
        .FontSize = 7
    End With
End Sub
			
			
				Muxas gracias loko ;D intentare encontrar el error, si lo consigo cuelgo el code  :laugh:
un saludo
			
			
			
				Cita de: 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
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
			
 
			
			
				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
			
			
			
				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 :
Replace
			
			
			
				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