Autor
|
Tema: Pasar de Static Linking a Dynamic Linking. (Leído 7,394 veces)
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
¿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
Mensajes: 3.871
Toys in the attic.
|
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
Mensajes: 2.407
Deprecated
|
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
Mensajes: 3.871
Toys in the attic.
|
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
Mensajes: 2.407
Deprecated
|
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
|
|
|
En línea
|
|
|
|
APOKLIPTICO
Desconectado
Mensajes: 3.871
Toys in the attic.
|
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
|
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
Mensajes: 194
Programmer
|
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
Mensajes: 1.082
CALL DWORD PTR DS:[0]
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pregunta tonta [ Each & Static ]
« 1 2 »
Programación Visual Basic
|
Sancho.Mazorka
|
14
|
4,104
|
23 Junio 2007, 18:39 pm
por Hans el Topo
|
|
|
DSO Linking Changes [Solucionado]
GNU/Linux
|
dec0
|
1
|
3,093
|
19 Junio 2011, 09:19 am
por dec0
|
|
|
duda con cuenta Dynamic DNS
Redes
|
6cientos
|
4
|
3,583
|
1 Julio 2011, 22:09 pm
por 6cientos
|
|
|
Dynamic Splash Screen
.NET (C#, VB.NET, ASP)
|
CH4ØZ
|
5
|
3,844
|
4 Octubre 2011, 22:11 pm
por Keyen Night
|
|