Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Redesoft en 25 Octubre 2006, 12:22 pm



Título: Programa dificil, Paso 1.
Publicado por: Redesoft en 25 Octubre 2006, 12:22 pm
Saludos señores.

Lo primero quiero decir que no tengo mucha experiencia en esto y he encontrado este foro ahora y bueno, me gustaría que con la ayuda de todos pueda crackear un programa que tengo pendiente desde hace mucho tiempo.

Tengo el crack de las versiones anteriores y por comparación de bytes voy a intentar seguir los mismos pasos que el cracker anterior y atacar por el mismo sitio.

El primer problema es que el ejecutable de esta versión está empakado. El file inspector me dice que es aspack y el peid me dice que es SVKP 1.11 -> Pavol Cerven, me fio mas del peid así que ¿¿sabeis si existe algun unpacker para eso??.

Independientemente de esto el programa usa licencia por fichero y mochila Aladdin Hardlock EYE, ¿sabeis si existe algun emulador para esa mochila?

Muchas gracias


Título: Re: Programa dificil, Paso 1.
Publicado por: karmany en 26 Octubre 2006, 16:06 pm
El peid puede intentar desempacarlo.
Si no, puedes intentar hacerlo manualmente. En la página de Ricardo Narvaja hay muchísima información sobre esto.
Te podremos ayudar si nos dices qué programa es, así le echamos un vistazo y te intentaremos orientar..

Un saludo y bienvenido.


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 26 Octubre 2006, 20:16 pm
Claro, no me viene mal que otras personas intenten crackearlo y así intercambiar opiniones y tal y explicar formas de llegar a ciertos puntos por si me atasco de forma brutal jejejeje.

El programa es ____ 3.3 R2 y en la mula va montado jejeje, no obstante el programa en si no ocupa muchos megas, tampoco me importa pasarlo por ftp u otros medios.

Enga un saludo  ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 9 Julio 2008, 22:10 pm
Hola a todos. Bueno sigo con el proyecto de desempakar, que no crackear, el programa este, me parece un poco raro, no he encontrado nada de info de esto. Por un casual alguien sabe algo?????


Título: Re: Programa dificil, Paso 1.
Publicado por: Shaddy en 9 Julio 2008, 23:15 pm
Pues podrías subirlo y alguno le exaremos un vistazo ;).

Salu2...


Título: Re: Programa dificil, Paso 1.
Publicado por: apuromafo CLS en 10 Julio 2008, 00:14 am

svpk sarcophanix tiene tutoriales acerca de este packer, no recuerdo donde, pero recuerdo claramente que era un dongle


en cuanto a reparacion de la iat usa esta es una herramienta cualquiera
http://deroko.phearless.org/svkpimports.zip

por ser dongle piensa como que hay codigo malo que nadie repara :S
eso es emulacion realmente :S


en cuanto a la emulacion, pues si tienes la clave normal es mas facil, eso dicen todos lo del tema de dongles, que ni idea con el aladin,,
pero animo..que igual creo que los emuladores existen :S
victor se maneja en emular llaves, quizas el sepa algo..en unos foros atras ofrecio su ayuda,,creo eso si que para hasp 4, no se si maneja aladin..
saludos


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 10 Julio 2008, 00:57 am
Hombre he visto algun tutorial sobre ese empacador, pero para la version 1.4x no se si 1.43 con olly.

El software en si yo lo tengo legal totalmente, con su licencia y su mochila, usa una aladin eye.

El tema de desempacarlo es porque me parecio curioso que no fuese el tipico aspack ni armadillo ni asprotect y digo lexe habra que ver que es y ya me puse a ver.

Sobre emulación pues es otro experimento que se podria probar pero no hace falta desempacarlo para emular la mochila, no? todo es probar, total, no salgo los fines de semana y me aburro jejejeje.

Lo de ponerlo.. chungo al ser software licenciado y toda la leche esa supongo que estaría incurriendo en un delito por colgar el software de todas formas todos conocemos las mulas y tal y está perfectamente con fuentes. La version hackeada que hay es la 3.1. La 3.2 y la 3.3 que yo sepa es la que nadie ha podido hackear aun y me parece raro, con la de gente lista que hay que nadie haya sacado un crack para ese software.

Si os aburris y quereis probar al menos para mi está siendo todo un reto el programita este, se han currado la protección, claro que yo tampoco soy ningún experto.

