Feda /dev/

afhn

#15990 En desarrollo en entorno servidor llevamos usando spring desde que empezamos, por eso tengo que usarlo, el proyecto final ha de hacerse en spring.

Por lo cual sé configurarlo, no tendría ningún problema, es más, tenía ya preparado el proyecto final, tenía montado el proyecto con el pom y el webinf configurado, hasta una bbdd para la página, estaba empezando a hacer la página, pero pasó algo el otro día y decidí cambiar el proyecto, por eso necesito documentación, aprovechando que se me da bien java y tengo las bases necesarias para programar una aplicación por mi cuenta, para hacer una página web con java usando jsp.

A lo máximo que sé llegar a hacer atm es extraer datos de una bbdd para pasárselo a través del controller a la vista o extraer datos de un form a través del get y el post.

AikonCWD

#15978 Bueno, por lo que veo en la foto, estabas en el segundo paso todavía. El crackme consiste de 4 fases:

  1. Descubrir el modo para registrar la aplicación
  2. Descubrir el nombre del fichero de registro
  3. Descubrir la longitud del serial correcto
  4. Descubrir finalmente el string con el serial correcto

Es un crackme practicamente imposible de desensamblar con IDA, pues en el paso 4 mete un salto a una zona de código virtual, imposible de reversar. Los otros 3 puntos se pueden sacar con IDA fácilmente y su opción mágica de Xref. Si quieres intenta llegar al menos hasta el paso 4, o si lo prefieres me curro un post explicando los pasos.

1 respuesta
pineda

#15992 pues sería mucho de agradecer, porque hasta ahí he llegado fácilmente, pero al intentar sacar por ejemplo los parámetros que le pasas a la función de "dir" ya no lo consigo, y si con el XRef este que comentas (que jamás he usado o eso creo) lo sacas fácil, pues eso que aprendo :stuck_out_tongue:

tampoco hace falta que te curres un megapost eh!

1 respuesta
AikonCWD

#15993 Complicado de explicar sin un tochopost, pero bueno. Una vez estás al inicio de la función "mala" qque muestra el mensaje, puedes pulsar la X (o click derecho - Xref) y te mostrará las llamadas hacia dicha función. Así puedes ver desde que parte de programa se "llama" a la función "maligna". Tú ya encontraste una en la primera foto. La comparación test eax,eax es determinada por la función vbaStrCmp de más arriba, y ésta a su vez por rtcDir, tirando de MSDN descubres que Dir devuelve el string a una ruta o fichero (si existe), simplemente es la función que va a buscar el keyfile, si no existe directamente te lanza a BADGUY:

La función que he marcado en rojo desencripta el string hfzejof-gbw en keyfile.dat, ahí ya descubres el nombre del fichero. Al terminar ésta primera fase vas a la segunda, te la dejo analizada en rojo en un lateral:

Básicamente abre el fichero, lee la primera línea y comprueba que el string tenga 13 carácteres. Hasta aquí es relativamente fácil reversar el código, el problema es cuando llegas a la tercera función. (La primera comprueba si existe el fichero, la segunda lee el fichero y comprueba que el string mida 13 y la tercera hace cálculos con el string leído):

Nos encontramos de frente delante de código virtualizado. Se han sustituido las instrucciones originales en ensamblador por otras instrucciones inventadas que la CPU no puede ejecutar (de ahí que se vean símbolos raros en el debugger/IDA). El código del ejecutable se ha sustituido por instrucciones ilegales que la CPU no entiende.

¿Y como puede la CPU ejecutar el código del crackme si las instrucciones son desconocidas? Pues porque éste crackme lleva en su interior una máquina virtual (una CPU virtual), dicha VM es capaz de interpretar las instrucciones "falsas" del ejecutable. Con éste método haces imposible que un ser humano pueda reversar el código, pues las herramientas tipo IDA y debuggers no pueden leer el código virtual inventado por la VM.

A modo resumen, lo que ocurre es lo siguiente:

