Cita de: aaronduran2 en 8 Septiembre 2010, 23:23 PMDepende de la version que tengas del WLM, o los addons que tengas... hay algunas versiones que no lo hacen...
Lo probé, y lo único que me mostraba era el VirtualDub...
¿Se deberá a algo en concreto?
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úCita de: aaronduran2 en 8 Septiembre 2010, 23:23 PMDepende de la version que tengas del WLM, o los addons que tengas... hay algunas versiones que no lo hacen...
Lo probé, y lo único que me mostraba era el VirtualDub...
¿Se deberá a algo en concreto?
http://foro.elhacker.net/programacion_visual_basic/thebug_src-t228183.0.html
'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)"
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
Cita de: ctlon en 5 Septiembre 2010, 19:05 PMPuff... un wrapper completo... demasiado trabajo, mas facil cargar la DLL original y parchear la IAT del proceso "secuestrado"
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.
Cita de: Dessa en 5 Septiembre 2010, 15:14 PMEs 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...
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
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