Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: EstoyBaneado en 1 Junio 2005, 02:44 am



Título: VxD's en VB
Publicado por: EstoyBaneado en 1 Junio 2005, 02:44 am
Hola, alguien sabe como usar un VXD en el Visual?

tengo el VxD, el binario y el source... tengo q pasarlo a DLL?

bueno, gracias

salu2.


Título: Re: VxD's en VB
Publicado por: ....Gusto.... en 1 Junio 2005, 03:23 am
creo q si, pero mucha idea no tengo de eso de las VxDs ;D


Título: Re: VxD's en VB
Publicado por: Slasher-K en 1 Junio 2005, 04:21 am
Para utilizar los VXDs existe la función DeviceIOControl (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/deviceiocontrol.asp). Con esta función se pueden enviar mensajes directamente al VXD y ejecutar las funciones que tenga incorporadas. Es al nivel más bajo que se puede acceder legalmente desde VB.

Esta función toma como parámetro un hDevice que es el handle al VXD. Este handle se obtiene anteriormente abriendo el archivo del VXD mediante la función CreateFile.

DeviceIoControl funciona tanto para VXDs dinámicos como estáticos.

Saludos.


Título: Re: VxD's en VB
Publicado por: EstoyBaneado en 2 Junio 2005, 16:59 pm
gracias a dios, un guru visita este foro xD

gracias EsLaYer

como haces para saber todo? jaja. salu2 capo.

PD: estuve 1 dia entero tratando de descubrir xq no creaba el file, y me di cuenta de q el vxd tiene q ser llamado con las barras, osea  "\\.\vxd.vxd" ....... jaja, q idiota. lo digo por si acaso otro comete el mismo error que yo xD.


Título: Re: VxD's en VB
Publicado por: EstoyBaneado en 7 Junio 2005, 17:10 pm
alguien sabe como pasar este code:
Código:
#define DDD      (ULONG) CTL_CODE( 0x00008305, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS )

a codigo VB ?? agradeceria cualquier ayuda.

salu2.


Título: Re: VxD's en VB
Publicado por: byebye en 7 Junio 2005, 18:02 pm
CTL_CODE es una funcion. METHOD_BUFFERED el valor es 0, y de FILE_ANY_ACCESS es 0 tb.


Título: Re: VxD's en VB
Publicado por: EstoyBaneado en 7 Junio 2005, 19:48 pm
a lo q me refiero es justamente a esa funcion, como la puedo pasar, xq no la entiendo, ahorita no la tengo aki, pero se q esta en un include del vc++.

cuando pase de vuelta, la posteo, a ver si me ayudan.

salu2


Título: Re: VxD's en VB
Publicado por: byebye en 7 Junio 2005, 20:43 pm
Código:
#define CTL_CODE(DeviceType, Function, Method, Access)( \
  ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))

en el ddk la tienes definida, no se hasta que punto podras usarlo en vb.


Título: Re: VxD's en VB
Publicado por: EstoyBaneado en 8 Junio 2005, 00:07 am
q rayos es el ddk?  ;)


Título: Re: VxD's en VB
Publicado por: Slasher-K en 8 Junio 2005, 04:01 am
DDK = Driver Developers Kit

Es una base de datos con recursos para los programadores de drivers pero hay que pagar. Tiene info técnica, conceptos, funciones, etc.

Acá te dejo la macro que puso Mek pero para VB:

Código:
Function LShiftWord(ByVal Word As Integer, ByVal C As Integer) As Integer
          Dim dw&

  dw = Word * (2 ^ C)

  If dw And &H8000& Then
    LShiftWord = CInt(dw And &H7FFF&) Or &H8000
  Else
    LShiftWord = dw And &HFFFF&
  End If
End Function

Function CTL_CODE(DeviceType As Integer, Func As Integer, Method As Integer, Access As Integer) As Long
  CTL_CODE = (LShiftWord(DeviceType, 16) Or LShiftWord(Access, 14) Or LShiftWord(Func, 2) Or Method)
End Function

Saludos.


Título: Re: VxD's en VB
Publicado por: byebye en 8 Junio 2005, 06:22 am
eso de que hay que pegar.... jeje. yo tengo el ddk para win9x y para 2k. si quereis alguno lo subo.


Título: Re: VxD's en VB
Publicado por: Slasher-K en 8 Junio 2005, 06:52 am
Sería un gran aporte de tu parte Cara_Webo, realmente a veces se hace dificil conseguirlo. Si podrías subirlo te lo agradecería porque a mi se me cagaron los CD de MSDN con el DDK incluido  :'(.

Saludos.


Título: Re: VxD's en VB
Publicado por: EstoyBaneado en 8 Junio 2005, 17:30 pm
decididamente algo esta mal en esa funcion, ya q LShiftWord me devuelve un integer, y eso jamas puede ser, xq el valor tiene q ser long, y aunque yo se lo cambie a long, el valor q me devuelve siempre es un numero entero.

la funcion cuando le paso el valor &H8305 me devuelve 0!!!!

no se porque en c++ funciona correctisimamente, y en VB no  :'(

nimporta, ya lo arreglare.

suban ese ddk, q yo ni sabia q existia  ;D