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

#71
Programación Visual Basic / Re: NanoInvoke
14 Septiembre 2013, 17:24 PM
Funciona perfectamente en x64, de hecho lo he programado en Win8 x64.

Respecto al DEP, claro, si está activado no funciona. Aunque debería de estar forzado en todos los procesos y al menos por defecto no es así. De todas formas siempre puedes hacer /NXCOMPAT:NO para decirle a Windows que necesitas ejecutar código en secciones de datos ;D

Igualmente este código fallaría con un ejecutable compilado con diferente base address o tamaño de sección. Si miráis el código ASM podéis ver que el puntero a la IAT está hardcodeado.
#72
Programación Visual Basic / NanoInvoke
13 Septiembre 2013, 04:05 AM
Código (vb) [Seleccionar]
'USER32
Private Declare Function CallWindowProcW Lib "USER32" (ByRef first_asm As Currency, ByRef params() As Variant, ByVal lib As String, ByVal fnc As String, Optional ByVal null0 As Long = 0) As Long
'---------------------------------------------------------------------------------------
' Author : Karcrack
' Date   : 12092013
' Credits: sonykuccio (http://hackhound.org/forums/topic/2790-vb6asm-%C2%B5callapi/)
'---------------------------------------------------------------------------------------

Public Function NanoInvoke(ByRef sLib As String, ByRef sFnc As String, ParamArray params() As Variant) As Long
    Dim asm(11)     As Currency
    Dim p()         As Variant
   
    If UBound(params) >= 0 Then p = params

    asm(0) = -881438862054780.1504@: asm(1) = -140193315782017.312@: asm(2) = 93112413858165.2867@: asm(3) = 593189448021741.0902@
    asm(4) = 843045704464075.3748@: asm(5) = -4834317066834.7356@: asm(6) = 260429944098681.7488@: asm(7) = 537140947255014.6699@
    asm(8) = 7683543183094.8624@: asm(9) = 598313605633923.5838@: asm(10) = -200740417519275.4208@: asm(11) = 109.8337@

    NanoInvoke = CallWindowProcW(asm(0), p, sLib, sFnc)
End Function
' ASM Code: pastebin.com/5gnLv7xn


Un pequeño reto que surgió en HackHound :P

Ejemplo de uso:
Código (vb) [Seleccionar]
    Call NanoInvoke("user32", "MessageBoxW", 0, StrPtr("test"), StrPtr("karcrack"), 0)
    Call NanoInvoke("kernel32", "ExitProcess", 0)
#73
Sí, la solución es encargarse de la IAT manualmente. Almacena las cadenas de las librerías y los hashes de las funciones por ejemplo y luego creas tu la IAT a mano.
#74
Claro que es factible, de hecho si no me equivoco Yoda's crypter usaba TLS callbacks para descifrar. No acabo de comprender el problema del que hablas.

Apunte pedante: "Desencriptación" no existe, es "descifrado". De hecho cualquier derivado de [des]cifrar no es correcto en castellano.
#75
Lo mejor será que busques un análisis de algún investigador y obtengas el md5 de alguna muestra. Entonces será más fácil hacerte con un ejemplar.
#76
Pero habrá que ir sin cámara de fotos, digo yo :laugh:
#77
Tendrás que aprender Java y empezar a desarrollar para Android.

Suerte :D
#78
ASM / Re: Opcodes,informacion Indocumentada
17 Julio 2013, 00:19 AM
El problema es que he leído que esos opcodes son exclusivos de Intel. Nada tienen que ver con x86... Entonces AMD no debería de tenerlos siquiera mapeados :/
#79
ASM / Re: Opcodes,informacion Indocumentada
16 Julio 2013, 17:51 PM
Muy buen enlace :D Me pregunto que pasará con AMD :P
#80
La forma más común es recorriendo la estructura PEB_LDR_DATA del PEB en busca de KERNEL32. Tras encontrar su base se recorre su EAT en busca de LoadLibrary() y GetProcAddress() y se llama directamente a los punteros. :rolleyes:

Hay información en el foro busca sobre shellcodes y APIs :-*