Un saludo ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 10 Julio 2008, 13:27 pm
Hola a tod@s:
Sigues sin decir el nombre de la víctima y así no facilitas el poder aconsejarte algún tute o método de desempacado.
Me las tuve tiesas con uno de este estilo hace ya un tiempo y no se porqué, que me huele que es el mismo.
Para no incomodarte, solo dinos si el borrego contiene estas letras:site.
Si es así, lo tengo algo estudiado y como suele decir Apuromafo (un saludo, Michel), casi unpacked.

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 10 Julio 2008, 22:50 pm
Tio si el nombre del software lo dije en el segundo post. Se llama ____, version 3.3

la web del fabricantes es http://www.Google.es/es/

Es que tampoco quiero dar pie a que cierren el post, que ultimamente está la cosa muy mal con el tema de que hay mucha gente que pide cracks y por lo de la ilegalidad.

De momento yo estoy investigando el empakado no el arranque en si del software ni la funcionalidad, eso ya mas adelante si me pica el tema.

Tengo que decir que otro de los problemas es que no tiene entorno gráfico,  vamos es un software de diseño grafico, tiene entorno grafico pero no es windows. Otra dificultad añadida es que es modular, unos exes llaman a otros exes.

En fin, le hechas un vistazo y me das ideas de por donde atacarlo

Gracias ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 11 Julio 2008, 00:41 am
Joe, veo menos que un gato de yeso.La release que estuve trasteando fue la R4 de la v3.3 y el ejecutable tcad.A lo que vamos:
Llegue al OEP siguiendo el metodo usado por SHOULCK en este tute:

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/101-200/164-Desempacando%20SVKP%20por%20SHOULCK.rar

Con la ayuda del Olly parcheado para encontrar OEP (gracias a Ricardo Narvaja), una vez pasado el bucle que dice el tute y parado en el RETN solo debes poner un BPMA en la sección CODE.Tarda un buen rato pero al final se clava en el OEP.
A partir de aqui ya sabes, volcar a disco, corregir IAT......bla,bla,bla.
Lo volvere a instalar, pero ya tienes algo para entretenerte.

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 11 Julio 2008, 01:07 am
Joe, veo menos que un gato de yeso.La release que estuve trasteando fue la R4 de la v3.3 y el ejecutable tcad.A lo que vamos:
Llegue al OEP siguiendo el metodo usado por SHOULCK en este tute:

http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/101-200/164-Desempacando%20SVKP%20por%20SHOULCK.rar

Con la ayuda del Olly parcheado para encontrar OEP (gracias a Ricardo Narvaja), una vez pasado el bucle que dice el tute y parado en el RETN solo debes poner un BPMA en la sección CODE.Tarda un buen rato pero al final se clava en el OEP.
A partir de aqui ya sabes, volcar a disco, corregir IAT......bla,bla,bla.
Lo volvere a instalar, pero ya tienes algo para entretenerte.

Mintaka

Pues como bien dices el ejecutable principal es tcad.exe. Muchas gracias por el links este que has puesto, el sabado por la noche en mi rato libre probare a ver que sale (seguro que me atasco en cualquier chorrada, como siempre)

Ya os contare si lo hago correr desempacado. Gracias ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 11 Julio 2008, 23:59 pm
Bueno señores, después de varias pruebas y tal he seguidos el manual.

Como dices Mintaka hay un bucle, pongo un bpma en .code y trasca salta a 51A9519 si pongo el bpma en el segundo .code y en otro sitio aun mucho mas raro que no es ni de coña el OEP si lo pongo en el primer .code (hay dos secciones code).

Claro está que como ese no es el oep pues no se ha desempacado y aunque haga un dump al analizarlo me sigue diciendo que está empacado.

A parte algo curioso, al abrir el tcad.exe con el olly me sale como que el  tcad está ejecutado, me sale una ventana de msdos... no tengo muy claro el porque...

Voy a seguir probando a ver si llego al OEP y ya os digo algo.

Un saludo


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 12 Julio 2008, 16:15 pm
Hola a todos:
Redesoft, siempre debes usar como sección .code auténtica la que sigue al Header y no otras.O sea esta:

 Address=00401000
  Owner=tcad     00400000
 Contains=code
  Access=R
 Initial access=RWE