El código "azul" es ASM normal, interpretable por IDA/debugger y ejecutable por cualquier CPU. El código "naranja" son instrucciones inventadas, ni los debuggers ni la CPU lo pueden interpretar/ejecutar, para que el crackme sea funcional se añade una VM al final del ejecutable que se encarga de ejecutar las instrucciones inventadas:

Y bueno, sinceramente me ha sorprendido que lo hayan conseguido crackear, para el próximo crackme intentaré tapar los fallos de éste y ofuscar las llamadas al framework de visualbasic para dificultar más el análisis.

3
gohrum

#15914 tr:hover td{background-color: red; } ?

1 respuesta
afhn

#15995 era hacer algo como al arrastrar un objeto, mientras el primario está clickeado al pasar el ratón se colorea, pero ya está hecho.

HeXaN
1
Troyer

MisKo

Por si a alguno le interesa: https://www.qwertee.com/jobs#devops

AikonCWD

Los buenos baits mañaneros del mono de @Misko

2 1 respuesta
MisKo

#16000 Si fueras programador, habrías resaltado tambien Coffee Script y Express xD

2 respuestas
AikonCWD

#16001 No los conozco, pero creo que lo más grave de ahí es nodejs, usar JS para server-side es el infierno, no? coffee y express npi de lo que hacen

1 respuesta
MisKo

#16002 Express es un FW para NodeJS y Coffee Script es un lenguaje 'intermedio' que acaba 'transpilando' el código a Javascript, algo como el Typescript actual, pero creo que más antiguo

1 respuesta
AikonCWD

#16003 Suena cancerígeno también. Lo añadiré a mi hate-list

pineda

vamos que buscan un devops que sepa javascript. Bueno, eso y hablar

1 respuesta
AikonCWD

#16005 Quieres más crackmes (pero sin virtualización, más sencillos) para practicar?

1 respuesta
MisKo

A la IZQ CoffeeScript y a la derecha el código al transpilar

1 2 respuestas
pineda

#16006 voy a sonar excusica pero no mersi, estoy en un pico de trabajo importante ya que se me han solapado 2 proyectos, y el freelance que me ayudaba me ha dejado tirado. Como lo pongas, me conozco y me pondré con ello :joy:

1 1 respuesta
Kaiserlau

promises

1
Troyer

#16008 si necesitas freelance yo cobro 20€ la hora ;D

Y por 25€ te dejo acabar donde quieras.

1 2 respuestas
MisKo

#16010 Haces factura? :wink: Interesa la de 25€ :P

B

#16001 Cual es el problema con express?, probáblemente el framework para servicio restful más usado en nodejs. Lo de coffee script si que es sida del bueno.

1 respuesta
pineda

#16010 20 € / h? Y te salen los números?

MisKo

#16012 Pues q si destaca NodeJS en la oferta, debería destacar Express tambien, ya que está integramente asociado a NodeJS, y lo de Coffee Script no es porque sea mejor o peor, si no pq tambien estaría asociado a JS.

Vamos que no ha destacado todo lo que engloba JS, independientemente de lo bueno/malo que sea xD

1 respuesta
AikonCWD

La chinita de la peluquería de mi barrio está también a 20€/h

#16014 Porque gracias a dios tengo la suerte de no necesitar conocer JS en mi vida.

1 respuesta
MisKo

#16015 Si no era una crítica hacia ti, simplemente explicaba lo de mencionar Express y CoffeeScript xD

Yo si toco javascript a diario, pero no he tenido que lidiar con NodeJS ni Express nunca (aunque alguna que otra prueba si he hecho, pero nada profesional ).

1 respuesta
AikonCWD

#16016

1 respuesta
MisKo

#16017 Se nota q el de la imagen es un sysadmin, esta probando el teclado y el raton inalámbricos

6
Jastro

Yo uso node + express bastante y me mola. Podeis lapidarme si quereis.

Saphyel

#16007 prueba typescript es mas OOP

1 respuesta
Tema cerrado