Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - anormal

#1
hola gente,
ya sé que no tiene mucho sentido a estas alturas, pero debido a otro proyecto paralelo he terminado realizando un pack de antiguas utilidades para cifrar/comprimir/descomprimir ficheros ejecutables para DOS, sí MSDOS :D

realmente no fue una sorpresa ver que practicamente no hay nada online, grandes webs en su día como suddendischarge o exetools, están muertas o con enlaces rotos, y muchas cosas se han perdido, espero que no para siempre, quizás alguno de vosotros (como yo) aprendió en esa época el arte del debugging y demás

en fin, resumiendo, después de unas semanas buscando online aqui y allí y en colaboración con alguna gente del foro exetools, he terminado de ordenar todo el material que he encontrado online, hay muchasss cosas que todavía no he podido encontrar, pero estoy seguro que en algun disco perdido por ahí hay algún pack que me ayude a completar todo lo posible ...

entiendo que no es de interés para casi nadie, pero si alguno tiene algo en algun disco viejo que yo no tenga, le agradecería mucho lo compartiera

adjunto unas cuantas listas, las primeras son lo que contiene el pack que he estado haciendo, packers, unpackers, tools, docs, analyzers y por otro lado una lista grande packers/cryptors, esta lista la he sacado uniendo muchas documentaciones de analizadores y desempaquetadores, osea que existir existen, hay muchos que no tengo en mi poder

eso es todo, si alguno quiere colaborar ->> PM

ficheros en dropcanvas: http://dropcanvas.com/smtjs
#2
Me he perdido un poco con esto programa... Demasiado código...

He encontrado un par de funciones que son llamadas aquí y allí para comprobar la validez del serial (que se almacena en una tabla en la bb.dd.) (mirar funciones en 00F71BEC, 00F73D44 y en 00F76954) pero no estoy seguro que parcheando esas funciones, el programa se quede full 100%

Si alguien quiere echar un vistazo y ve algo interesante... avisen! gracias!

Edito: Pedí ayuda en el foro de SnD y sacaron el parche, voy a poner la info aquí después que verifique todo, saludos!
#3
buenas!

terminó de analizar, jeje

el programa no está protegido con nada especial, no usa ningún packer, ni VM ni nada, es simplemente un enorme montón de código compilado con bc c++

las megafunciones esas, lo raro es que esas variables están en pila! si ya sé que es una locura, por eso me llamó la atención...

voy a generar un listado de funciones ordenadas por tamaño, por curiosidad...

Olly 2.0 tarda como 6-8 horas en analizar el fichero en el arranque inicial. Voy a ver qué puedo averiguar con un depurado normal del programa.



#4
buenas,

estoy trabajando en algo que me he encontrado que me ha dejado sorprendido, porque básicamente es algo que no he visto hasta ahora (y llevo ya unos años en esto del reversing)...

Firstbeat Athlete es programa que sirve para analizar el resultado de una grabación de un sesión de cardio con un pulsómetro. Básicamente es el más completo, complejo y útil que hay, dentro tiene el resultado del trabajo de algunas tesis, estudios científicos, etc... Encima es un programa apenas conocido...

Resumiendo:
- Es una aplicación hecha en Borland C++
- Usa Firebird 1.5 para guardar datos, incluso la activation key se guarda en una tabla (recomiendo usar firebird maestro por ejemplo para trabajar con el fichero de datos que está dentro de la carpeta data)
- El proceso de activación es por internet, si detecta conectividad, el mismo conecta y envia la key que le pone el usuario a un server que es el que valida (se ve el string de conectividad fácilmente), sino te permite activarlo manualmente pero por email
- No sé si una vez activado sigue siendo necesario validar online
- hay una dll , securitydll.dll que contiene funciones criptograficas, quizás esté ahí la validación de la key?

Hasta ahí lo que he averiguado hasta ahora. Lo raro es que por ahora lo estoy intentando con IDA (mi herramienta favorita).

Ida 5.2 se cuelga y sale cuando lleva un rato
Ida 5.5 y 6.0 (relax, uso 6.0 la demo :D) se lo tragan y cargan los FLIRT del BDS2008, pero ambos llevan casi 24 horas procesando y analizando y continuan!!

Cierto que el fichero es de 25mb, pero aquí viene lo raro: la aplicación lleva dentro funciones, varias, con miles y miles de líneas de código cada una, miles de variables internas, en una de ellas IDA advierte con un error que hay más de 5000 líneas de declaración previa a UNA SOLA FUNCIÓN. Monstruoso.

Ideas:
- codigo ofuscado?
- sé, porque he leído mucho sobre esta aplicación que usa redes neuronales, posiblemente se genera el código de estas con un generador de código y estas funciones mostruosas sean el resultado de eso? ningún programador cuerdo haría ese código así de enorme...
- es código generado de alguna otra manera?

en estos momentos, IDA sigue analizando la aplicación y creo que después le haré un reanalyze a ver si limpia algo más, porque le está costando un trabajo  enorme al IDa... tengo el pc colapsado (un ida en cada núcleo ambos al 100%)

a ver si termina y lo cargo en Olly a ver qué hace..

Pongo esto por dos motivos:
- si alguien quiere echar una mano y ofrecer algún consejo
- por curiosidad, esas funciones y esas miles de variables es algo que por ahora no he visto nunca y la verdad no las entiendo...
#5
Ingeniería Inversa / Re: ayuda para novatos
21 Febrero 2011, 22:25 PM
gracias por la respuesta,

al final lo solucioné de una manera un poco distinta a la que me pusiste,

viendo que no podía modificar esa instrucción solamente,
(no sé porqué, ya que pasar de un opcode 2e a un 2b, sigue siendo válido, alguna idea de porqué?), lo que hice fue usar ildasm e ilasm

1. desemsamblé el exe con ilasm
2. busqué la función
3. la modifiqué bastante, básicamente borrando todo y dejando solo la asignación de 1 y el retorno
4. recompilé con ilasm
5. FUNCIONA!

como prueba, descargué plugins e instalé 5 o 6, cuando en la demo solo deja instalar 2

hay un check por ahí que recomprueba cuando pasan 7 días si la licencia es válida,
pero viendo la estructura del programa, creo que no se llamará nunca (el fichero license.dat ni siquiera existe)

saludos y gracias!
#6
Ingeniería Inversa / Re: ayuda para novatos
21 Febrero 2011, 18:37 PM
Buenas,

he modificado el .exe de acuerdo con el hilo,
sustituyendo el beq.s por un br.s

primero intenté usar reflector+reflexil pero al grabar la modificacion y lanzar el programa me daba un error:

Problem starting application: System.InvalidProgramException: El compilador JIT encontró una limitación interna.
Y a continuación una traza de la función que dió el error ... get_IsActivated()

Como no conseguí que funcionara, usé IDA, encontré el offset dentro del exe usando el hexview de ida y con el HIEW modifiqué a pelo la app, cambiando el beq.s por un br.s (2E->2B)

Y me sigue dando el mismo error?

He intentando averiguar que pasa (eliminando signatures, y strongnames con reflexil por si tenía), pero nada...

Alguna pista?

Recalco que sólo modifiqué 1 byte en el exe.

Saludos