Ves armándote de MUCHA paciencia y ten la seguridad de que si entiendes lo que te quiere decir Shoulck en su tute, llegarás no solo al OEP sinó también a conseguir un desempacado funcional.
En su momento, yo no lo conseguí, pero solo me quedaron tres API's por resolver antes de validar el ejecutable con el ImpRec.He vuelto a retomarlo por ayudarte a conseguirlo y porque así refresco conceptos de packers-protectors.
Para mí, fue de lo más fácil encontrar el OEP.El dumpeado que te hace a partir de ahí, no es funcional para nada.Se ha de trabajar duro con el ImpRec para conseguir una IAT correcta (el tute te da varias ideas).Te diré más, si haces currar al ImpRec, con Trace Leve1 (Disasm), te quedarán SOLO siete entradas no válidas.No hace falta retocar el exe en Olly para conseguir las entradas buenas, como dice el tute.
Para tu información te diré que esta compilado en Visual C++6.0 (como la mayoría de los CAD's, digamos "decentes", que he visto).
Lo de la ventana de MSDOS es así (nada que objetar a eso).Es un visto y no visto corriéndolo desde windows.Pero Olly es un monitor de ejecución y por eso la vemos hasta que desaparece con o sin informe de errores, jeje.
Seguiré tus avances y en lo que pueda te orientaré.

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 12 Julio 2008, 17:13 pm
Siguiendo el tutorial.

Inicio el programa, cuando llego a la tercera excepcion en fffffff... pongo un bpma en la sección .code, ejecuto, se para en un bucle, quito el bpma, pongo un bp fuera del bucle, ejecuto el programa, se para fuera del bucle, quito el bp y vuelvo a poner el bpma en el .code, ejecuto y se queda aqui:

5139bf1...66:.....mov word.....

Se supone que eso debería ser el OEP segun el tutorial y ya sería volcarlo de memoria a disco, reparar la iat (cosa que me da miedo despues de lo que me acabas de decir XD ).

Claro está que ese punto el 5139bfa no tiene pinta de OEP, es mas, si haces el dump aun no siendo funcional el exe al analizarlo debería decir que no está empacado, pero sigue diciendo que nada, que está empacado así que eso significa que aún no he llegado al OEP, por eso dudaba entre si era el primer .code o el segundo.

Voy a intentar tracearlo un poco y ver si llego al OEP. Tampoco tengo prisa, si veo que me viene un poco grande lo de desempacar esto pues me metere a algun proyecto mas pequeño y aparco este durante un tiempecillo.

Bueno, voy a seguir machacando este pequeñin a ver si saco algo en claro. Muchas gracias otra vez por guiarme ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 13 Julio 2008, 00:04 am
Siguiendo el tutorial.

....... ejecuto y se queda aqui:

5139bf1...66:.....mov word.....

Se supone que eso debería ser el OEP segun el tutorial y ya sería volcarlo de memoria a disco, reparar la iat (cosa que me da miedo despues de lo que me acabas de decir XD ).



Vas bien pero olvidas un detalle MUY importante.
Fíjate que te dice Olly cuando para en ese punto (en la parte inferior izquierda):
Memory breakpoint when writing to....
y eso quiere decir que está escribiendo código en esa sección.
Debes seguir ejecutando Olly hasta que el mensaje sea este:
Memory breakpoint when executing....
Entonces estarás sobre el OEP.
Parará muchísimas veces por escritura, antes de llegar al OEP.Lo curioso del caso (ahora que ya sé cual es el OEP) es que está escrito en la ventana de la pila 18 posiciones más abajo de donde estás parado. :o


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 13 Julio 2008, 03:09 am
Si, ya he llegado al OEP pero sigue sin gustarme el asunto. Llego al OEP y lo vuelco todo a disco con el lordpe. Se vuelca y cambio el punto de entrada según el OEP que he pillado en el olly.

Hasta aqui bien pero lo que no me gusta es que el exe sigue ocupando muy poco, 500 kb mas solo respecto al original y luego que el que ya está desempacado, aun no teniendo la iat arreglada si lo analizo con el peid me sigue diciendo que está empacado. Quizas me lo diga porque la sección .svkp la sigue teniendo y es el metodo de analizar este empacador.

Voy a ver si hago unas pruebas con el exe a ver que pasa.

Gracias por todo, la verdad es que eso de tener que esperar a que llegase a ejecutar y no a escribir no lo sabia para nada.


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 13 Julio 2008, 19:53 pm
Hola a toda la peña.
Redesoft, SVKP es el acrónimo de SloVaK Protector y como su nombre indica no es un compresor; es un protector:

The protected application is not compressed, but it is encoded by the Rijndael algorithm (also known as AES).

Lo que hace es cifrar el código original y crear direccionamientos propios a las API's del kernel.Por lo tanto no esperes una compresión del exe, como lo haría UPX.
El desempacado que yo tengo (sin corregir la IAT) y con sección .svkp, PEiD v0.94 me lo reconoce como Microsoft Visual C++ 6.0.Yo lo volqué a disco con el plugin OllyDump y aumenta lo que dices, pero una vez corregida la IAT, engorda.
Mi desempacado empieza así:
PUSH EBP
MOV EBP,ESP
PUSH -1
PUSH XXXXXXXX
PUSH YYYYYYYY                                 ;  SE handler installation
MOV EAX,DWORD PTR FS:[0]
PUSH EAX
MOV DWORD PTR FS:[0],ESP
SUB ESP,10
PUSH EBX
PUSH ESI
PUSH EDI
MOV DWORD PTR SS:[EBP-18],ESP

Suerte  ;)

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 14 Julio 2008, 13:14 pm
Efectivamente es como dices. El problema que me encontraba y que corregi ayer fue que usaba el lordpe para volcarlo a disco. No se cual es la razón pero se ve que no lo volcaba todo desempacado por eso al mirarlo con peid me seguia diciendo que estaba empacado.

