Duda en análisis de malware

Iniciado por w0nt0n, 8 Febrero 2012, 19:48 PM

0 Miembros y 1 Visitante están viendo este tema.

w0nt0n

Buenas!

Me estoy dedicando a analizar un poco de malware y me surge una duda.

El programa es una versión del Security Shield 2011 (rogue). Viene comprimido con un compresor desconocido para el PeID o el RDG. Tras jugar un rato, llegué al OEP (o lo que yo creía que era el OEP). Hago el dump, arreglo la IAT (sin problemas) y, cuando todo parece que va como la seda, el programa no arranca. Bueno, sí arranca pero se estropea enseguida. Como no tengo nidea de por qué puede pasar, arranco los dos exes (el original y el dumpeado) y, una vez el original está en el OEP, comparo cómo se van ejecutando. Me fijo en que, para una función que parece tener el mismo nombre, el original lo carga desde ntll y en el dumpeado la arranca desde kernel32. No entiendo por qué pasa esto.

Al final lo que hice fue esperar a que la rutina de desempacado cargara el programa original en la memoria y lo dumpee desde allí, pero sigo sin entender por qué el dumpeado no funcionaba.

¡A ver si me podéis echar una mano!

Saludos!
No quisiera parecer marica, pero los unicornios son una *****.

Иōҳ

Muy por encima de tu desempacado...

Recuerdo que muchas funciones que antes estaban en kernel32, ahora le pertenecen a ntdll, y aveces en las entradas del grupo de kernel32 de la iat, veras algunas que pertenecen a la ntdll por la razón que mencioné, pero la verdad no te debería de dar problemas, me ha pasado muchas veces y corre de lo mas normal, algo más debe estar pasando.

Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

w0nt0n

Gracias por tu respuesta.

Supongo que tienes razón pero el problema está en que la dirección que me devuelve dicha función es distinta en función (valga la rebuznancia) de si se carga desde kernel32 o de ntdll. Esa dirección la usa poco después para un salto y lo que sucede es que se va a una parte de la memoria que no tiene más que morralla, con lo que tendría que parchear el salto para que vaya adonde toca pero dado que no es un salto fijo (coge el valor de eax), si lo cambio lo más probable es que pete por otro lado. Sigo buscando

Saludos!
No quisiera parecer marica, pero los unicornios son una *****.

Иōҳ

entonces las entradas a la iat no son las correctas, revisa el original, a que función específicamente va a y agrégalo a mano, es lo que se me ocurre por ahora.

Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

.:UND3R:.

#4
Yo verificaría lo mismo que dice NOX, debes intentar encontrar el salto entre una estructura de la IAT correcta y una incorrecta ahí ver si se puede nopear, también puede ser que el programa contenga comprobaciones. como tamaño final del archivo, comprobación, crc, e incluso nombre del archivo. Para comprobar CRC cambia un nombre de la sección del empaquetado, si no abre es CRC, agrega bit's 0 en el original de 1000 en 1000 bite's con un editor hexadecimal hasta aumentar su tamaño el doble o triple, si no abre es por que detecta el peso, renombra el original con otro nombre ejemplo por ejemplo1 si no abre es por que comprueba el nombre de la aplicación. En sí debes investigar y comparar como trabaja desde el OEP tanto el empaquetado con el unpack

Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

w0nt0n

Gracias a todos por las respuestas.

Al final lo que hice fue arreglar la IAT "a mano" y funcionó sin problemas. Supongo que había algún problema con el ImpRec al hacerlo todo automático.

Saludos!
No quisiera parecer marica, pero los unicornios son una *****.

Иōҳ

Cita de: w0nt0n en 13 Febrero 2012, 19:51 PM
Gracias a todos por las respuestas.

Al final lo que hice fue arreglar la IAT "a mano" y funcionó sin problemas. Supongo que había algún problema con el ImpRec al hacerlo todo automático.

Saludos!

El ImportRec te avisa cuando una entrada está mal, o tal vez no estabas poniendo bien los datos que te pide para poder reparar correctamente...

Que ver tienes del ImportRec?

Nox.
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

w0nt0n

Buenas,

La versión del importrec es la 1.4.2 creo. La tenía por ahí de hace unos años que me dio un poco por el cracking. No sé (ni me he molestado en buscar) si hay alguna nueva, pero hasta este problemilla iba todo de cine. De hecho, acabo de terminar de unpackear y hacer correr sin problemas otro malware (internet security) con la misma versión. No sé. Era algo muy raro. Quizás parte del problema era que estaba corriendo todo en VM y no me fijé en los métodos de protección antiVM (ya que sin debugger parecía correr sin problema) e igual me cogieron por ahí. Pero bueno, que tampoco te quite el sueño (aunque te agradezco mucho el empeño).

Saludos!
No quisiera parecer marica, pero los unicornios son una *****.