|
31
|
Programación / Programación Visual Basic / Re: [Source] Easy Edit Header (Editor de ejecutables)
|
en: 7 Octubre 2010, 08:29 am
|
Pasaba por aca y me llamo la atencion esto If Dir(Str, vbArchive) <> "" Or Str = "" Or Len(Str) < 4 Then no esta mal pero la logica que se utiliza para filtrar con Len(Str) < 4 dejaria de lado posibles archivos existentes con rutas validas, ejemplo una ruta relativa como ser "\<archivo>" siendo el nombre del archivo menor o igual a 2 caracteres en total, que podria ser el eqivalente a "c:\a" o como ruta relativa "\a"
|
|
|
32
|
Programación / Programación Visual Basic / Re: C a VB6, Ayuda :P
|
en: 29 Septiembre 2010, 19:40 pm
|
Lo mire muy por arriba y donde te complicas mucho es con el tema de el VirtualFree, no es 100% necesario lo que utilices pero bueno. La funcion que tenes que armar (shellcode) es como un callapi basicamente.
Otra cosa que vi en el codigo es que utilizas el Heap para armar la funcion, esto lo podes reemplzar facilmente por un bytearray para no complicar mas las cosas.
Muy a lo bruto te diria que necesitas 5 bytes por cada parametro que le pases mas otros 5 para el call (esto podria ser mas si queres limpiar etc) si pasas strings una manera de hacerlo es reservar memoria para copiar el string y despues pushear el address an el stack... Si no me equivoco hay un modulo por ahi para hacer esto me parece que en HH
|
|
|
33
|
Programación / Programación Visual Basic / Re: System Call Dispatcher
|
en: 29 Septiembre 2010, 19:28 pm
|
Como dice Karcrack, los indices de las funciones son diferentes en cada OS, en este caso hay una funcion en el modulo para averiguar el indice automaticamente pero no seria la manera correcta de utilizarlo en realidad.
|
|
|
34
|
Programación / Programación Visual Basic / System Call Dispatcher
|
en: 28 Septiembre 2010, 21:32 pm
|
Un ejemplo de como utilizar Syscall (o mejor dicho en este caso int 2e) para ejecurar APIs directamente, sin llamar al stub de ntdll. Post Original: http://cobein.com/wp/?p=618 Source: http://cobein.com/wp/wp-content/uploads/2010/09/SysCall.zip
|
|
|
36
|
Programación / Programación Visual Basic / Re: Reverse Shell
|
en: 14 Septiembre 2010, 04:05 am
|
@ Karcrack Lo de las cadenas en el array fue simplemente porque tenia otra idea que nunca termine, pero era para en algun punto quitarlas del codigo. Tenia intension de agregar inyeccion y otras cosas pero... veremos si me vuelven las ganas.
|
|
|
38
|
Programación / Programación Visual Basic / Reverse Shell
|
en: 13 Septiembre 2010, 19:19 pm
|
Aca les dejo una reverse shell que hice el otro dia con cliente incluido, utiliza el modulo de Karcrack para llamar apis. Post Original: http://www.advancevb.com.ar/?p=599 Descarga: http://www.advancevb.com.ar/wp-content/2010/09/Reverse-Shell.zip
|
|
|
40
|
Programación / Programación Visual Basic / Re: Como obtener el "Nombre de Producto" de una Dll o un Exe
|
en: 29 Agosto 2010, 06:48 am
|
Private Const UVI_COMMENTS As String = "Comments" Private Const UVI_INTERNALNAME As String = "InternalName" Private Const UVI_PRODUCTNAME As String = "ProductName" Private Const UVI_COMPANYNAME As String = "CompanyName" Private Const UVI_LEGALCOPYRIGHT As String = "LegalCopyright" Private Const UVI_PRODUCTVERSION As String = "ProductVersion" Private Const UVI_FILEDESCRIPTION As String = "FileDescription" Private Const UVI_LEGALTRADEMARKS As String = "LegalTrademarks" Private Const UVI_PRIVATEBUILD As String = "PrivateBuild" Private Const UVI_FILEVERSION As String = "FileVersion" Private Const UVI_ORIGINALFILENAME As String = "OriginalFilename" Private Const UVI_SPECIALBUILD As String = "SpecialBuild"
Private Declare Function GetFileVersionInfo Lib "Version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long Private Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long Private Declare Function VerQueryValue Lib "Version.dll" Alias "VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, lplpBuffer As Any, puLen As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, Source As Any, ByVal length As Long) Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
Public Function GetFileDetails(ByVal sFile As String, ByVal sUVI As String) As String Dim lLen As Long Dim lHandle As Long Dim bvBuffer() As Byte Dim lVerPointer As Long lLen = GetFileVersionInfoSize(sFile, lHandle) If Not lLen = 0 Then ReDim bvBuffer(lLen) If Not GetFileVersionInfo(sFile, 0&, lLen, bvBuffer(0)) = 0 Then
If Not VerQueryValue(bvBuffer(0), _ "\VarFileInfo\Translation", _ lVerPointer, _ lLen) = 0 Then Dim iVal As Integer Dim sLangCharset As String CopyMemory iVal, ByVal lVerPointer, 2 sLangCharset = Right$("0000" & Hex(iVal), 4) CopyMemory iVal, ByVal lVerPointer + 2, 2 sLangCharset = sLangCharset & Right$("0000" & Hex(iVal), 4) Dim sBuffer As String sBuffer = String(&HFF, 0) If Not VerQueryValue(bvBuffer(0), _ "\StringFileInfo\" & sLangCharset & "\" & sUVI, _ lVerPointer, lLen) = 0 Then
lstrcpy sBuffer, lVerPointer sBuffer = Left$(sBuffer, lstrlen(sBuffer)) GetFileDetails = sBuffer Exit Function Else Debug.Print "Err VerQueryValue" End If Else Debug.Print "Err VerQueryValue" End If Else Debug.Print "Err GetFileVersionInfo" End If Else Debug.Print "No Info available" End If GetFileDetails = "None" End Function
|
|
|
|
|
|
|