Hice la prueba volcandolo con el metodo 2 de ollydump y ya me dice que es visual c++

Lo siguiente que toca es corregir la IAT, lo que no tengo muy claro es si siempre que se llama a una api se hace con jmp dword.... o si también se puede llamar con call. Ayer me tire media hora dandole al f7 y traceando y no llegue a nigún jmp dword y me fuy a dormir ya por aburrimiento.

En fin, a ver si tengo una noche libre y me pongo a verlo mas detendiamente todo.

Un saludo.


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 14 Julio 2008, 13:52 pm

Lo siguiente que toca es corregir la IAT, lo que no tengo muy claro es si siempre que se llama a una api se hace con jmp dword.... o si también se puede llamar con call. Ayer me tire media hora dandole al f7 y traceando y no llegue a nigún jmp dword y me fuy a dormir ya por aburrimiento.

En fin, a ver si tengo una noche libre y me pongo a verlo mas detendiamente todo.

Un saludo.

Bien bien, te felicito.Ya nos queda menos.
En mi pobre opinión como aprendiz, más bien perro viejo, (jejeje, ya veo a más de cuatro riéndose), es que estamos ante un protector, dentro de la escala de los difíciles, de los más fáciles.Y por este motivo, este hilo podría hacerse bastante largo.
Todas esas zonas de llamadas que intentas trazar con F7 te pueden llevar a la tumba.Está todo ofuscado a propósito, para derrotarnos por aburrimiento.Si te has leído al completo el tutorial que te aconsejé, entenderás como lo hace para conseguir entrar en la API correspondiente del kernel "sin ser visto", por el cracker de turno.
Yo también estoy en ello, porque ahí lo abandoné.No fuí capaz de conseguir un desempacado funcional en su día.Ahora en el poco tiempo libre de que dispongo voy a seguir indagando.Por las anotaciones que tengo, me quedan dos API's dudosas que resolver y posteriormente hacer que las call's se dirijan a las API's en cuestión.
Que la fuerza nos acompañe amigo.

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: tena en 15 Julio 2008, 16:46 pm
Citar
En mi pobre opinión como aprendiz, más bien perro viejo, (jejeje, ya veo a más de cuatro riéndose)
Mintaka

Naaaa porque crees eso ?  ;D

Saludos Amigo


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 15 Julio 2008, 23:22 pm

Lo siguiente que toca es corregir la IAT, lo que no tengo muy claro es si siempre que se llama a una api se hace con jmp dword.... o si también se puede llamar con call. Ayer me tire media hora dandole al f7 y traceando y no llegue a nigún jmp dword y me fuy a dormir ya por aburrimiento.

En fin, a ver si tengo una noche libre y me pongo a verlo mas detendiamente todo.

Un saludo.

Bien bien, te felicito.Ya nos queda menos.
En mi pobre opinión como aprendiz, más bien perro viejo, (jejeje, ya veo a más de cuatro riéndose), es que estamos ante un protector, dentro de la escala de los difíciles, de los más fáciles.Y por este motivo, este hilo podría hacerse bastante largo.
Todas esas zonas de llamadas que intentas trazar con F7 te pueden llevar a la tumba.Está todo ofuscado a propósito, para derrotarnos por aburrimiento.Si te has leído al completo el tutorial que te aconsejé, entenderás como lo hace para conseguir entrar en la API correspondiente del kernel "sin ser visto", por el cracker de turno.
Yo también estoy en ello, porque ahí lo abandoné.No fuí capaz de conseguir un desempacado funcional en su día.Ahora en el poco tiempo libre de que dispongo voy a seguir indagando.Por las anotaciones que tengo, me quedan dos API's dudosas que resolver y posteriormente hacer que las call's se dirijan a las API's en cuestión.
Que la fuerza nos acompañe amigo.

