Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Fucko en 25 Marzo 2014, 20:52 pm



Título: Como enviar hexa en visual basic?
Publicado por: Fucko en 25 Marzo 2014, 20:52 pm
Hola, como puedo enviar hexa en winsock??

en realidad, se hacerlo, pero no es compatible con los windows en chino, y necesito usarlo en un windows chino....


supongamos que quiero enviar este dato...

00AABBCC

yo no puedo poner winsock.senddata "00AABBCC"

sino que tengo que ponerlo en el ascii o el char de cada byte...


sería winsock.senddata Chr$(0) & Chr$(170) & Chr$(187) & Chr$(204)

o sino, convertirlo via hextoasc

winsock.senddata hextoasc ("00AABBCC")

esto va perfecto en los windows latinos, o con ingles.....

pero no sirve en los windows chinos....

de que manera enviar hexadecimal ustedes?

gracias

saludos



Título: Re: Como enviar hexa en visual basic?
Publicado por: Fucko en 25 Marzo 2014, 21:34 pm
Bueno, se como resolverlo....

pero esto abre otro problema....

este problema se puede solucionar así:

sim st1(4) as byte

st1(0)= &H00
st1(1)=&HAA
st1(2)=&HBB
st1(3)=&HCC



pero esto sirve, cuando yo se de antemano que hay que enviar, y lo puedo codear...

pero que pasa si tengo que tomar los valores desde un textbox?? y los valores sean lo que ingresa otra persona?? o que el dato cambie basado en un calculo basado en un numero al azar?

ahí se complica la cosa....



Título: Re: Como enviar hexa en visual basic?
Publicado por: Mad Antrax en 26 Marzo 2014, 01:27 am
Usa el objeto ADODB.Stream para transformar una cadena de texto ascii/unicode a stream Base64 y lo envias por winsock. Un ejemplo:

Código
  1. Function SendFile(A)
  2. On Error Resume Next
  3. Set objStream = CreateObject("ADODB.Stream")
  4. objStream.Type = 1
  5. objStream.Open()
  6. objStream.LoadFromFile(A)
  7. Set objXML = CreateObject("MSXml2.DOMDocument")
  8. Set objDocElem = objXML.createElement("Base64Data")
  9. objDocElem.dataType = "bin.base64"
  10. objDocElem.nodeTypedValue = objStream.Read()
  11. B = objDocElem.text
  12. Winsock.SendData B
  13. End Function
  14.  

Llamo la función pasándole un fichero como variable:

SendFile("C:\hola.txt")
Con ADODB.Stream leo el fichero entero
Con MSXML2 transformo el stream a Base64
Envío el fichero codificado en Base64

Hay otras formas de hacerlo, por ejemplo transformar una cadena de texto a stream binario y enviarlo como un array de bytes.

Saludos


Título: Re: Como enviar hexa en visual basic?
Publicado por: BlackZeroX en 26 Marzo 2014, 05:30 am
.
Hace mucho en este mismo foro se crearon cientos de funciones...

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' //                                                            //
  6. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  7. ' //                                                            //
  8. ' // |-> Pueden Distribuir Este Código siempre y cuando         //
  9. ' // no se eliminen los créditos originales de este código      //
  10. ' // No importando que sea modificado/editado o engrandecido    //
  11. ' // o achicado, si es en base a este código                    //
  12. ' ////////////////////////////////////////////////////////////////
  13.  
  14. Option Explicit
  15. Enum ActionsHexStr
  16.    HexToString = 0
  17.    StringToHex
  18. End Enum
  19. Public Function HexAndString(ByVal vData As String, Optional Accion As ActionsHexStr = HexToString) As String
  20. Dim LenBuffer               As Long
  21. Dim LenOfBuffer             As Integer
  22. Dim Puntero                 As Long
  23. Dim I                       As Long
  24. Dim vStep                   As Integer
  25.    If CBool(IIf(Accion = HexToString And (Len(vData) Mod 2) = 0, True, IIf(Accion = StringToHex, True, False))) Then
  26.        LenBuffer = IIf(Accion = HexToString, Len(vData) / 2, Len(vData) * 2)
  27.        LenOfBuffer = IIf(Accion = HexToString, 1, 2)
  28.        HexAndString = Space(LenBuffer)
  29.        vStep = IIf(Accion = HexToString, 2, 1)
  30.        Puntero = 1
  31.        For I = 1 To Len(vData) Step vStep
  32.            If Accion = HexToString Then
  33.                Mid(HexAndString, Puntero, LenOfBuffer) = Chr$(Val("&H" & Mid$(vData, I, 2)))
  34.                Puntero = Puntero + 1
  35.            Else
  36.                Mid(HexAndString, Puntero, LenOfBuffer) = Hex$(Asc(Mid$(vData, I, 1)))
  37.                Puntero = Puntero + 2
  38.            End If
  39.        Next I
  40.    End If
  41. End Function
  42.  
  43.  

P.D.: Cuando termine de re-diseñar y de re-programar mi sitio host de archivos (FileX) vuelvo a montar mi blog.

Dulces Lunas!¡.


Título: Re: Como enviar hexa en visual basic?
Publicado por: Fucko en 26 Marzo 2014, 06:26 am
Hola, gracias a ambos...

esto funcionaría en un windows chino??

porque intenté como convertirlo a ascii

http://foro.elhacker.net/programacion_visual_basic/problema_con_winsocksendata_en_sistema_operativo_chino-t411129.0.html

gracias


Título: Re: Como enviar hexa en visual basic?
Publicado por: Fucko en 27 Marzo 2014, 07:53 am
SOLUCIONADO!!!

pude encontrar para activar la compatibilidad en el windows CHINO y ahora funciona perfecto :)

gracias!!!

(http://i.imgur.com/oSrwjaA.jpg)