Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (vb) [Seleccionar]
Option Explicit
'---------------------------------------------------------------------------------------
' Module    : mNativeGetDrives
' Author    : Karcrack
' Date      : 09/09/2009
' Purpose   : Alternative to GetLogicalDrives/GetLogicalDriveStrings/GetDriveType
'               using NATIVE APIs!!!!
' Thanks    : SkyWeb -> Tester =P
' ChangeLog :
'           - First release                                             090909
'           - Improved, now with structure and added NtGetDriveType     100909
'---------------------------------------------------------------------------------------

'NTDLL
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

Private Type PROCESS_DEVICEMAP_INFORMATION
    DriveMap                As Long
    DriveType(1 To 32)      As Byte
End Type

Private Const ProcessDeviceMap = 23

Public Function NtGetLogicalDrives() As Long
    Dim tPDC                    As PROCESS_DEVICEMAP_INFORMATION
   
    If NtQueryInformationProcess(-1, ProcessDeviceMap, tPDC, Len(tPDC), ByVal 0&) = 0 Then
        NtGetLogicalDrives = tPDC.DriveMap
    End If
End Function

Public Function NtGetLogicalDrivesStrings() As String
    Dim lUnits                  As Long
    Dim i                       As Long
   
    lUnits = NtGetLogicalDrives
   
    For i = 0 To 25
        If lUnits And 2 ^ i Then
            NtGetLogicalDrivesStrings = NtGetLogicalDrivesStrings & Chr$(Asc("A") + i) & ":\" & Chr$(0)
        End If
    Next i
End Function

Public Function NtGetDriveType(ByVal nDrive As String) As Long
    Dim tPDC                    As PROCESS_DEVICEMAP_INFORMATION
    Dim lNumb                   As Long
   
    If NtQueryInformationProcess(-1, ProcessDeviceMap, tPDC, Len(tPDC), ByVal 0&) = 0 Then
        lNumb = Asc(Left$(UCase$(nDrive), 1)) - Asc("A")
        If Not lNumb > 31 Then
            NtGetDriveType = tPDC.DriveType(lNumb + 1)
        End If
    End If
End Function


Un ejemplo de uso aqui:
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
Cita de: Hacker_Zero en 10 Septiembre 2009, 22:28 PM
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 :)