Mintaka

Bien, en el tutorial el tio va traceando con f7 hasta llegar a la llamada de una api, luego mira el registro de memoria para ver donde empieza la iat y donde termina. El caso es que en este caso por mucho que le des a f7 no se en que punto intenta entrar en la iat. He llegado a

00B9128C  |. FF15 2812BF00  CALL DWORD PTR DS:[BF1228]

que es donde da la primera excepción. Que digo yo que la excepcion la dará porque intenta acceder a una api que en realidad está ofuscada y al no encontrarla peta y el programa muere.

Intento mirar la parte de memoria de bf1228 pero ni iat ni leches XD

creo que me he vuelto a perder jejejeje


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 16 Julio 2008, 13:11 pm

Naaaa porque crees eso ?  ;D

Saludos Amigo

Tena, por el llajú te respondo (ya sabes, a la hora del hueso)  ;D
Un abrazo,

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Mintaka en 16 Julio 2008, 13:42 pm

creo que me he vuelto a perder jejejeje


Hola Redesoft.
Sí, estás perdido y creo que mucho.Para abordar una protección como ésta, debes tener varios conceptos de unpacking claros.Para no extenderme y aburrir a los lectores del foro, te recomiendo, aconsejo, suplico (porque te veo con ganas), que te leas los capítulos o partes:

PARTE 031  -  UNPACKING - NOCIONES BASICAS
PARTE 032  -  UNPACKING - BUSCAR OPCODES, BUSCADOR DE OEP DE OLLY, METODO PUSHAD, METODO EXCEPCIONES, METODO API MUY USADA,
         METO PRIMERA API EJECUTADA
PARTE 033  -  UNPACKING - QUE ES IAT Y COMO REPARARLA
PARTE 034  -  UNPACKING - CON AYUDA DE PE TOOLS, IMPREC
PARTE 035  -  UNPACKING - CON OLLYDUMP, IMPREC  (EJEMPLO ASPACK)
PARTE 036  -  UNPACKING - CON OLLYDUMP, IMPREC  (OTRO EJERCICIO PRACTICO)
PARTE 037  -  UNPACKING - REPARAR ENTRADAS REDIRECCIONADAS
PARTE 038  -  UNPACKING - REPARAR ENTRADAS REDIRECCIONADAS

que escribió un tal Ricardo Narvaja y los ejercites con la víctima.
Los encuentras aquí:

zzzz://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/

Te lo digo porque a partir del punto en que ya lo tienes desempacado y parado el programa en el OEP, empieza el "ball de bastons", o sea, lo más batallador que tiene el protector este.Hazme caso y aprenderás la ostia.
Suerte,

Mintaka


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 17 Julio 2008, 01:06 am
Gracias por el link. Segun veo en el indice el tema del unpacking acaba en el capitulo 55 así que ya que me pongo.... total... cuanto tiempo me puede llevar empollarme eso? un mes?? como mucho.... tampoco tengo prisa así que jejeje

un saludo ;)


Título: Re: Programa dificil, Paso 1.
Publicado por: apuromafo CLS en 4 Agosto 2008, 21:00 pm
por ser svpk y tener una complejidad media/media alta quizas con 1 o 2 meses es mas que suficiente, pero si te apoyas en scripts de olly quizas lo saques en menos, quien sabe


Título: Re: Programa dificil, Paso 1.
Publicado por: Redesoft en 6 Agosto 2008, 01:44 am
Ya, me he dado cuenta de que al parecer es un empakador de los dificiles, lo de usar scripts pues si, va bien, quizas si lo logramos hacer de forma manual pues luego investigo como hacerlo por scripts, total esto lo hago por aprender, si veo que me viene grande y no logro hacer nada pues tampoco pasaría nada jejeje, bueno si, mataría a mi orgullo propio pero por lo demas todo bien.


Título: Re: Programa dificil, Paso 1.
Publicado por: apuromafo CLS en 6 Agosto 2008, 06:17 am
por algo se dice que el cracking o ingenieria inversa da logros personales

;) animo , esperamos leer cuando ya tengas mas avanzado el tema