elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Necesito una pista con programa packeado/protegido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito una pista con programa packeado/protegido  (Leído 2,293 veces)
Relgadon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Necesito una pista con programa packeado/protegido
« en: 31 Marzo 2013, 21:18 pm »

Buenas a todos

No soy mucho de postear. Me registré para postear porque hasta el momento siempre con google, los tutoriales de narvaja (u otros de cracklatinos) y los de lena151 me alcanzo para hacer todo lo que quería en ingeniería inversa. Estoy posteando ahora porque estoy *muy* trabado con unpackear el programa y no quiero hacer "trampa" y hacer un loader con dUP para modificar en memoria (aparte que nunca lo aprendi aunque no debe ser dificil).
Me gustaría que me den una pista para saber que me falta para unpack/unprotect este software. Les comento hasta donde llegue:


 - Por varios metodos (y por el clasico EP del programa) parece que esta protegido por ASProtect pero todos tiran una version distinta. Que esta packeado seguro porque cuando dumpeo el archivo crece el triple en espacio.

---------------------

 - Encontré que el OEP es VA 00CA5118 (imgbase 400000) ya sea traceando o haciendo una pausa y con el system o call stack volviendo para atras. El metodo general de unpacking (poner BP en esp) y el metodo de las excepciones no me funcionaron (el programa no tira ninguna excepcion).

---------------------

 - Parece ser que el packer no rompe la IAT con calls al codigo del packer. Por mas que el ImpREC no la encuentre automaticamente cuando la buscas manualmente todos los import salen bien menos un par que apuntan a una parte del codigo pero luego llaman a GetProcAddress (los cuales fixeo manualmente) como se ve aca:




Esta apunta a este codigo:



El cual esta en el import section asique supongo que no hay problema.


Otra cosa rara que vi en la iat es que por alguna razon hay una call a ntdll en el medio de los imports a user32:



El cual me toma como invalid pero anda joya igual. Cuando arranco el dump veo que windows llenó la iat con la address bien del call a la funcion de ntdll como a las de user32.


---------------------


Después de todo esto y probar muchas cosas y darle mil vueltas no encuentro forma para que la aplicacion no me tire la excepcion tipica 0xc00000005 o no se cuantos ceros tiene. La tipica que quiere leer un espacio en memoria que no existe. La verdad no se que me falta o que estaré haciendo mal. Lo que hago es:

 - Dumpeo el proceso con el ollydmp con el OEP modificado una vez que el soft unpackeo.
 - A partir de la iat del proceso abierto fixeo la iat del dump con el ImpRec (probe saltearme este paso y es lo mismo).
 - Obviamente checkeo que todo lo que hice este bien (OEP arreglado e import table) con el olly corriendo el dump.

El tema es que no parece tener ninguna protección de las tipicas de asprotect de romper la iat o usar stolen bytes. No encontre los stolen bytes por ningún lado. Si traceas no parece que haya stolen bytes de ninguna forma.

Alguien tiene una pista o algo que me pueda estar faltando?  Adjunto la aplicacion por si alguien la quiere:
http://www.mediafire.com/?lu638sob9p7bi9p
Adjunto solo el exe porque alcanza para el proposito de unpackear.


Desde ya muchas gracias y perdon por el post largo!
« Última modificación: 31 Marzo 2013, 21:27 pm por Relgadon » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Necesito una pista con programa packeado/protegido
« Respuesta #1 en: 1 Abril 2013, 23:48 pm »

bueno, lo bajé y miré un poco, para empezar te diré que no me da el oep que tú encontraste, el mío es D185CB (va), por o tanto ya iriamos distinto. No sé que método usaste para llegar al oep, pero el que usé fue por medio de la api GetmoduleHandleW, cuando por lo general usan GetModuleHandleA. y lo del error que mencionas es por lo general porque está mal la dirección del oep y de la sección code data.En fin soy un perro para explicar https://mega.co.nz/#!rIdUEDpa!BP_b3BbFHUIIINqTCc5yp121IPgZpuOeOOnMFShfkqo
ahí está desempacado, probalo y cualquier cosa me contas.
En línea

Relgadon

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Necesito una pista con programa packeado/protegido
« Respuesta #2 en: 2 Abril 2013, 19:51 pm »

La verdad te agradezco muchísimo, me diste una muy buena info.

Lo que quiero igual es aprender con esto. Ahora me pongo a buscar info sobre como encontrar el OEP por medio de GetModuleHandleW / GetModuleHandleA   que la verdad no lo conozco ni se como es. Si alguien tiene un lugar sobre donde aprender eso por favor pasenmelo sino no importa uso nuestro amigo Google.

Me encantaría si me pudieras decir (u otra persona del foro) porqué decidiste usar este método. Yo traceando y usando el metodo de las excepciones o el bp en esp no llegue a ningún lado. Además, el olly por alguna razon en la sección del OEP que encontraste me analiza cualquier pavada y para "ver bien" el OEP tengo que sacarle el analisis de codigo.


Denuevo tincopasan: Muchas Gracias!!
Saludos.
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Necesito una pista con programa packeado/protegido
« Respuesta #3 en: 2 Abril 2013, 20:24 pm »

hay muchos tutes en la página de Ricardo Narvaja, en lo personal me sirvó este de Solid:  http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/1101-1200/1111-Asprotect%202.1%20-%202.2%20SKE%20-%20peleando%20contra%20el%20mutante_por%20Solid.rar     en realidad es al único que le entiendo cuando explica. Verás que para los programas compilados en delphi se usa comúnmente este método. Opté por GetModuleHandleW porqué primero probé con GetModuleHandleA y no funcionó, pero mirando las api que usa el soft está la que me llevó al oep. En cuanto a como muestra olly el código es también comúm, nuchas veces hay que quitar el análisis para ver ver de "otra" forma el código. 
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DIVIDIR UNA PISTA DE MP3
Multimedia
alapues 2 2,874 Último mensaje 3 Marzo 2005, 11:29 am
por Songoku
Sacar pista de mp3
Multimedia
Isildur 1 3,285 Último mensaje 20 Julio 2005, 04:22 am
por G3N3S1S
Crear programa protegido con contraseña
Programación Visual Basic
love_magic 3 1,521 Último mensaje 15 Julio 2006, 16:56 pm
por zukwa
Programa protegido con PCGuard
Ingeniería Inversa
jolypc 0 2,046 Último mensaje 30 Octubre 2009, 19:37 pm
por jolypc
Programa protegido Intellilock
Ingeniería Inversa
lestherhack 0 2,355 Último mensaje 2 Mayo 2010, 19:26 pm
por lestherhack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines