elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  NanoInvoke
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: NanoInvoke  (Leído 1,974 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
NanoInvoke
« en: 13 Septiembre 2013, 04:05 am »

Código
  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
  1.    Call NanoInvoke("user32", "MessageBoxW", 0, StrPtr("test"), StrPtr("karcrack"), 0)
  2.    Call NanoInvoke("kernel32", "ExitProcess", 0)


En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: NanoInvoke
« Respuesta #1 en: 13 Septiembre 2013, 15:42 pm »

HOLA!!!

Magnifico :D

Funciona en x64?

GRACIAS POR LEER!!!


En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: NanoInvoke
« Respuesta #2 en: 13 Septiembre 2013, 19:35 pm »

No quiero ser pesimista pues el código está genial, pero esto no crashea si hay DEP?
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: NanoInvoke
« Respuesta #3 en: 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines