elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:09  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  CallAPIByName usando solamente rtlMoveMemory
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CallAPIByName usando solamente rtlMoveMemory  (Leído 3,292 veces)
cobein


Desconectado Desconectado

Mensajes: 753



Ver Perfil WWW
CallAPIByName usando solamente rtlMoveMemory
« en: 14 Junio 2009, 02:16 »

Bueno, un dia despues de muchas birras se me ocurrio la genial idea de hacer un CallAPIByName usando solamente rtlMoveMemory, hasta ahi todo genial... pero bueno despues de pelarme el 0r70 por varias semanas intentando resolver diferentes problemas logre hacerlo funcionar! =D

Usa un monton de magia negra para resolver diferentes cosas ... pero en fin funciona o eso creo.
Testeado en XP y Vista compilado en P-Code y Codigo Nativo.

http://www.advancevb.com.ar/wp-content/2009/06/Call-API.rar


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #1 en: 14 Junio 2009, 02:51 »

muy bue aporte cobein.. siempre fumando de la buena para llegar a esto...


offtopic: XD con tu firma!


En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #2 en: 14 Junio 2009, 09:56 »

Funciona perfectamente ;D A ver si luego puedo revisarlo en W7... por lo visto en Vista dicen que falla :silbar:


Por cierto, te quedo muy bien el rediseño de tu web ;D

Saludos ;)
En línea

cobein


Desconectado Desconectado

Mensajes: 753



Ver Perfil WWW
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #3 en: 14 Junio 2009, 10:45 »

Si, en realidad no falla en vista, falla ... la verdad no lo testie demasiado pero cuando llamas a cualquier funcion que involucre memoria... en realidad creo que es cuando pasa un puntero como byref. Pero vuelvo a repetir no estoy seguro, me tengo que poner a debuguear esto de a poco. Estoy seguro que el problema esta en en el ASM de la funcion Invoke.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #4 en: 15 Junio 2009, 19:17 »

He estado probando códigos que usan la memoria... (Aquel que hice para sacar el Path del PEB) que usa GetMem1 y CallWindowProc y funciona perfecto... a ver si encuentro algún código que use RtlMoveMemory por aquí...


MOD1:
Vale, el problema esta por lo visto solo al usar RtlMoveMemory (Lo prove con el codigo de HideDLL de Cobein)... voy a ver por que :P
MOD2:
Vale, el problema es que llamas a la posición de la cadena "NTDLL.RtlMoveMemory"



MOD3:
Como tu decías el problema esta en el código que metes en zDoNotCat... A ver si puedo debuggear ahí :xD

¿SOLUCION?:Cambiar el CALL relativo por PUSH XXXXXXXX + RET o MOV EAX, XXXXXXXX + JMP EAX

Saludos :D

PD:Cuantos MODs NO? :laugh: :laugh:
« Última modificación: 16 Junio 2009, 18:17 por Karcrack » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.192


Se siente observado ¬¬'


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #5 en: 16 Junio 2009, 18:19 »

SOLUCION:

Reemplazar la funcion CallAPI por esta:
Código
Public Function CallAPI(ByVal sLib As String, ByVal sMod As String, ParamArray Params() As Variant)
   Dim lLib        As Long
   Dim lMod        As Long
   Dim cParams     As New Collection
   Dim i           As Long
 
   If (sMod Like "Rtl*Memory") = True Then sLib = "NTDLL"
 
   lLib = LoadLibrary(sLib)
   If Not lLib = 0 Then
       lMod = GetProcAddress(lLib, sMod)
       If Not lMod = 0 Then
           For i = 0 To UBound(Params)
               cParams.Add Params(i)
           Next
           CallAPI = Invoke(lMod, cParams)
       End If
   End If
 
End Function

El problema reside en que las funciones de memoria que hay en KERNEL32 dan problema... pero en cambio las de NTDLL que son IGUALES no lo hacen.... asi que bueno, cuando es una funcion de memoria simplemente se cambia la DLL y asi funciona...

Esta es una solucion chapucera hasta que Cobein encuentre el verdadero error...que imagino que esta en el EP de KERNEL32, ya que al Olly le pasa parecido cuando cargas solo la DLL :-\

Saludos ;D
En línea

Arkangel_0x7C5

Desconectado Desconectado

Mensajes: 298



Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #6 en: 16 Junio 2009, 23:28 »

no es un error, a GetProcAddress también le pasa eso. La solución si te fijas es buscar el '.' para saber de que dll es y hacer otra llamada con los datos correctos. yo tengo la solución, pero este no es el lugar para colocar el code.

Saludos
En línea

cobein


Desconectado Desconectado

Mensajes: 753



Ver Perfil WWW
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #7 en: 16 Junio 2009, 23:37 »

Sep tienen razon, ya corregi el getprocaddress, es por las funciones forwardeadas pero ya lo arregle. Cuando termine de testear todo lo subo.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Swellow

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #8 en: 9 Noviembre 2011, 00:07 »

Can anyone reupload this please? :D
En línea
scapula

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: CallAPIByName usando solamente rtlMoveMemory
« Respuesta #9 en: 9 Noviembre 2011, 08:52 »

http://cobein.com/wp/wp-content/2009/06/Call-API.rar
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con CallAPIByName
Programación Visual Basic
C0r3_ 4 963 Último mensaje 4 Febrero 2011, 22:52
por C0r3_
¿Un DDOS afecta solamente al sitio que se tiene de objetivo?
Nivel Web
Lucas Cano 3 1,347 Último mensaje 6 Septiembre 2011, 08:41
por WHK
mMemory - WriteProcessMemory/vbaCopyBytes/RtlMoveMemory replacement [NOAPI!!!] « 1 2 3 »
Programación Visual Basic
Karcrack 42 5,401 Último mensaje 1 Enero 2012, 18:02
por Swellow
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines