Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Karcrack en 9 Septiembre 2009, 23:00 pm



Título: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: Karcrack en 9 Septiembre 2009, 23:00 pm
Código
  1. Option Explicit
  2. '---------------------------------------------------------------------------------------
  3. ' Module    : mNativeGetDrives
  4. ' Author    : Karcrack
  5. ' Date      : 09/09/2009
  6. ' Purpose   : Alternative to GetLogicalDrives/GetLogicalDriveStrings/GetDriveType
  7. '               using NATIVE APIs!!!!
  8. ' Thanks    : SkyWeb -> Tester =P
  9. ' ChangeLog :
  10. '           - First release                                             090909
  11. '           - Improved, now with structure and added NtGetDriveType     100909
  12. '---------------------------------------------------------------------------------------
  13.  
  14. 'NTDLL
  15. Private Declare Function NtQueryInformationProcess Lib "NTDLL" (ByVal hProcess As Long, ByVal ProcessInformationClass As Long, ProcessInformation As Any, ByVal ProcessInformationLength As Long, ReturnLength As Long) As Long
  16.  
  17. Private Type PROCESS_DEVICEMAP_INFORMATION
  18.    DriveMap                As Long
  19.    DriveType(1 To 32)      As Byte
  20. End Type
  21.  
  22. Private Const ProcessDeviceMap = 23
  23.  
  24. Public Function NtGetLogicalDrives() As Long
  25.    Dim tPDC                    As PROCESS_DEVICEMAP_INFORMATION
  26.  
  27.    If NtQueryInformationProcess(-1, ProcessDeviceMap, tPDC, Len(tPDC), ByVal 0&) = 0 Then
  28.        NtGetLogicalDrives = tPDC.DriveMap
  29.    End If
  30. End Function
  31.  
  32. Public Function NtGetLogicalDrivesStrings() As String
  33.    Dim lUnits                  As Long
  34.    Dim i                       As Long
  35.  
  36.    lUnits = NtGetLogicalDrives
  37.  
  38.    For i = 0 To 25
  39.        If lUnits And 2 ^ i Then
  40.            NtGetLogicalDrivesStrings = NtGetLogicalDrivesStrings & Chr$(Asc("A") + i) & ":\" & Chr$(0)
  41.        End If
  42.    Next i
  43. End Function
  44.  
  45. Public Function NtGetDriveType(ByVal nDrive As String) As Long
  46.    Dim tPDC                    As PROCESS_DEVICEMAP_INFORMATION
  47.    Dim lNumb                   As Long
  48.  
  49.    If NtQueryInformationProcess(-1, ProcessDeviceMap, tPDC, Len(tPDC), ByVal 0&) = 0 Then
  50.        lNumb = Asc(Left$(UCase$(nDrive), 1)) - Asc("A")
  51.        If Not lNumb > 31 Then
  52.            NtGetDriveType = tPDC.DriveType(lNumb + 1)
  53.        End If
  54.    End If
  55. End Function

Un ejemplo de uso aqui:
Código:
http://www.advancevb.com.ar/wp-content/2009/09/mNativeGetVersion.zip

Saludos ::)


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: Karcrack en 10 Septiembre 2009, 02:05 am
Actualizado!

Le he añadido NtGetDriveType...Y la estructura, para que quede mas claro lo que hace :-\


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: fede_cp en 10 Septiembre 2009, 05:09 am
muy buen post, como pregunto, tambien agradezco, ya que la mayoria de los topics, hay discución, un post realmente bueno hay que felicitar!

gracias karcrack

saludos


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: Karcrack en 10 Septiembre 2009, 11:41 am
De nada fede_cp ;D

Es raro... apenas nadie ha posteado en este codigo (lo he posteado en mas foros), por lo visto estan ocupados :xD Se acaban las vacaciones :( :P

Aunque bueno, si no dicen nada me lo tomare como que no hay nada que mejorar :xD

Saludos :D


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: aaronduran2 en 10 Septiembre 2009, 13:24 pm
La verdad es que tus códigos son buenísimos.

Y gracias por compartirlo ;)


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: agus0 en 10 Septiembre 2009, 21:08 pm
Muy buen condigo...

Gracias por compartirlo :)


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: [Zero] en 10 Septiembre 2009, 22:28 pm
Bueno código, seguro que las nativas son menos detectadas  :).

Saludos

PD: Hazlo en C capullo  :xD.


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: Karcrack en 11 Septiembre 2009, 00:17 am
PD: Hazlo en C capullo  :xD.
Hacerlo en C no supone ningun reto... :-\ Ademas, seguro que debe haber codigos similares a este ya en C... (Para drivers y tal...) en VB no encontraras mas que este ::)


Gracias a todos por responder ;)


Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: XcryptOR en 12 Septiembre 2009, 22:38 pm
karkrack tu sabes que este tipo de codigo no tienen muchos comentarios pues para la mayoria de usuarios de este foro es muy avanzada, la gran mayoria se quedaron estancados en cosas relativas a infección por messenger o a troyanos, bueno y como dices en C no supone reto desde c se hace lo que a uno le venga en gana, pisando el terreno de VB es dificil y hay poca o ninguna documentación al respecto.

Ya lo habia visto en HH, y la verdad como todos tus trabajos con Apis nativas muy bueno, yo tambien me adentre en el terreno de las apis nativas y hay algunas que se prestan para cosas geniales, lastima que como no hay suficiente documentacion y tambien a mis limitados conocimientos en memoria desde VB, no he podido hacerlas trabajar.  ;D


ahhh un punto a favor es que conoces bien el asm y yo apenas lo basico, saludos man eres grande



Título: Re: [NTDLL-NATIVE] Alternativa GetLogicalDrives y mas{NtQueryInformationProcess}
Publicado por: Karcrack en 12 Septiembre 2009, 23:32 pm
Gracias por el apoyo XcryptOR :)