Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 26 Agosto 2011, 07:13 am



Título: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 07:13 am
Hola a todos, bueno tengo una duda encontré un programa que tiene tal comprobación, es decir al momento de cambiar un flag de una sección, este me lo detecta, mi duda es como puedo evitar este chequeo? si al momento de descomprimirlo este me crea más secciones y con nombres distintos? Saludos


Título: Re: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 08:35 am
Pensándolo bien el programa debe leer las secciones y ver sus atributos, que API se encarga de eso?

VirtualProtect que más?

Gracias


Título: Re: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 09:27 am
además aparte de tener los mismos flag, debe tener la misma cantidad de secciones, como puedo hacer esto? o saltear la comprobación?

Gracias


Título: Re: Duda con comprobación CRC
Publicado por: MCKSys Argentina en 26 Agosto 2011, 18:37 pm
Por definición, un CRC no comprueba los flags de las paginas de memoria donde estan las secciones.

Lo que comprueba es el PEHeader (y con esto los flags seteados en el para cada sección)

La tecnica mas sencilla de usar es el metodo de CreateFile.

NORMALMENTE el programa usa esta API para abrir el EXE. Si hookeas la API, puedes ver la parte donde calcula el CRC.

Si se pone dificil, puedes probar ir nativo y hookear ZwCreateFile (ntdll).

Saludos!


Título: Re: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 18:40 pm
Buena info, abría un tutorial de eso?, busqué por CRC pero ninguno hablaba sobre lo que comentaste

Saludos


Título: Re: Duda con comprobación CRC
Publicado por: MCKSys Argentina en 26 Agosto 2011, 18:45 pm
Hace poco subi a CLS un inline para Winlicense que usa esta tecnica. Aunque es un poco distinta de la usada normalmente, la idea es la misma:

1) Hacer una copia del original con extension .ext
2) Hookear CreateFile (o ZwCreateFile)
3) Cuando el proggie llama a la API, redireccionar el parametro pasado para que apunte al EXE original (el renombrado)


Asi, los CRC caen sin mucho esfuerzo, usando un inline.

El tute que hice es este: http://ricardo.crver.net/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1301-1400/1332-Tut08_Winlicense_Inline_Patching_AbarrotesPDV212_por_MCKSys.7z

Saludos!

PD: Puedes usar el buscador de la web con "inline". Ahi salen varios.


Título: Re: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 21:47 pm
Gracias por responder  ;-), en resumen debo introducir la API dentro del exe alterada para que verifique el original.ext y cada vez que sea llamada por el programa, este apunte al injerto de creado?,esa es la teoria?

Saludos


Título: Re: Duda con comprobación CRC
Publicado por: MCKSys Argentina en 26 Agosto 2011, 21:48 pm
No.

Colocar un gancho en la API para interceptar la llamada y cambiar los parametros en runtime.


Título: Re: Duda con comprobación CRC
Publicado por: .:UND3R:. en 26 Agosto 2011, 21:59 pm
jeje lo escribes de manera que se vea facil, saludos