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 - MCKSys Argentina

#3621
Un ejemplo:

Código (vb) [Seleccionar]

Option Explicit

Public Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Const GWL_STYLE = (-16)

Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal hwnd As Long, ByVal dwId As Long, riid As tGUID, ppvObject As Object) As Long
'Esta API que sigue se usa para enumerar los objetos IAccessible de los children de la ventana
'Declare Function AccessibleChildren Lib "oleacc" (ByVal paccContainer As IAccessible, ByVal iChildStart As Long, ByVal cChildren As Long, rgvarChildren As Variant, pcObtained As Long) As Long

Type tGUID
    lData1            As Long '4 bytes DWORD
    nData2            As Integer '2 bytes
    nData3            As Integer '2 bytes
    abytData4(0 To 7) As Byte  '8 bytes (array)
End Type

Type AccObject
    objIA As IAccessible 'objeto IAccessible de oleacc.dll
    lngChild As Long '4 bytes
End Type

Global Enumerando As Boolean
Global Marcar As Long

Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
'Esta funcion es el Callback de la API EnumWindows (Se llama por cada ventana de nivel 1 que encuentre)
'Los BalloonTips del Area de Notificacion estan en el nivel 1!

Dim retval As Long ' return value
Dim accName As String ' guardar el nombre de la propiedad de IAccessible
Dim clsname As String ' guarda nombre de la clase de la ventana
Dim oParent As IAccessible  ' objeto IAccessible que se llenara al llamar a IAccessibleFromHwnd

'Room for classname
clsname = Space(200)
'Get classname string
retval = GetClassName(hwnd, clsname, 200)
clsname = Trim(Mid(clsname, 1, retval))
'get style DWORD of window
retval = GetWindowLong(hwnd, GWL_STYLE)

If LCase(clsname) = "tooltips_class32" Then     'if classname is a tooltip
    If retval And &HC0 Then                     'and the style has the TTS_BALLOON (0x40) and the TTS_CLOSE (0x80) bits set
        Set oParent = IAccessibleFromHwnd(hwnd) 'get IAccessible object of window
        accName = Trim(oParent.accName)         'get accName property value
        If InStr(1, accName, "Threat detected by Sophos.") <> 0 Then 'compare propval with my text
            Form1.Label1.Caption = "Sophos Detectado!!!" 'jejeje
        End If
    End If
End If

EnumWindowsProc = 1 ' return value of 1 means continue enumeration
End Function

Function IAccessibleFromHwnd(hwnd As Long) As IAccessible
'Obtiene objeto IAccessible de una ventana a partir del hwnd de la misma
Dim oIA As IAccessible
Dim tg As tGUID
Dim lReturn As Long

' Define the GUID for the IAccessible object
' {618736E0-3C3D-11CF-810C-00AA00389B71}

With tg
    .lData1 = &H618736E0
    .nData2 = &H3C3D
    .nData3 = &H11CF
    .abytData4(0) = &H81
    .abytData4(1) = &HC
    .abytData4(2) = &H0
    .abytData4(3) = &HAA
    .abytData4(4) = &H0
    .abytData4(5) = &H38
    .abytData4(6) = &H9B
    .abytData4(7) = &H71
End With

' Retrieve the IAccessible object from the window identified by hwnd
lReturn = AccessibleObjectFromWindow(hwnd, 0, tg, oIA)
' Return Object
Set IAccessibleFromHwnd = oIA
End Function


El código anterior debe ir en un modulo y detectaría una notificacion tipo balloon. En este caso, detecta la ventana que muestra el AV Sophos, al detectar un virus...  :P

Saludos!
#3622
Seguridad / Re: Ofuscadores y Descompiladores
15 Enero 2014, 04:51 AM
Cita de: CoolTesting en 15 Enero 2014, 02:55 AM
Lenguaje de programación: Visual Studio 2013.

Eso no es un lenguaje de programación...  :P

Qué usas? C++, .NET?
#3623
Tienes la función InStr: http://msdn.microsoft.com/en-us/library/8460tsh1(v=vs.90).aspx

Funciona tanto en VB6 como en .NET.

Saludos!
#3625
Programación C/C++ / Re: Worm básico en C++
14 Enero 2014, 00:40 AM
Cita de: ivancea96 en 13 Enero 2014, 14:28 PM
En C no hay "true", no es verdad? (quizás me equivoque, yo soy hijo de C++)

Citar
Boolean type

C99 added a boolean (true/false) type (_Bool) which is defined in the <stdbool.h> header. Additionally, the standard requires that macros are defined to alias the type as bool as well as providing macros for true and false.

Source: http://en.wikipedia.org/wiki/C_data_types

Saludos!

PD: C11 es el standar hoy día, e incluye a C99: http://en.wikipedia.org/wiki/ANSI_C
#3626
Programación C/C++ / Re: Worm básico en C++
13 Enero 2014, 13:09 PM
Cita de: zikotik en 13 Enero 2014, 12:47 PM
Nunca se me había ocurrido lo del "1==1", me ahorro una variable y una suma...

Tambien puedes usar While(True)

Saludos!
#3627
Creo que el problema consiste en que la gran mayoria es ignorante, por ello piensan opinan así.

De todas formas: A quién carajos le importa lo que piense opine ese tipo de gente?

Saludos!
#3628
La tablet parece ser esta: http://prixton.com/tienda/product_info.php?products_id=216

O bien es muy parecida. hay un par de specs que son diferentes, pero bueno, ahi hay mas info.

Aunque no dice nada de Play...

Saludos!
#3629
Una cosa que puedes consultar, para determinar el compilador es, por ej., usar la base de signatures de PeID. Esa base no contiene solo packers, sino tambien Entrypoints de los compiladores mas usados (por no decir casi todos).

Esta bueno que revises esas signatures, para que, luego de un tiempo, reconozcas el compilador con solo abrirlo en Olly...

Saludos!

PD: Las bases estan en varios lugares y son de texto plano asi que no deberias tener dramas con para hallar una.
#3630
No sé mucho de C++, pero si lo has visto en un codigo fuente, quizás sea asm.

En ese caso, offset se referiria a lo dicho por ByGaiden, pero aplicado a una variable o función dada...

Saludos!