Una buena forma de "destripar" algún malware para entender su funcionamiento es ver a que API se llaman desde la aplicación o cualquier servicio.
Para eso vamos a utilizar API Monitor, una herramienta desarrollada por Rohitab, hay un versión para sistemas de 32bits y 64 bits, disponiendo también de una versión portable, que sólo hay que descargar y descomprimir, es la que yo he utilizado al escribir este artículo. Procedemos a descargar la versión que corresponda a nuestro sistema o la portable y la ejecutamos.
La versión portable descomprimida pesa poco más de unos 20 MB, por lo que, podemos guardarla en una memoria USB junto con las demás utilidades que usamos en nuestro día a día.
Para probar la herramienta he usado un malware que tenía por ahí para hacer prueba, en una máquina virtual con VirtualBox.
Al arrancar la aplicación podemos seleccionar de una lista las API que queremos monitorizar.
O filtrar por librerías .dll
Los procesos a monitorizar los podemos elegir de una lista con los procesos en ejecución o crear uno nuevo (Menú File -> Monitor New Process).
Yo en mi caso monitorizaré un proceso llamado sol.exe (se trata del juego Solitaire que viene con el Windows) que se está ejecutando en el sistema (sino se está ejecutando, lo podemos ejecutar eligiendo Monitor New Process).
En la pestaña Monitoring - Output podemos ver una lista de .dll que han sido cargadas.
Código:
sol.exe: Monitoring Module 0x01000000 -> C:\WINDOWS\system32\sol.exe.
sol.exe: Monitoring Module 0x7C910000 -> C:\WINDOWS\system32\ntdll.dll.
sol.exe: Monitoring Module 0x7C800000 -> C:\WINDOWS\system32\kernel32.dll.
sol.exe: Monitoring Module 0x77BE0000 -> C:\WINDOWS\system32\msvcrt.dll.
sol.exe: Monitoring Module 0x77DA0000 -> C:\WINDOWS\system32\ADVAPI32.dll.
sol.exe: Monitoring Module 0x77E50000 -> C:\WINDOWS\system32\RPCRT4.dll.
sol.exe: Monitoring Module 0x77FC0000 -> C:\WINDOWS\system32\Secur32.dll.
sol.exe: Monitoring Module 0x77EF0000 -> C:\WINDOWS\system32\GDI32.dll.
sol.exe: Monitoring Module 0x7E390000 -> C:\WINDOWS\system32\USER32.dll.
sol.exe: Monitoring Module 0x70140000 -> C:\WINDOWS\system32\CARDS.dll.
sol.exe: Monitoring Module 0x7E6A0000 -> C:\WINDOWS\system32\SHELL32.dll.
sol.exe: Monitoring Module 0x77F40000 -> C:\WINDOWS\system32\SHLWAPI.dll.
sol.exe: Monitoring Module 0x773A0000 -> C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5705_x-ww_36cfed49\COMCTL32.dll.
sol.exe: Monitoring Module 0x5CF60000 -> C:\WINDOWS\system32\ShimEng.dll.
sol.exe: Monitoring Module 0x6FDB0000 -> C:\WINDOWS\AppPatch\AcGenral.DLL.
sol.exe: Monitoring Module 0x774B0000 -> C:\WINDOWS\system32\ole32.dll.
sol.exe: Monitoring Module 0x76B00000 -> C:\WINDOWS\system32\WINMM.dll.
sol.exe: Monitoring Module 0x770F0000 -> C:\WINDOWS\system32\OLEAUT32.dll.
sol.exe: Monitoring Module 0x77BB0000 -> C:\WINDOWS\system32\MSACM32.dll.
sol.exe: Monitoring Module 0x77BD0000 -> C:\WINDOWS\system32\VERSION.dll.
sol.exe: Monitoring Module 0x76630000 -> C:\WINDOWS\system32\USERENV.dll.
sol.exe: Monitoring Module 0x5B150000 -> C:\WINDOWS\system32\UxTheme.dll.
sol.exe: Monitoring Module 0x76340000 -> C:\WINDOWS\system32\IMM32.DLL.
sol.exe: Monitoring Module 0x746B0000 -> C:\WINDOWS\system32\MSCTF.dll.
sol.exe: Monitoring Module 0x75160000 -> C:\WINDOWS\system32\msctfime.ime.
Y en la pestaña Summary veremos todas las llamadas que se han realizado, en este caso han sido 30000.
Vemos que HeapFree (Libera un bloque de memoria reservado por HeapAlloc) se llama desde Kernel32.dll. En el cuadro de llamadas (situado más abajo) podemos ver la posición del bloque de memoria que se quiere liberar.
A partir de aquí todo depende de la imaginación de cada uno, si trasteáis más con la aplicación veréis que se pueden poner "breakpoints" cosa que nos puede servir en algunos casos.
Como sabréis hay más herramientas y métodos para monitorizar las API, esto es sólo una alternativa.
Como podemos ver en los tutoriales realizados por el autor, API Monitor sirve para algo más que monitorizar las llamadas API, también se puede usar para eliminar algunas restricciones de los software de pago o esniffar el tráfico ssl de Firefox.
Página Oficial | Rohitab - API Monitor