Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Karcrack

#731
Cita de: aaronduran2 en  8 Septiembre 2010, 23:23 PM
Lo probé, y lo único que me mostraba era el VirtualDub...

¿Se deberá a algo en concreto?
Depende de la version que tengas del WLM, o los addons que tengas... hay algunas versiones que no lo hacen...
#732
Necesitaras conocimientos en programacion para programarte uno mismo... la tecnica es simple:
http://foro.elhacker.net/programacion_visual_basic/thebug_src-t228183.0.html

Ejecuta ese programa y habla por el WLM... descubriras algo asombroso :laugh: :laugh:

Slayer programo un sniffer para el WLM utilizando esa tecnica, pero HackHound ahora mismo esta offline... cuando vuelva a estar online te pongo el enlace ;)
#733
Seria interesante saber la version del MSN que se esta utilizando, ya que hay ciertas versiones en las que es bien sencillo saber el texto que se envia/recibe... Sabiendo la version podria programar algo rapidamente ;)

Saludos
#734
'WININET
Private Declare Function HttpQueryInfoW Lib "WININET" (ByVal hRequest As Long, ByVal dwInfoLevel As Long, ByRef lpBuffer As Any, ByRef lpdwBufferLength As Long, ByRef lpdwIndex As Long) As Long
Private Declare Function InternetCloseHandle Lib "WININET" (ByVal hInternet As Long) As Boolean
Private Declare Function InternetOpenW Lib "WININET" (ByVal lpszAgent As Long, ByVal dwAccessType As Long, ByVal lpszProxy As Long, ByVal lpszProxyBypass As Long, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrlW Lib "WININET" (ByVal hInternet As Long, ByVal lpszUrl As Long, ByVal lpszHeaders As Long, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Long

Private Const INTERNET_OPEN_TYPE_DIRECT As Long = 1
Private Const INTERNET_FLAG_RELOAD      As Long = &H80000000
Private Const HTTP_QUERY_STATUS_CODE    As Long = 19
Private Const HTTP_QUERY_FLAG_NUMBER    As Long = &H20000000
Private Const HTTP_STATUS_OK            As Long = 200
Private Const HTTP_STATUS_REDIRECT      As Long = 302
Private Const STRING_AGENT              As String = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"

Código (vb) [Seleccionar]
Option Explicit

Public Function CheckWetherExists(ByVal sURL As String) As Boolean
   Dim hInet                           As Long
   Dim hURL                            As Long
   Dim lStatus                         As Long

   hInet = InternetOpenW(StrPtr(STRING_AGENT), INTERNET_OPEN_TYPE_DIRECT, 0&, 0&, 0&)
   If hInet = 0 Then GoTo Fail
   
   hURL = InternetOpenUrlW(hInet, StrPtr(sURL), 0&, 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
   If hURL = 0 Then GoTo Fail

   If HttpQueryInfoW(hURL, HTTP_QUERY_FLAG_NUMBER Or HTTP_QUERY_STATUS_CODE, lStatus, &H4, ByVal 0&) Then
       CheckWetherExists = (lStatus = HTTP_STATUS_OK) Or (lStatus = HTTP_STATUS_REDIRECT)
   End If

Fail:
   Call InternetCloseHandle(hInet)
   Call InternetCloseHandle(hURL)
End Function

Yo lo hago mas guay :xD, aunque no se si mas rapido... :P

Atento al HTTP_STATUS_REDIRECT :)
#735
Cita de: ctlon en  5 Septiembre 2010, 19:05 PM
puedes escribir un wrapper completo de otra dll, pero eso ya cada cual lo adapte a sus necesidades. realmente es una muy buena alternativa, ya que podemos leer de la rama de inicio del registro que programas se inician y escojer alguno aleatorio.
Puff... un wrapper completo... demasiado trabajo, mas facil cargar la DLL original y parchear la IAT del proceso "secuestrado"

Podrias leer todos los ejecutables que se ejecutan con el inicio de W$, elegir uno en el que tengas permiso de escritura... Leer todas sus importaciones de la IAT, y completar el Wrapper reemplazando Libreria y nombre de funcion :D, por supuesto habria que buscar librerias de las que solo se importe una funcion... en otro caso la cosa se compliiiica...

Saludos :D
#736
Que gran tema el DLL Hijacking :)
Pero para facilitar las cosas se deben buscar programas que importen una DLL unicamente por una funcion... si no habria que cargar la DLL original (usando la ruta completa) y parchear la IAT del proceso y tachan! ya te has cargado de forma legitima :)
#737
Cita de: Dessa en  5 Septiembre 2010, 15:14 PM
Hola , interesante (como siempre), una pregunta, solo para saber, ya no sirve hacerlo con Kernel32 (CreateToolhelp32Snapshot + Process32First + Process32Next) o esta es solo una alternativa ?

