AbandonSocios: El Portal de los Juegos Antiguos

Abandonsocios => Dudas y Problemas Técnicos => Mensaje iniciado por: Ultimate2000 en Noviembre 17, 2018, 23:19:41 pm

Título: Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 17, 2018, 23:19:41 pm
Hola
Porfavor
Pido ayuda a quien sea que me enseñe a crear crack no cd de manera sencilla para los juegos
Y que dicho crack funcione correctamente
Gracias
Título: Re:Aprender a crear crack no cd
Publicado por: Dairgal el Blanco en Noviembre 18, 2018, 01:04:55 am
Bueno debes aprender a usar el codigo hexadecimal. Luego saber programación y algo de ingeniería reversa; y luego saber las cientos de miles instrucciones del programa que quieres piratear. Entonces podrás.
Aqui te dejo XVI32 (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm), para editar y crear el crack
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 01:16:26 am
Bua
De informática ni idea
En caso de tener una ISO.con anticopia
Se podria montarla de una manera que no me pida el cd original?
Título: Re:Aprender a crear crack no cd
Publicado por: xblastoise99 en Noviembre 18, 2018, 01:18:18 am
Mira. Te cuento desde mi experiencia. Crear un crack para un juego nunca es fácil. Como bien dice Dairgal, te convendría empezar con ediciones hexadecimales simpes. El XVI32 es una buena opción. Con este programa, por ejemplo, puedes llegar a hacer un NO CD (Siempre y cuando sepas o encuentres que cadenas de valores cambiar) Eso seria lo mas "fácil". También con una edición hexadecimal puedes alterar o modifcar el comportamiento y la resolución del juego (No siempre)

Pasando a un plano mas elevado, tienes que saber de programación (Casi obligatorio) y conocer el lenguaje que maneja el juego. Una vez hecho eso, puedes experimentar con el OllyDBG ayudándote con algunos tutoriales y que en Youtube hay muchos ^-^ . Con esto puedes llegar a hacer cracks perfectamente. ;)

Sobre el juego en cuestión: ¿Que juego es el que quieras hacer NO CD? Tal vez por ahí te podemos echar una mano.  ^-^

Lo que no entendí bien es lo de la .ISO anticopia. Si es una .ISO significa que lo pudiste copiar o te ¿refieres a un CD anticopia?. En todo caso,  puedes probar montarla en la opción SCSI con el Daemons Tools a ver como se comporta. ;)

Saludos!!!

Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 01:57:59 am
Me he descargado hype the time ques en italiano(se hablar italiano)
Midtown madness
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 02:02:17 am
Y también  el to m candy del 1998
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 02:11:11 am
Tom clancy
https://mega.nz/#!lQNAQSzZ!5h6mjKUFOx-QuDs-BiIp6ztJdv_aPYnKif_sDSzbG0I
Hype The Time Quest italiano
https://mega.nz/#!aYdlhAyC!BEuhzVIH8WbflGv29tWKguIp9gASPDReVN40Xn7QupY

En el de Hype no he conseguido quitarle el anticopia y no me pide le cd original
Además los crack que hay en Internet no funcionan
Y en Tim Clancy igual
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 02:22:55 am
Encontré este tutorial
https://www.taringa.net/+hazlo_tu_mismo/crear-cracks-no-cd-para-juegos-o-softwares_12qt1v
Y me he bloqueado en la parte de generar ejecutable de Windows 32 p algo así
Título: Re:Aprender a crear crack no cd
Publicado por: Gelon en Noviembre 18, 2018, 02:47:58 am
tatapindi ya crackeó el Hype en el hilo correspondiente hace tiempo, pero el crack está caído. No sé si lo conservo, miraré.

Lo que no sé es por qué no lo pides en el hilo del juego cuando tú mismo respondiste en él..
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 12:12:07 pm
Pues porque la solución  que tengo no funciona
Título: Re:Aprender a crear crack no cd
Publicado por: Gelon en Noviembre 18, 2018, 12:29:47 pm
Pues tú sabrás por qué no te sirve. El crack funcionaba bien en Windows 10 y el juego era multi-lenguaje.

He resubido el crack de tatapindi al hilo original.
Título: Re:Aprender a crear crack no cd
Publicado por: Ultimate2000 en Noviembre 18, 2018, 12:45:58 pm
Ah perdona
Creía que te referías a la solución de instalador alterno
Aún no he mirado el crack
De los demás juegos sabes algo?
Título: Re:Aprender a crear crack no cd
Publicado por: gatuno en Noviembre 18, 2018, 14:49:06 pm
Bueno, lo que estas pidiendo es como decir "no se conducir pero enseñadme a conducir un coche de manera sencilla". ;)

