Título: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 11 Septiembre 2013, 20:05 pm Hola a todos
Acabo de diseñar un nuevo crackme para el foro, compilado siempre con VB6. Ésta vez se trata de un crackme tipo keyfileMe, el software se activa si encuentra el fichero de licencia correcto. Además para hacerlo más divertido he programado distintos "niveles" de licencia:
(http://i.imgur.com/4TbOprV.png) (http://i.imgur.com/RrRfuVH.png) El crackme es algo complejo, no se puede parchear. Utiliza Hardware Fingerprint para generar parte de la licencia. Se considerará la prueba superada si consigues generar un keyfile completamente válido. No importa el nivel de la licencia (User, Pro, Full, etc). Para demostrar que has logrado superar el reto deberás postear tu keyfile correcto y tu Hardware Fingerprint que ha generado el crackme. Aviso: No se puede parchear. El crackme está comprimido y protegido. Podéis usar el hilo para compartir info entre vosotros. DOWNLOAD: LINK (http://www.mediafire.com/download/gr51io6ycr1b510/keyfile_me_(madantrax).zip) Os dejo una captura del crackme resuelto con mis datos (no os muestro el keyfile): (http://i.imgur.com/wgobQtE.png) Saludos!! :D (Si no podéis superar el reto, os dejo parchear el crackme) Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Flamer en 11 Septiembre 2013, 20:45 pm donde esta el link de descarga eso es una imagen
suvelo a sendspace, mediafire o ultrashare saludos flamer y no creo resolverlo por que estoy con el otro pero lo agregare a mi coleccion Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 11 Septiembre 2013, 20:46 pm donde esta el link de descarga eso es una imagen suvelo a sendspace, mediafire o ultrashare saludos flamer y no creo resolverlo por que estoy con el otro pero lo agregare a mi coleccion link restaurado Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 2 Octubre 2013, 13:39 pm Nadie más lo ha intentado? :(
Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: EscritoEstáSatanás en 3 Octubre 2013, 02:43 am Enseiro es imposible parchearlo?
Jeje el packer es demasiado facil. Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 3 Octubre 2013, 11:17 am Enseiro es imposible parchearlo? Jeje el packer es demasiado facil. No dije que sea imposible parchearlo, digo que no debéis parchearlo. Si no sería demasiado fácil el crackme Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: MCKSys Argentina en 3 Octubre 2013, 21:47 pm Anoche lo baje y lo estuve mirando "muy por encima": Linda VM... :silbar:
Si hago un poco de tiempo libre, trato de mirarlo un poco mas a fondo a ver como esta funcionando ese monstruo... :P Saludos! PD: @||MadAntrax||: Por un momento, me vino a la mente el HyperUnpackme... :xD Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 4 Octubre 2013, 13:51 pm Anoche lo baje y lo estuve mirando "muy por encima": Linda VM... :silbar: Si hago un poco de tiempo libre, trato de mirarlo un poco mas a fondo a ver como esta funcionando ese monstruo... :P Saludos! PD: @||MadAntrax||: Por un momento, me vino a la mente el HyperUnpackme... :xD jejejeje, van mejorando mis crackme's, verdad? ;) Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: karmany en 7 Octubre 2013, 03:02 am He disfrutamo mucho analizándolo. Después de pegarme un buen rato analizando la Máquina Virtual y de obtener el código a partir de los opcodes, descubrí que el crackme tiene una muy muy gran debilidad que ya explicaré...
(http://i.elhacker.net/i?i=wmR_ewAzIglEuB8vm5ITLWVo) (http://i.elhacker.net/d?i=wmR_ewAzIglEuB8vm5ITLWVo) Código: Registration keyfile Muy bueno... Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 7 Octubre 2013, 10:55 am He disfrutamo mucho analizándolo. Después de pegarme un buen rato analizando la Máquina Virtual y de obtener el código a partir de los opcodes, descubrí que el crackme tiene una muy muy gran debilidad que ya explicaré... (http://i.elhacker.net/i?i=wmR_ewAzIglEuB8vm5ITLWVo) (http://i.elhacker.net/d?i=wmR_ewAzIglEuB8vm5ITLWVo) Código: Registration keyfile Muy bueno... La verdad es que no esperaba menos de ti jajaja, lo has resuelto a la perfección!! Me alegra que hayas disfrutado analizando el código y la VM :P Te ha resultado complicada la VM? Te ha resultado complicado el algoritmo del keyfile? Alguna sugerencia que me puedas indicar para mejorar? Espero con ansias algún tutorial (aunque sea cortito) destripando el keyfile_me, incluyendo también el "fallo" que has descubierto ;) Saludos y gracias por participar!! Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: karmany en 7 Octubre 2013, 20:55 pm Cita de: ||MadAntrax|| Te ha resultado complicada la VM? Te ha resultado complicado el algoritmo del keyfile? Alguna sugerencia que me puedas indicar para mejorar? Espero con ansias algún tutorial (aunque sea cortito) destripando el keyfile_me, incluyendo también el "fallo" que has descubierto ;) Saludos y gracias por participar!! 1.- Mi opinión La idea de usar una VM (Máquina Virtual) es muy interesante para evitar que te puedan desensamblar el código, sin embargo, la has usado en la mayoría de subrutinas. Esto en un Crackme no lo veo del todo bien, porque limitas la resolución a las personas que conozcan dicha VM. Me lo imagino como analizar un P-Code sin ninguna herramienta y desde cero: es muy difícil. Por este motivo yo creo que el Crackme debería haber usado la VM en una sola subrutina, así se hubiese animado más gente a analizarlo. Sobre la VM: es impresionante (yo me quito el sombrero ante la programación de este "bicho"), va cambiando y no es igual en cada compilación y no he visto en la red ningún tutorial sobre cómo desvirtualizar (desensamblar los opcodes) de la última versión (aunque lleva años sin actualizarse). Sin embargo, la protección de esta VM no es completa porque deja muchas cosas a la vista, por ejemplo, la IAT está intacta. Esto es un punto débil que he aprovechado. 2.- Solución SENCILLA Está comprimido con UPX, yo lo desempaco con el mismo UPX (no hace falta pero se trabaja mejor y es muy sencillo): Código: C:\upx309w>upx -d keyfile_me.exe Llegas al OEP: 4013EC. Fíjate qué 2 funciones tenemos encima: Código
Poco más queda por decir. Pon un BP en __vbaStrCmp (gran debilidad) y verás qué muestra la pila en la primera parada: Código: 0012F8F0 004540C1 /CALL to __vbaStrCmp Parece que el archivo se debe llamar filekey.lic. Crealo en el mismo directorio del Crackme y en él escribe varias líneas (verás que necesita 7). Por ejemplo escribe esto: Código: Primera Y ahora reinicia el depurador y simplemente con un BP en __vbaStrCmp observa la pila. El Crackme estará resuelto: 1ª línea Código: 0012F8F0 00454237 /CALL to __vbaStrCmp etc... 2.- Solución compleja analizando la VM Analizar la VM desde cero sin nada de información, es muy difícil. He visto algún artículo interesante en inglés, pero tutoriales y ejemplos ninguno. Sin embargo, existe un poderoso plugin para OllyDBG 1.10 (sin ayuda de cómo utilizarlo) que puedes descargar de aquí: http://tuts4you.com/download.php?view.3108 (http://tuts4you.com/download.php?view.3108) Su manejo tampoco es que sea muy sencillo pero verás que (por ejemplo) si pulsas el botón derecho sobre: Código: 00403C70 .- E9 67F40C00 jmp 004D30DC ; keyfile_.004D30DC Así comprobé que el número de líneas era 7, que algunos textos (líneas) del archivo de la licencia tenían que tener más de 3 letras porque si no llegaba a NULL, que existía un código que creo que descifra strings y a veces se utiliza más de 1 vez, que se utiliza StrReverse ... todo el pastel Lo único que no he analizado son las 3 o 4 licencias. Finalmente, para los menos experimentados, decir que muchas veces algo complejo (una VM lo es) puede solucionarse de forma muy sencilla como se ha visto hoy... Saludos Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: Mad Antrax en 7 Octubre 2013, 21:40 pm Aaaarrrg, maldito __vbaStrCmp como lo odio xD
En anteriores crackme's he utilizado una técnica casera para poder comparar 2 string's sin recurrir a __vbaStrCmp, la verdad que lo complicada todo un poco más. Por alguna razón no he incluido esa rutina en éste crackme, pero lo tendré en cuenta a ver si consigo sacar un "bicho" más gordo. Acepto tu crítica sobre no usar una VM para todas las rutinas, lo veo logico y lo tendré en cuenta en futuros proyectos. Por el momento no he publicado ningún crackme con la IAT modificada, principalmente porque a día de hoy yo soy incapaz de reparar una IAT a mano, y no veo justo pedir unos conocimientos para mi crackme que ni yo mismo domino :P Gracias por tu análisis, me sirve mucho saber las debilidades para poder reforzarlas en un futuro. Aprovecho el hilo para hacer spam de mi único crackme que sigue sin resolver, MCKSys estuvo muy cerca pero perdió sus avances en un rollback, te reto a que continúes por aqui.... http://foro.elhacker.net/ingenieria_inversa/crackme_easycrackme_by_madantrax-t397370.0.html Espero noticias tuyas. Saludos!! :D Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: MCKSys Argentina en 8 Octubre 2013, 21:14 pm Puf!!! Karmany eres una bestia! (ojo! en el buen sentido :))
Ese plugin que comentas me ha dejado pasmado: estaba armando un script para reestructurar cada opcode de la vm, pero con esto no puedo competir! (el script demoro unas 3 horas en reestructurar solamente. De ahi a desofuscar estaba a 1 año luz... :-\) Pero bueno, mucho de este arte consiste en saber reconocer las cosas del principio. Pense que era una VM custom y por eso me puse a atacarla, pero veo ahora que es de Oreans. @karmany: Felicitaciones amigo! @||MadAntrax||: Muy buenas ideas, espero sigas posteando cosas asi cada tanto... Saludos! Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: EscritoEstáSatanás en 9 Octubre 2013, 05:17 am @MCKSys Argentina : Tanto trabajo es reventar una VM, no lo sabia.
@Karmany: Algun texto q me puedas pasar para entender esto, la verdad es muy complejo. Me gustaría aprender mas sobre las VM. Título: Re: Crackme: Keyfile_Me by MadAntrax Publicado por: karmany en 11 Octubre 2013, 21:45 pm Puf!!! Karmany eres una bestia! (ojo! en el buen sentido :)) Ese plugin que comentas me ha dejado pasmado: estaba armando un script para reestructurar cada opcode de la vm, pero con esto no puedo competir! (el script demoro unas 3 horas en reestructurar solamente. De ahi a desofuscar estaba a 1 año luz... :-\) Pero bueno, mucho de este arte consiste en saber reconocer las cosas del principio. Pense que era una VM custom y por eso me puse a atacarla, pero veo ahora que es de Oreans. @karmany: Felicitaciones amigo! @||MadAntrax||: Muy buenas ideas, espero sigas posteando cosas asi cada tanto... Saludos! No te he podido contestar antes... ¡Buah! enfrentarse a una VM tan compleja como esta desde cero, requiere muchísimas horas de análisis. Yo no hubiese analizado la VM sin el plugin, muchas horas..... Además yo no sé si los opcodes son los que existen en la subrutina (después de cada jmp) o el mismo packer las "esconde" en otro sitio. Un saludo amigo... |