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ú

Temas - STARZ

#1
Código (vb) [Seleccionar]

'Author: STARZ!
'Now: 2012/08/23 10:11:51 a.m.
'Purpose: Get the AntiVirus & Firewall installed
'Note: Tested on Win7x64 but should work on XP too

Option Explicit
Private Declare Function RtlGetVersion Lib "NTDLL.DLL" (ByRef lpVersionInformation As Long) As Long

Private Function sGetAnti(sAnti As String) As String
'Thx Karcrack for the GetNuber/WinVersion
Dim oObj As Object
Dim sWmgmts As String
Dim tOSVw(&H54) As Long
tOSVw(0) = &H54 * &H4
Call RtlGetVersion(tOSVw(0))
    sWmgmts = "winmgmts:\\.\root\SecurityCenter"
If Join(Array(tOSVw(4), tOSVw(1), tOSVw(2)), ".") >= "2.6.0" Then sWmgmts = sWmgmts & "2"
For Each oObj In GetObject(sWmgmts).ExecQuery("Select * from " & sAnti & "Product"): sGetAnti = oObj.DisplayName: Next
End Function

Sub Main()
MsgBox "AV: " & sGetAnti("AntiVirus")
MsgBox "FW: " & sGetAnti("FireWall")
End Sub


Use una funcion de karcrack que obtiene la version del windows.
#2
Hola, jugando un poco con el HexWorksop, "taskmgr.exe" y "msconfig.exe" se me ocurrió una forma para prevenir la ejecución de estos dos programitas.

El "Taskmgr.exe" crea un mutex  para prevenir la ejecución múltiple de sí mismo
El "msconfig.exe" crea un Semaphore, que vendría a tener la misma utilidad que el mutex

La idea es la siguiente:
Que nuestra aplicación cree ese mutex/semaphore para que task y msconf se crean que ya están abiertos y no se ejecuten.

Ahí va la pregunta: ¿Alguno de ustedes tiene idea de cómo puedo hacer para averiguar el mutex/semaphore que usan estas dos apps.?
#3
Leyendo un post de hace unos dias de Karcrack en donde explicaba brevemente como obtener el LocaleID con una API de MSVBVM60 indocumentada (en el buen sentido de la palabra) me puse a investigar un poco sobre esta dll fundamental para el VB6. Ya habia notado que Karcrack la habia usado para su Invoke con la funcion Zombie y Addref, etc.
Googleando un poco encontre sitios en donde ya la habian debuggeado:

http://andrewl.dreamhosters.com/archive/67162323.txt
http://www.decompiler-vb.net/documentation/MSVBVM60%20vs%20VBReFormer.pdf

Me intereso muchisimo el tema, aunque no se como usarlas  :huh: Si se fijan, existen varias que son interesantes:

__vbaFileOpen
__vbaFileClose

rtcGetYear
__vbaWriteFile
rtcRemoveDir
rtcKillFiles
rtcFileCopy

rtcSetFileAttr
__vbaEnd
rtcShell
rtcSendKeys
rtcDoEvents
rtcSplit

(en negrita aquellas funciones que son algo detectadas por los AVs y que por ende estaria bueno trabajar sobre ellas)

Esta ultima la pude plasmar en una linda funcion  ;-)
Código (vb) [Seleccionar]

'Alternativa a End
Private Declare Sub Chau Lib "MSVBVM60.dll" Alias "__vbaEnd" ()

Private Sub Form_Load()
MsgBox "Me voy a cerrar solito :)"
Chau
End Sub

'Nota: no funciona en la IDE, solo compilado


No se si a alguien le interesa, supongo que Karcrack que esta mas experimentado en el tema me/nos podria dar una manito. Estaria genial si me ayudan a crear todas las otras o mas funciones/subs.
#4
Hola, estoy queriendo resumir y usar Invoke o CAbN (Call Api by Name) en el siguiente algoritmo de encriptacion basicamente porque es bastante rapido.

http://pastebin.com/R9eXK9gX

No tuve ningun problema en pasar todas funciones, pero me he trabado en esta parte (CryptDecrypt y CryptEncrypt)

