Hola a todos. Bueno, hace mucho que no me pasaba por el foro y puesto que la última vez que lo hice solo provoque una extraña guerra relacionada con las BotNet's (BOTNETS sí, BOTNETS no) he decidido compensar eso.
Bueno, aqui os traigo una implementacion MUY sencilla del tema del API hooking en Win32 (por lo que he leído, es parecida a la librería Detours de MS), pero esta bajo licencia GPL XD
Utiliza la técnica de la inyeccion DLL (en realidad la DLL debe inyectarse en el proceso que convenga) e inserta un FAR JMP al inicio de la API, por lo que afecta tambien a todo aquel proceso que se intente pasar de listo y llame a la API mediante GetProcAddress (al contrario que con la técnica del IAT).
Por el momento es facilmente detectable, pero tengo pensado:
--> Mejorar la forma en que se inyecta la DLL con GetThreadContext() y SetThreadContext() (en lugar de CreateRemoteThread())
--> Ocultar la DLL desde DllMain() modificando la PEB
--> Lo que se os ocurra XD
Código fuente: http://dl.dropbox.com/u/47594913/HookThemAll.rar
Como crear un rootkit by e0n: http://foro.elhacker.net/analisis_y_diseno_de_malware/querias_tutos_de_programacion_de_malware_pues_toma-t196251.0.html
Hooking HowTo: http://vx.netlux.org/29a/29a-7/Articles/29A-7.019
Nota: no sabía si ponerlo aqui, en el subforo de programacion en C, el de malware,...
Nota2: Acabo de leer la técnica VEH... brillante, aunque como todo, igualmente detectable (mediante VirtualQueryEx), menos conocida pero genial