Pero va un ejemplo muy simple de un cracking en la practica: un viejo (1997) juego argentino para msdos llamado Sauro [1] que no arranca en DOSBox. Si, el que parcheamos hace unos dias.

Al cargar SAURO.EXE en DOSBox el programa nos devuelve al DOS con el mensaje "Atencion el sistema necesita una placa VGA valida, instale una. GRACIAS por usar este producto RAL SOFT".

Comenzamos cambiando en la configuracion de DOSBox la tarjeta grafica que DOSBox presenta al juego y seguimos con el mismo problema, asi que decidimos acudir al debugger.

El ejecutable SAURO.EXE es un ejecutable de MSDOS, por lo que necesitamos un debugger que pueda leer binarios de DOS. Yo he usado la version free de IDA 5.0 [2], ya que versiones free posteriores eliminaron soporte DOS. Manos a la obra.

Arranco IDA y cargo SAURO.EXE indicando que es un EXE de DOS. Espero unos segundos a que se complete el analisis y como en este caso el codigo no esta empaquetado, ni tiene protecciones antidebug, ni tiene codigo que se modifica a si mismo en tiempo de ejecucion (SMC), ni nada raro, en cuanto IDA termina el analisis tengo ante mi el codigo en ensamblador de SAURO.EXE

Es muy largo por lo que necesito acotarlo a la seccion que me interesa. Bien, sabemos que al ejecutar SAURO.EXE el programa finaliza y nos devuelve al DOS con el mensaje "Atencion el sistema necesita una placa VGA compatible". Esa cadena esta en algun lado, podria estar en texto claro, o codificada o no estar en SAURO.EXE sino en algun archivo que lee SAURO.EXE, o ser un mensaje que devuelve el S.O., pero por algun sitio tenemos que empezar, la buscamos en IDA y nos encontramos con el siguiente codigo ensamblador:

Código: [Seleccionar]
loc_31DD:
push    ds
push    offset aAtencionElSist ; "\nAtencion el sistema necesita una placa"...
call    sub_1BD5
pop     cx
pop     cx
push    ds
push    offset aGraciasPorUsar ; "GRACIAS por usar este producto RAL SOFT"...
call    sub_1BD5
pop     cx
pop     cx
push    0
call    sub_261
pop     cx

loc_31DD: es una etiqueta puesta por IDA porque en algun momento del codigo el flujo de ejecucion nos lleva hasta ahi. Bien, pedimos a IDA que nos muestre desde donde se llama a loc_31DD y el debugger nos muestra esto:

Código: [Seleccionar]
sub_31B9 proc far

var_1= byte ptr -1

enter   2, 0
push    14h
call    sub_1AED
pop     cx
mov     [bp+var_1], al
test    [bp+var_1], 30h
jnz     short loc_31DD

Ya viendo esto sabemos que muy probablemente ya lo tenemos y solo necesitariamos invalidar el salto JNZ. Justo antes de llegar al salto condicional JNZ vemos  que se compara con un TEST el valor que hay en la direccion de memoria [bp+var_1] con el valor 30 en hexadecimal. Solo si es 30h el TEST devolvera un 0. Luego viene el salto JNZ que dice que si no es 0 (JNZ = Jump if Not Zero) saltamos a loc_31DD, que equivaldria a que el programa no ha detectado una placa VGA valida y finalizaria, que es lo que nos esta pasando.

Si vemos la funcion sub_1AED a la que llama CALL tenemos esto:

Código: [Seleccionar]
; Attributes: bp-based frame

sub_1AED proc far

var_1= byte ptr -1
arg_0= byte ptr  6

enter   2, 0
mov     dx, 70h ; 'p'
mov     al, [bp+arg_0]
out     dx, al          ; CMOS Memory:
                        ; used by real-time clock
inc     dx
in      al, dx          ; CMOS Memory
mov     [bp+var_1], al
mov     al, [bp+var_1]
leave
retf
sub_1AED endp

Esta es la rutina que chequea si tenemos una VGA o compatible y vemos que no llama a la INT de Video de la BIOS (INT_10), sino que se comunica con la CMOS mediante las instrucciones de acceso a puertos IN/OUT. out 70h/in 71h parece no estar correctamente emulado en DOSBox, ya que como vimos en sub_31B9, el juego espera un valor diferente al que le comunica DOSBox, con lo cual acaba saliendo al DOS con el mensaje de que no encuentra VGA valida.

