Título: El Crack Que faltaba : Ayuda Publicado por: N0mada en 17 Febrero 2012, 19:39 pm Hola a todos,
he estado en la web de berypdf (con V) y por internet hay millones de serial keygen etc de sus productos, el caso que de uno en concreto, ( doc 2 any) no; están de casi todos menos de ese. Lo he bajado y veo que a diferencia del resto es que la mayoria son instalables de win32 este es un programa de consola sin GUI, tiene alguna dll y una subcarpeta con .jar de java. Para intentar registrar le pones -$ 1234clave5678 pero si no es la correcta sin más te saca la ayuda por pantalla y ya está, no hay alert no hay más señal visible... Cómo hago para llegar a la zona caliente ? Que técnicas hay para estos casos, que no se por dónde tirar ... >:( Gracias ! Título: Re: El Crack Que faltaba : Ayuda Publicado por: Иōҳ en 17 Febrero 2012, 20:19 pm por aquí;
<http://ricardonarvaja.info/WEB/OTROS/JAVA> DPIIjava14.pdf DPIIjava10.pdf DPIIjava19.pdf DPIIjava4.pdf.7z DPIIjava2.pdf.7z DPIIjava5.pdf DPIIjava18.pdf DPIIjava13.pdf DPIIjava12.pdf DPIIjava3.pdf.7z DPIIjava9.pdf DPIIjava7.pdf DPIIjava17.pdf DPIIjava6.pdf CovertJava.rar DPIIjava1.pdf.7z DPIIjava16.pdf DPIIjava8.pdf DPIIjava15.pdf Pone en el buscador: http://ricardonarvaja.info/WEB/buscador.php java Una aplicación compilada en java es un conjuto de bytecodes, esto es muy diferente a un ejecutable PE, por lo tanto solo puede ser interpretado/entendido por la VM de java (JVM). De todas maneras creo que debes empezar por aquí: http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo-t345798.0.html Nox. Título: Re: El Crack Que faltaba : Ayuda Publicado por: w0nt0n en 17 Febrero 2012, 20:54 pm Buenas.
Le he echado un ojo al programa y por lo que parece está programado en Visual C++ (peid). La parte caliente del programa es muy sencilla de encontrar, pero deberías pegarte un poco con él. Traceando "a mano" puedes llegar fácilmente y si no, te dejo una pista, que no es muy reveladora y que te lleva por un camino un poco más farragoso (a parte de quitarle toda la gracia). Pista: Strings Saludos! Título: Re: El Crack Que faltaba : Ayuda Publicado por: N0mada en 18 Febrero 2012, 13:48 pm Buenas a todos,
a ver que me siento un poco como que tengo el pez pero sigo sin saber pescar. He buscado "all references text strings" lo que el programa dice al convertir un archivo: ASCII "You have %d time to evaluate this product, you may purchase a full version from... Aparece esa y otra: ASCII "Thank you for choosing our product." Voy a esa línea y veo: Código: 0041BAB2 |. 68 D8316500 PUSH doc2anyO.006531D8 ; ASCII "Thank you for choosing our product." Código: 0041BA92 |. E8 C9E0FFFF CALL doc2anyO.00419B60 (Por cierto WriteProfileString lo escribe en el win.ini y no en el registro! Win7 ya no cuenta con win.ini ?¿?¿) Si subimos está el JE y el TEST y antes el CALL doc2anyO.00419B60 Si NOPeo ese 74 21 ya no me salta la parte buena y todo funciona bien, me quita hasta la marca de agua de publicidad. Y aquí empiezan mis dudas: a CALL doc2anyO.00419B60 se le llama: Local calls from 0041BA92, 0041C7AF ¿la segunda llamada para qué es? Aparentemente no afecta pero no me fío... Otra cosa: es mejor que NOPear hacer que la rutina de CALL doc2anyO.00419B60 haga MOV EAX,1 RETN Si no lo he entendido mal el TEST EAX, EAX hace un AND pero no altera más que los flags, léase comprueba si EAX es 0. JE salta si FZ = 0 así que si pongo un 1 en EAX con el TEST, FZ se queda a 0 y JE no salta. es correcto ? Ale voy a seguir, si alguien quiere perder un rato explicándome alguna de estas cosas se lo agradeceré. Voy a buscarme otro programa para volver a tropezar y tostaros a dudas :rolleyes: Saludos !! Título: Re: El Crack Que faltaba : Ayuda Publicado por: N0mada en 18 Febrero 2012, 14:04 pm Perdón por la errata,
donde dice: JE salta si FZ = 0 quería decir JE salta si el operando es CERO ( y por tanto FZ = 1) Título: Re: El Crack Que faltaba : Ayuda Publicado por: .:UND3R:. en 18 Febrero 2012, 16:21 pm Citar Y aquí empiezan mis dudas: a CALL doc2anyO.00419B60 se le llama: Local calls from 0041BA92, 0041C7AF ¿la segunda llamada para qué es? Aparentemente no afecta pero no me fío... Otra cosa: es mejor que NOPear hacer que la rutina de CALL doc2anyO.00419B60 haga MOV EAX,1 RETN Para saber que función realiza cada call debes tracearlas y entenderlas. En cuanto a entre nopear y modificar el return de la call siempre es más conveniente modificar de menor manera posible el código (evita posibles excepciones). Citar Si no lo he entendido mal el TEST EAX, EAX hace un AND pero no altera más que los flags, léase comprueba si EAX es 0. JE salta si FZ = 0 así que si pongo un 1 en EAX con el TEST, FZ se queda a 0 y JE no salta. es correcto ? TEST realiza un AND si modificar el operando de destino. Por lo cual solo afecta a las banderas de registros (FLAGS). Operación AND: V V = V V F = F ; Se ignora al ser tanto el operando de origen y de destino iguales F F = F o 1 1 = 1 1 0 = 0 ; Se ignora al ser tanto el operando de origen y de destino iguales 0 0 = 0 Es decir que la única manera de activar la bandera cero (FZ) a través de la instrucción nemónica TEST es cuando EAX = 0 0 0 = 0 En caso de que sea 1 FZ=0 No logro entender la parte del código que me has enviado (lo entendería mejor con el programa completo debuggeado) pero si la solución general es invertir el némonico de instrucción de salto condicional JNE por JE o JE por JNE Saludos Título: Re: El Crack Que faltaba : Ayuda Publicado por: N0mada en 19 Febrero 2012, 21:58 pm Gracias por la info .:UND3R:.
Pues el código simplemente pretende hacer que una función a la que se llama salga siempre con 1. Así el JE no salta porque FZ = 0 Lo de cambiar de JE a JNE no me parece opción porque entonces la clave correcta NO te registraría, y lo veo un poco chapuzilla. Yo lo que menos me convence de mi forma de encontrar la zona caliente es lo de buscar por las cadenas de texto. Cómo se puede hacer eso por ejemplo suponiendo que no tenemos esas cadenas de texto tan a mano?. Meter una clave 123456789 y parar la ejecución cuando el EAX tenga ese valor (123456789) es posible ? Respecto a lo de tener el programa entero para debuguear incluyo el link (no lo puse al principio porque no se si se puede por las normas...) he usado el DOC to Any Converter Command Line www.verydoc.com/doc-to-any.html Por cierto w0nt0n si la String-pista ;) es el camino farragoso, cuál era la otra aproximación ? Saludos ! Título: Re: El Crack Que faltaba : Ayuda Publicado por: .:UND3R:. en 20 Febrero 2012, 13:10 pm Claro si se invierte por lógica los serial correctos serán considerados como incorrectos, para permitir cualquiera la solución sería OR EAX,ECX o OR EAX,EDX
el operando de origen debe ser distinto de cero así supongamos que EAX es cero: EAX = 0 0 0 0 0 0 0 0 ECX = 1 0 1 0 1 1 1 1 R= 1 0 1 0 1 1 1 1 ZF=0 Si introdujeras un serial correcto: EAX = 0 1 0 1 1 1 1 1 ECX = 1 0 1 0 1 1 1 1 R= 1 1 1 1 1 1 1 1 ZF=0 En cuanto a las maneras de acercarse a la "zona caliente" (funciones encargadas de comprobar la validación de un serial). Depende del programa. Puede ser con la API MessageBox, GetDlgItem, GetDlgItemText Verificar en memoria si está la función de verificación Tracear Hay demasiadas formas, la diferencia entre un programa seguro e inseguro por así decirlo a mi criterio sin considerar packer es que la solución se limita a menos métodos que funcionan. Saludos Título: Re: El Crack Que faltaba : Ayuda Publicado por: N0mada en 20 Febrero 2012, 16:37 pm Ya pero es que este programa no tiene GUI, es de consola. Así que ni alerts ni diálogos ni nada.
Para estos casos que métodos típicos hay? (algunos como esos que me has dicho para el API de Win32) Lo que te decía, meter una clave 123456789 y parar la ejecución cuando el EAX tenga ese valor (123456789) es posible ? Cómo se hace? Gracias ! |