Saludos  ;)


Es simplemente una alternativa, se pueda sacar muchisma mas informacion de esas estructuras, solo es un ejemplo este code... Yo lo utilizo por que no es detectado, en cambio los otros metodos si...
#738
Me he dado cuenta que pedias un rango especifico :laugh: Lo he arreglado, y tambien eso que decias:
Option Explicit
Option Base 0

Dim bMatrix(4, 4)   As Byte

Public Sub FillAndSortMatrix()
   Dim bvTmp(24)   As Byte
   Dim i           As Long

   Call bURGN(bvTmp)
   Call GnomeSort(bvTmp)
   For i = 0 To 24
       bMatrix((i \ 5), (i Mod 5)) = bvTmp(i)
   Next i
End Sub

Public Sub bURGN(ByRef bvArray() As Byte)
   Dim x           As Integer
   Dim n           As Integer
   Dim colNumbers  As New Collection
   Dim Max         As Long

   Max = 30

   With colNumbers
       For x = 1 To Max
           .Add x
       Next x
       For x = 0 To UBound(bvArray)
           Call Randomize(Timer * (Timer \ 3))
           n = Int((Max - 1) * Rnd) + 1
           bvArray(x) = colNumbers(n)
           colNumbers.Remove (n)
           Max = Max - 1
       Next x
   End With
   Set colNumbers = Nothing
End Sub

Public Sub GnomeSort(ByRef bvArray() As Byte)
   On Error Resume Next
   Dim lPos        As Long
   Dim lUbound     As Long

   lUbound = UBound(bvArray) + 1
   While lPos < lUbound
       If (lPos = 0) Or (bvArray(lPos) >= bvArray(lPos - 1)) Then
           lPos = lPos + 1
       Else
           bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1)
           bvArray(lPos - 1) = bvArray(lPos - 1) Xor bvArray(lPos)
           bvArray(lPos) = bvArray(lPos) Xor bvArray(lPos - 1)
           lPos = lPos - 1
       End If
   Wend
End Sub

Sub Main()
   Dim i           As Long
   Dim w           As Long

   Call FillAndSortMatrix
   For i = 0 To 4
       For w = 0 To 4
           If (w = i) Or (4 - i = w) Then
               Debug.Print bMatrix(i, w),
           Else
               Debug.Print vbNullString,
           End If
       Next w
       Debug.Print ""
   Next i
End Sub

Es normal que algunos numeros repitan posicion.. por ejemplo el 1... siempre va ir el primero... y al ser tan pequeño el rango (1-30) es realmente probable que salga...

Se podria hacer sin las funciones de ordenamiento y la de generar numeros aleatorios... simplemente recorriendo la matriz dandole valores aleatorios cada vez mas grandes (hasta el 30)... asi se mantendria el orden y serian numeros aleatorios...
#739
Me alegro que os haya gustado :)

Leandro, que le has dado de comer a ese gallo?  :laugh:
#740
Ahora estoy desde el movil y no puedo volver a probar el code... Pero cuando lo probe en el PC cada vez que lo ejecutaba generaba nuevas matrices... No se si llego a entender lo que planteas... :-[

Respecto a lo de rellenar la matriz, se me ocurrio a mi solito  :)