jueves, 8 de abril de 2010

Hookear DLL en Main

Programas a usar:
OllyDbg: Descargar
Pe Explorer: Descargar

1. Abrir el main.exe con Ollydbg,una vez que cargo,automaticamente se va a detener en un lugar que se denomina entry point,al entry point le hacemos click derecho Copy To clipboard o Ctrl+C y lo pegamos en algun bloc de notas,mas adelante nos va a servir.


Lo que remarque en azul,seria el entry point.

Una vez que se detiene en el entry point le hacemos click derecho como ya explique antes.





Nos va a copiar el offset del entry point y lo pegamos en un bloc de notas con una referencia que diga entry point.



2. Buscar un lugar libre en el main



Cabe destacar que,todo offset que tenga DB 00 es un lugar libre y que se puede usar tranquilamente.

3. Elegir 1 offset libre (DB 00) Hacer click derecho y poner follow in dump -> Selection y escribir ahi el nombre de tu dll



Se nos abre una ventana y en Ascii ponemos el nombre de la dll a hookear.



Al apretar Ok nos deberia quedar asi



Hecho eso hacemos click derecho en la primera linea roja que se hizo y ponemos Copy To clipboard o Ctrl+C y lo pegamos en el bloc de notas con referencia de Dump de Dll



4-Bajamos 3 o 4 Offsets "Renglones" seleccionamos un renglon,apretamos enter,se nos abre una ventana,ponemos PUSH y el numero del dump que hicimos,en mi caso PUSH 007C2F48



5.Finalizado el push,presionamos CTRL + N,se va a abrir una nueva ventana y, a continuación, escribimos LoadLibraryA una vez que la veas la seleccionas,apretas enter,elegis el primer CALL DWORD PTR DS,apretas enter y copias haces click derecho Copy To clipboard o Ctrl+C y lo pegamos en el bloc de notas con referencia de LoadLibraryA



Se nos abre una ventana nueva,apretamos enter en el call dword y copiamos exactamente lo que esta adentro de la ventana.



Abajo del PUSH que habiamos hecho entonces llamamos a LoadLibrary ponemos tal cual el codigo que copiamos en el bloc de notas.



6.Para finalizar abajo del CALL que hicimos ponemos JMP y el numero del entry point en mi caso seria JMP 007A1E2B



7. Ahora guardamos las modificaciones . Seleccionamos todos los offsets que modificamos (en la ventana de Disassemble) hacemos clic derecho y elegimos la opción Copy to executable->All modifications. Luego presionamos Copy all. En la nueva ventana que se abrirá, hacemos click derecho y elegimos Save File y elegimos donde lo queremos guardar.

Ya dejamos de lado el ollydbg y ahora usaremos el Pe Explorer para cambiar el entry point.

No olvidemos que si estamos hookeando más de 1 dll el comando JMP de la primer dll debe de ser el offset del comando PUSH de la segunda dll! Y el JMP de la segunda dll deberá ser el Entry Point original.

Cambiando Entry Point
1- Ejecutamos el Pe Explorer y tendremos una ventana asi



Hacemos click en el boton de open files y abrimos el main.exe.En el cuadro de entry point,ponemos el offset del push de la nueva dll (paso 4) en mi caso seria 007C2F48,apretamos el tilde verde y guardamos.



Saludos,Blaky.

0 comentarios: