comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

NanoInvoke

  • 3 Respuestas
  • 2773 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« en: Septiembre 12, 2013, 11:05:30 pm »
Código: Visual Basic
  1. 'USER32
  2. 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
  3. '---------------------------------------------------------------------------------------
  4. ' Author : Karcrack
  5. ' Date   : 12092013
  6. ' Credits: sonykuccio (http://hackhound.org/forums/topic/2790-vb6asm-%C2%B5callapi/)
  7. '---------------------------------------------------------------------------------------
  8.  
  9. Public Function NanoInvoke(ByRef sLib As String, ByRef sFnc As String, ParamArray params() As Variant) As Long
  10.     Dim asm(11)     As Currency
  11.     Dim p()         As Variant
  12.    
  13.     If UBound(params) >= 0 Then p = params
  14.  
  15.     asm(0) = -881438862054780.1504@: asm(1) = -140193315782017.312@: asm(2) = 93112413858165.2867@: asm(3) = 593189448021741.0902@
  16.     asm(4) = 843045704464075.3748@: asm(5) = -4834317066834.7356@: asm(6) = 260429944098681.7488@: asm(7) = 537140947255014.6699@
  17.     asm(8) = 7683543183094.8624@: asm(9) = 598313605633923.5838@: asm(10) = -200740417519275.4208@: asm(11) = 109.8337@
  18.  
  19.     NanoInvoke = CallWindowProcW(asm(0), p, sLib, sFnc)
  20. End Function
  21. ' ASM Code: pastebin.com/5gnLv7xn

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

Ejemplo de uso:
Código: Visual Basic
  1.     Call NanoInvoke("user32", "MessageBoxW", 0, StrPtr("test"), StrPtr("karcrack"), 0)
  2.     Call NanoInvoke("kernel32", "ExitProcess", 0)
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5331
  • Actividad:
    58.33%
  • Reputación 29
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Septiembre 12, 2013, 11:35:15 pm »
Excelente Karcrack!
Podrias añadirle una descripcion asi lo posteo en el blog de Underc0de?

Saludos!
ANTRAX


Desconectado Karcrack

  • *
  • Underc0der
  • Mensajes: 87
  • Actividad:
    0%
  • Reputación 0
  • Se siente observado ¬¬'
    • Ver Perfil
« Respuesta #2 en: Septiembre 13, 2013, 12:22:43 am »
Es la forma más corta que llamar a un API de forma dinámica que encontrarás :P

La shellcode de unos 90bytes se encarga de recorrer el SAFEARRAY de VARIANTs metiendo en el stack los parámetros para el API. Además busca en la IAT del proceso la importación de DllFunctionCall() para obtener el puntero del API. (You are not allowed to view links. Register or Login)
I code for $$$.

(PGP ID 0xCC050E77)
ASM, C, C++, VB6... skilled [malware] developer

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5331
  • Actividad:
    58.33%
  • Reputación 29
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #3 en: Septiembre 13, 2013, 10:38:02 am »
Buenisimo Karcrack! ya está en el blog!!
You are not allowed to view links. Register or Login

Felicitaciones por el code!


 

¿Te gustó el post? COMPARTILO!