Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: asdexiva en 15 Enero 2013, 18:02 pm



Título: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 18:02 pm
Código:
Dim file As String, Datos As String, bytearray() As Byte
 
file = "C:\Archivos de programa\aplicacion\xd.exe"
Open file For Binary As #1
Datos = Space(LOF(1))
Get #1, , Datos
Close #1
 
bytearray() = StrConv(Datos, vbFromUnicode)
'cmain frame
bytearray(1846824) = Asc("T")
bytearray(1846825) = Asc("i")
bytearray(1846826) = Asc("b")
bytearray(1846827) = Asc("i")
bytearray(1846828) = Asc("a")
bytearray(1846829) = Asc("C")
bytearray(1846830) = Asc("l")
bytearray(1846831) = Asc("i")
bytearray(1846832) = Asc("e")
bytearray(1846833) = Asc("n")
bytearray(1846834) = Asc("t")

Open file For Binary As #1
Put #1, 1, bytearray()
Close #1
End Sub

lo que quiero es no hacer tantas lineas en los bytearray quiero hacer un texbox  que acomode todo quiero todos estos bytes array en una sola linea  espero me entienda xD
1846824,1846825,1846826,1846827,asta 1846834 con un texbox y que en el texbox no se puedan escribir mas de 11 letras
por favor ayuda :S


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 18:08 pm
Si pones los chars en un textbox y usas mid para ir tomando 1x1 y asignandole los valores al array (por supuesto, vas a necesitar un indice para ir recorriendolo) podras hacerlo en un par de lineas.

Es claro que si lo colocas en un txtbox, lo colocas en un string...

Saludos!


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 18:17 pm
podria ser asi ?
Código:
bytearray() = StrConv(Datos, vbFromUnicode)
'cmain frame
bytearray(1846824, 1846825, 1846826, 1846827, 1846828, 1846829, 1846830, 1846831, 1846832, 1846833, 1846834) = Asc(Text1.Text)

biterray esta declarado como string pero me sale una ventana diciendo error 13 no coinciden los datos


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 18:33 pm
j va desde 1 hasta el largo del string
i es el indice del array y va desde 1846824 (el primero) hasta 1846823 + el largo del texto

Código
  1. dim i as long
  2. dim j as long
  3.  
  4. for j = 1 to len(text1.text)
  5.  i = j + 1846823
  6.  bytearray(i) = asc(mid(text1.text, j, 1))
  7. next j
  8.  


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 18:41 pm
muchisimas gracias funciona

me podrias explicar mas o menos el codigo  pero en forma

if text1.text=xd then
si text1 =xd entonces <-- asi please xd

quiero comprender bien el codigo si no es mucha molestia xD
no logro enteder esto

i = j + 1846823
  bytearray(i) = asc(mid(text1.text, j, 1))

como isestes desde 1846823 1846834 ?¿


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 18:52 pm
Veamos:

Tienes un string que deseas insertar en un array. Para esto, necesitas recorrer los caracteres del string 1x1 e insertarlos en el array.

En el ejemplo, j va desde 1 (el primer char del string) hasta el largo (len) del mismo.
Ahora, en TU ejemplo pusiste que deseabas comenzar a insertar elementos desde la posicion 1846824. Si tengo un contador (j) que va desde 1 hasta n, entonces si quiero contar desde 1846824 hasta 1846824 + n, lo que hago es: 1846823 + j (j se incrementa en 1 en cada vuelta del for).

Se entiende?

Una cosa que deberas tener en cuenta es el tamaño del array. Verifica que tengas espacio suficiente...

Saludos!


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 19:00 pm
si muchas gracias entonces j viene siendo =al primer numero de 1846824
por ejemplo si yo tengo 1846120 y quiero que de ay empise no tengo que poner este numero si no  1846119 verdad xd por que vi que salta un byte en hex si no pongo un numero antes


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 19:04 pm
Claro. Ambos contadores van de 1 en 1.


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 19:06 pm
muchisisisisisimas gracias  no me canso de decirlo que gran foro xD


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 19:19 pm
Claro. Ambos contadores van de 1 en 1.

oye una dudilla xD
ay alguna forma de que si quedan espacios vacios en el texbox se cambien por bytes ? son lo que se ponen con 00


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 19:24 pm
El espacio " ", no tiene el valor ANSI 00h, sino 20h (32 Decimal).

Fijate: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)

Saludos!


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 19:37 pm
El espacio " ", no tiene el valor ANSI 00h, sino 20h (32 Decimal).

Fijate: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)

Saludos!

alo que me refiero es al caracter Nulo que en hex se pone 00 no ay alguna forma de ponerlo con el vb6 ? en el codigo
(http://i50.tinypic.com/jsekxi.jpg)


Título: Re: pequeñisima duda hex
Publicado por: Danyfirex en 15 Enero 2013, 19:50 pm
cuando dices nulo diras chr(0)?


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 19:58 pm
cuando dices nulo diras chr(0)?

si ,pero mi duda es como cambiar espacios vacios del texbox a chr(0)


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 20:00 pm
Comparandolos.

En el bucle del ejemplo:

Código
  1. dim i as long
  2. dim j as long
  3.  
  4. for j = 1 to len(text1.text)
  5.  i = j + 1846823
  6.  if asc(mid(text1.text, j, 1)) = 32 then
  7.    bytearray(i) = 0
  8.  else
  9.    bytearray(i) = asc(mid(text1.text, j, 1))
  10.  end if
  11. next j
  12.  


Título: Re: pequeñisima duda hex
Publicado por: Danyfirex en 15 Enero 2013, 20:06 pm
Lo escribes con chr(0) mira.

Código
  1. Open "C:\Users\CENTRAL\Desktop\XD.txt" For Binary As #1
  2. Dim bytes() As Byte
  3. bytes() = StrConv("hola" & Chr(0), vbFromUnicode)
  4. Put #1, , bytes()
  5. Close #1

Te recomiendo leer sobre Ansi y Unicode.

saludos


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 22:14 pm
Comparandolos.

En el bucle del ejemplo:

Código
  1. dim i as long
  2. dim j as long
  3.  
  4. for j = 1 to len(text1.text)
  5.  i = j + 1846823
  6.  if asc(mid(text1.text, j, 1)) = 32 then
  7.    bytearray(i) = 0
  8.  else
  9.    bytearray(i) = asc(mid(text1.text, j, 1))
  10.  end if
  11. next j
  12.  

no ay alguna forma de poner en el texbox los Chr(0) que yo lo escriba pss
por ejemplo

nombre y quedan 2 espacios vacios como pongo un Chr(0) en los 2 espacios vacios :S espero entiendas


Título: Re: pequeñisima duda hex
Publicado por: MCKSys Argentina en 15 Enero 2013, 23:02 pm
Lee la parte de caracteres imprimibles: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)

Si no lees, no puedes aprender.

Saludos!


Título: Re: pequeñisima duda hex
Publicado por: asdexiva en 15 Enero 2013, 23:31 pm
muchas gracias MCKSys Argentina no avia visto tu codigo jajaja  :laugh:  :xD