Código (vb) [Seleccionar]

Private Declare Function CryptEncrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long, ByVal dwBufLen As Long) As Long
Private Declare Function CryptDecrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long) As Long


Código (vb) [Seleccionar]
 
 'Encrypt or decrypt depending on the Encrypt parameter
 lLength = Len(Text)
 If (Encrypt) Then
  If (CryptEncrypt(hKey, 0, 1, 0, Text, lLength, lLength) = 0) Then '<--- DUDA! No se como pasarlo a CAbN
     Call Err.Raise(vbObjectError, , "Error during CryptEncrypt.")
   End If
 Else
   If (CryptDecrypt(hKey, 0, 1, 0, Text, lLength) = 0) Then '<--- DUDA!
     Call Err.Raise(vbObjectError, , "Error during CryptDecrypt.")
   End If
 End If
 


Agradeceria que alguien me explique como hacer para usar el CAbN en esos dos casos.
Supongo que voy a poner el codigo final (con todas las funciones pasadas a CAbN) cuando resuelva esta parte.
#5
Hola, seguí investigando un poco con el Invoke que ustedes me explicaron como usar  ;-) (gracias por eso).

Me han surgido dos dudas y me gustaría que me enseñaran a resolverlas tras estar probando y probando posibles soluciones.

1 - (tratando con hooks):
Código (vb) [Seleccionar]

Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Public Type ESTRUCTURADELHOOK
VkCode As Long
ScanCode As Long
Flags As Long
Time As Long
DwExtraInfo As Long
End Type
____________________________________________________________________
Uso:

Dim KbHook As ESTRUCTURADELHOOK
CopyMemory kbHook, Parameters, Len(kbHook)


¿Cómo hago Invoke CopyMemory teniendo declarado un type ahi arriba?

2 - Tratando con WININET (Ejemplo de FreeVBCode)
Estoy usando este code para ver el source de una web y lo único que no pude transformar con Invoke fue lo siguiente:

Código (vb) [Seleccionar]

bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)


Me leí TODO este thread, pero no me solucionó la duda
#6
Ejemplo cualquiera para practicar el uso de Kinvoke; codigo normal con la API declarada
Código (vb) [Seleccionar]
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


private sub form_load()

Call ShellExecute(0, "Open", App.Path & "\UPX.exe", App.Path & "\comprimeme.exe", vbNullString, 0)

end sub


Exactamento lo mismo pero sin la api declarada (NO ME FUNCIONA):
Código (vb) [Seleccionar]

       Invoke "KERNEL32", "ShellExecuteA", 0, StrPtr("Open"), StrPtr(App.Path & "\UPX.exe"), strptr(App.Path & "\comprimeme.exe"), vbNullstring, 0



¿Cuál es el procedimiento, los pasos que tengo que realizar para pasar de mi función con la API declarada a una con Kinvoke?

Muchas Muchas gracias

Edit: estoy usando el módulo que aquí se detalla: http://cobein.com/wp/?p=567
#7
Hola:

Necesito que mi programa descargue la primera Ip y el puerto que aparece en la siguiente Web de forma automatica y luego los mande a un textbox.

Se me habia ocurrido cargar la web en un webbrowser y extraer la IP:PUERTO, pero la verdad no se me ocurre como hacer para extraerlas.

http://hidemyass.com/proxy-list/


Necesito extraer lo que esta en rojo:



Desde ya muchas gracias
#8
Hola, tengo el siguiente code en index.html, queria saber como se hace para transformar USUARIODETWITTER en una variable que se modifique con el link a la url. Osea:
index.html?usuario=fulanito
y que entonces el script lea  "fulanito" en vez de USUARIO DE TWITTER.

Código (html4strict
) [Seleccionar]
<html>
<body>
<head>

</head>
<div id="twitter_update_list">
</div>
<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js">
</script>
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USUARIODETWITTER.json?callback=twitterCallback2&count=1">
</script>

</body>
</html>


¿Se entiende mi duda?
Chas gracias y se que se puede lo que pido  :)