Para "crackearlo" tenemos al menos dos opciones. Una seria modificar la funcion sub_1AED para que siempre devolviera el valor 30h, que es el que comprueba el TEST que vimos, pero quizas la solucion mas simple y por tanto la mejor seria invalidar el salto jnz short loc_31DD de tal forma que no saltaramos al codigo que nos muestra por pantalla "no hay vga valida" sino que el programa continuara y pudieramos jugar a SAURO.

Bien, el codigo ensamblador es mas bajo nivel que un lenguaje como C pero aun no es lo que entiende la CPU, la CPU solo entiende de ceros y unos. Y para que los humanos podamos entenderlo un poco mejor representamos los ceros y unos en hexadecimal. Cada instruccion ensamblador se traduce a lo que se conoce como opcodes. Si pedimos a IDA que nos muestre los opcodes al lado de las instrucciones para el salto jnz short y las instrucciones inmediatamente anteriores tenemos:

Código: [Seleccionar]
0BCF call    sub_1AED
0BD4 pop     cx
0BD5 mov     [bp+var_1], al
0BD8 test    [bp+var_1], 30h
0BDC jnz     short loc_31DD

La columna de la izquierda son los opcodes en hexadecimal para cada instruccion (1 opcode=1 byte, 0B es un byte, CF otro byte). El salto JNZ se traduce como los dos bytes en hexadecimal "0B DC". Para invalidar el salto existe una instruccion en ensamblador x86 que es NOP, y simplemente no hace nada, cuando la CPU ejecuta un NOP se consume algun ciclo de cpu pero no hace nada y continua con la siguiente instruccion. El opcode de NOP en arquitectura x86 es 90 en hexadecimal.

Pues manos al crakeo. Si sustituimos el fragmento de codigo anterior por...

Código: [Seleccionar]
0BCF call    sub_1AED
0BD4 pop     cx
0BD5 mov     [bp+var_1], al
0BD8 test    [bp+var_1], 30h
90   nop
90   nop

...cuando el programa haga la comprobacion con TEST no importara el resultado de esa comprobacion porque luego ejecutara los dos NOP que siguen y continuara hacia el flujo de ejecucion de que ha encontrado una placa VGA valida, es decir, veremos el juego en si.

Para parchearlo podemos por ejemplo abrir SAURO.EXE con un editor hexadecimal y buscar la cadena de bytes "0B CF 0B D4 0B D5 0B D8 0B DC", asegurarnos de que sea unica (si no buscariamos con una cadena mas larga) y sustituirla por "0B CF 0B D4 0B D5 0B D8 90 90"

Y ya estaria crackeado. Digo crackeado porque imagina que en vez de comprobar un valor que devuelve la memoria CMOS el programa estuviera comprobando si la clave que has puesto es valida o no. La logica seria la misma o muy similar, invalidar el salto hacia chico_malo para que siempre siguiera el flujo de ejecucion por el camino chico_bueno.

Este era un ejemplo simple: no empaquetado, no SMC, no antidebugging, nada, solo anular un salto, pero puede complicarse y mucho y ahi pues paciencia y determinacion.

No es necesario conocer todas las instrucciones ensamblador, aunque cuanto mas mejor. Saber como el sistema operativo en que nos movemos maneja la memoria, pila, interrupciones, BIOS, acceso a ficheros, etc es mas necesario que conocer todas las instrucciones ASM, pero lo mas importante de todo es tener claro el flujo de ejecucion del programa. Una vision global y no dejar de aprender.

Feliz reversing. :)

[1] Sauro https://www.abandonsocios.org/index.php?topic=15802.0
[2] IDA 5.0 free https://www.scummvm.org/frs/extras/IDA/idafree50.exe
Título: Re:Aprender a crear crack no cd
Publicado por: ntalaec en Noviembre 18, 2018, 15:34:51 pm
Un tutorial para quitarse el sombrero gatuno. Yo he usado el IDA para algún crack pero me limitaba a buscar la cadena y cambiar el JZ por JNZ o viceversa.
Lo único decir que yo uso el IDA 6.6 y si que puede abrir ejecutables de DOS.

Por si alguien quiere profundizar un poco, aquí hay algo de referencia sobre las instrucciones en ensamblador http://www.mathemainzel.info/files/x86asmref.html (http://www.mathemainzel.info/files/x86asmref.html) y el código hexadecimal al que corresponden.
Título: Re:Aprender a crear crack no cd
Publicado por: Kendo en Noviembre 18, 2018, 15:50:58 pm
a ver ultimate, el problema principal está en que preguntas pero no lees las respuestas, ni miras lo que hay en el foro, y acabas teniendo a 10 personas dándote 10 soluciones distintas y pasando de todas ellas, y de paso haciendo cuádruple post, botándote las bormas y dejando un rastro de caos en el foro.

Siento ser así de duro pero es lo que hay. No se cuantos hilos hay ya con tu historia del hype, y mientras eres incapaz de poner una portada que te han dado hecha en un hilo donde pedías un juego en el hilo del juego, o siquiera de corregir el título.

Voy a ir fusionando los hilos mierder y si luego la conversacion no tiene sentido ya te apañaras. Te invito -no, ya no. te exijo ya un poco- que te leas las normas de posteo y de todo lo que hsya por ahí. Después a que revises tus hilos a ver si alguien te ha dicho cosas que nunca respondiste, si hah errores en idioma o juego que alguien te haya hecho saber, y lo mismo con los privados.

Y luego ya si eso, inyentas usar los cracks y versiones no cd que la gente ha hecho y tienes a tu disposición, en vezde reformatear todo un ordenador y abrir 7 hilos para que te den un macrocurso que obviamente no vas a seguir.
Título: Re:Aprender a crear crack no cd
Publicado por: xblastoise99 en Noviembre 18, 2018, 15:59:28 pm
Que buen tutorial gatuno!!! Gracias por aportar dicha informacion. Realmente si, es todo un arte el crackeo. En algunos casos puede ser sencillo y en otros requiere mas tiempo hasta lograr dar con la tecla y que quede bien.

Saludos!!!
Título: Re:Aprender a crear crack no cd
Publicado por: RodrigoH17 en Noviembre 18, 2018, 17:52:10 pm
Fantastico tutorial gatuno, muchas gracias!!

Se nota que sabes bastante, yo intente antes usar el IDA para tratar de encontrar un serial para registrar un juego viejo, pero no tuve suerte.
Título: Re:Aprender a crear crack no cd
Publicado por: gatuno en Noviembre 18, 2018, 21:35:18 pm
Bueh ni tanto, yo aprendo. Me alegro de que os haya gustado.

Ah ntalaec, me referia a la ultima version de IDA free.

ntalaec, invirtiendo los saltos funcionaria para todos los casos menos para el que se esperaria como correcto, es decir que si es por ejemplo una proteccion por claves, en principio el juego aceptaria cualquier clave invalida pero si el usuario mete justo la clave valida la tomaria por invalida. O en el caso de sauron si invertimos el salto funcionaria en dosbox pero dejaria de funcionar en virtualbox con w98. De ahi que seria preferible cascarle NOPs para que funcionara en cualquier caso.

Rodrigo, ¿que juego es? No voy a tener tiempo de nada en un par de semanas o tres, pero si quieres dinos el nombre del juego y cuando saque un rato le echo un vistazo.
Título: Re:Aprender a crear crack no cd
Publicado por: ntalaec en Noviembre 18, 2018, 22:36:38 pm
Cuando escribí el mensaje pensaba en registrar programas introduciendo un serial que es como aprendí a utilizar el IDA. En ese caso, si que sirve así.

En caso de claves de un juego, tienes razón, iría al revés.
Hice el crack para el PC Basket 4.0 y creo que cambié el JZ por un salto por desbordamiento (creo, ya no recuerdo bien). El desbordamiento no se produce nunca y por tanto siempre da correcto escojas el escudo que escojas.
Me suena que quise poner un JMP o algo parecido pero eso implicaba cambiar el tamaño del ejecutable (porque la instrucción JMP tenia un byte más que el JZ) y entonces luego ya no funcionaba nada.

El crack del Sauro, lo intenté mirar, y cambié el JZ por JNZ y salía el mensaje correcto, pero el programa se colgaba. Poco después vi que habías puesto el crack, y no miré ya más, pero aunque hubiese mirado más, no creo que hubiese sido capaz de hacerlo funcionar.
Título: Re:Aprender a crear crack no cd
Publicado por: RodrigoH17 en Noviembre 19, 2018, 05:55:24 am
Que juego era ya ni me acuerdo, fue hace un par de años, pero con paciencia me voy a fijar despues en mi coleccion que seguro que lo encuentro.

Gracias!! ;)
Título: Re:Aprender a crear crack no cd
Publicado por: gatuno en Noviembre 19, 2018, 17:25:41 pm
Genial, ya diras si lo encuentras.

Con respecto a lo de los saltos, si, claro, invirtiendo saltos tambien lo tienes resuelto, solo que te funcionara cualquier serial incorrecto pero el/los correcto/s no. Para que funcione en todos los casos o bien NOPs si queremos anular un salto a chico_malo, o bien JMP o similar como el JNO que has dicho si nunca se produce overflow para saltar a chico_bueno en cualquier caso.