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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pasar de Static Linking a Dynamic Linking.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Pasar de Static Linking a Dynamic Linking.  (Leído 7,394 veces)
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #10 en: 6 Agosto 2012, 12:59 pm »

¿Gracias?

Si la proxima vez buscas antes de preguntar de nada  ;)


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #11 en: 7 Agosto 2012, 02:58 am »

Pero .... es al pedo, estás cambiando de donde hay que fijarse que APIs usás.
No lo estás ni ocultando ni ofuscando.

Saludos.


Si en vez de cargarlas en tiempo de diseño las APIs, lo cual se puede ver con depends o algún otro programa que vea las funciones que importa el programa, se cargan dinámicamente en tiempo de ejecución, estos ya no aparecen. Si uno abre con un editor hexadecimal el ejecutable, va a haber en la parte de los strings las apis. Si uno lo cifra y luego lo descifra en tiempo de ejecución, sólo se va a poder saber esto si se debuggea el programa, si uno evita que el programa se pueda debuggear o emular, no hay manera de saber qué APIs se cargan.


En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #12 en: 7 Agosto 2012, 17:20 pm »

Si en vez de cargarlas en tiempo de diseño las APIs, lo cual se puede ver con depends o algún otro programa que vea las funciones que importa el programa, se cargan dinámicamente en tiempo de ejecución, estos ya no aparecen. Si uno abre con un editor hexadecimal el ejecutable, va a haber en la parte de los strings las apis. Si uno lo cifra y luego lo descifra en tiempo de ejecución, sólo se va a poder saber esto si se debuggea el programa, si uno evita que el programa se pueda debuggear o emular, no hay manera de saber qué APIs se cargan.

Tanto baile .... para hookear un par de funciones (o más fácil? correr el binario sobre wine con APIs modificadas, menos drama), y saltearse todo el asunto del depurador ... Apenas se vea LoadLibrary() y GetProcAddress() en la tabla y "garbage" en el editor, unx sabe en dónde esperar la versión descifrada de ese garbage.

Saludos.

P.S → Lo del cifrado no lo habías mencionado, aún así sigue siendo al pedo.
En línea

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #13 en: 7 Agosto 2012, 17:46 pm »

Bueno, pero eso sumado a técnicas anti emulacion, evita que sea detectado.
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #14 en: 7 Agosto 2012, 17:52 pm »

Bueno, pero eso sumado a técnicas anti emulacion, evita que sea detectado.
Seguís dependiendo de lo que hay debajo de tus pies para sustentar todo el boliche (mi mensaje sigue siendo válido para esto que acabas de acotar), pero como gustes ... se vé que no aprendimos nada de la industria de los videojuegos. Eso o queremos un mejor marketing :D
En línea

APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #15 en: 7 Agosto 2012, 17:58 pm »

La idea de obfuscar las llamadas a las API es para que no se pueda rápidamente saber qué APIs están siendo cargadas. Es para evitar heurística y firmas.
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #16 en: 7 Agosto 2012, 19:21 pm »

La idea de obfuscar las llamadas a las API es para que no se pueda rápidamente saber qué APIs están siendo cargadas. Es para evitar heurística y firmas.


esta idea es para considerar APOKLIPTICO, resolvería el tema de los imports
Si es posible... hay varios metodos de obtener la direccion base del Kernel, luego de esto obtener GetProcAddress y LoadLibrary; despues de eso simplemente es obtener las APIs que necesitas.


Si en vez de cargarlas en tiempo de diseño las APIs, lo cual se puede ver con depends o algún otro programa que vea las funciones que importa el programa, se cargan dinámicamente en tiempo de ejecución, estos ya no aparecen. Si uno abre con un editor hexadecimal el ejecutable, va a haber en la parte de los strings las apis. Si uno lo cifra y luego lo descifra en tiempo de ejecución, sólo se va a poder saber esto si se debuggea el programa, si uno evita que el programa se pueda debuggear o emular, no hay manera de saber qué APIs se cargan.

sobre eso que te dijeron de usar apis modificadas, podés usar tu propia GetProcAddress y tu propia LoadLibrary.

y recordá que programas que actuén en modo ring 0 pueden igualmente detectar o determinar si creás un hilo remoto o si cargás una dll, no necesitan solamente spoofear tus llamadas a apis a nivel usuario

En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #17 en: 7 Agosto 2012, 22:30 pm »

Hola,

Creo que automáticamente no puedes hacerlo pero sí a mano, debes definir punteros a funciones de cada API a cargar dinámicamente y luego asignarle la dirección de la función que debes obtener bien con GetModuleHandle, GetProcAddress, EAT, etc.

Un saludo,
Iván Portilla.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Pasar de Static Linking a Dynamic Linking.
« Respuesta #18 en: 9 Agosto 2012, 23:46 pm »

Código:
http://foro.elhacker.net/analisis_y_diseno_de_malware/clase_encryptapi_haz_tus_codigos_indetectables_facilmente-t255039.0.html

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta tonta [ Each & Static ] « 1 2 »
Programación Visual Basic
Sancho.Mazorka 14 4,104 Último mensaje 23 Junio 2007, 18:39 pm
por Hans el Topo
DSO Linking Changes [Solucionado]
GNU/Linux
dec0 1 3,093 Último mensaje 19 Junio 2011, 09:19 am
por dec0
duda con cuenta Dynamic DNS
Redes
6cientos 4 3,583 Último mensaje 1 Julio 2011, 22:09 pm
por 6cientos
Dynamic Splash Screen
.NET (C#, VB.NET, ASP)
CH4ØZ 5 3,844 Último mensaje 4 Octubre 2011, 22:11 pm
por Keyen Night
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines