2 - Herramientas

[editar]
Curso gratis creado por Anónimo.
04 de Noviembre de 2005
Herramientas basicas

Hex Workshop

El Hex Workshop (HWS desde ahora) es un conjunto de herramientas de desarrollo para Windows que combina edicion avanzada de código en binario con la facilidad y flexibilidad de un procesador de texto, con esta herramienta vamos a poder editar, cortar, copiar, buscar, reemplazar, comparar, calcular checksums ,ect.

He puesto esta herramienta porque es la que he conocido haciendo ripeos, la que más han usado todos aquellos que han escrito algun tutorial sobre ripeo en los foros y porque su versión demo te permite poder usarla sin ninguna restricción durante el tiempo de prueba.

Se puede conseguir una versión demo de 30 dias pero perfectamente operativa en la siguiente dirección: http://www.bpsoft.com/downloads/

¿Para qué necesitamos el HWS?

Porque es la única forma de poder modificar las llamadas que se realizan dentro de los archivos a los dvdchecks.

La forma de uso es muy sencilla: una vez que sabemos qué fichero tiene un dvdcheck y por dónde puede estar (más o menos), simplemente abrimos ese fichero con el HWS, comprobando que no tiene (el fichero a editar) el atributo de sólo lectura activado (para comprobarlo pinchamos con el boton secundario sobre el fichero y vemos las propiedades).

Para localizar el offset (dirección donde se nos ha dicho que está el dvdcheck) pulsamos ctrl.+ g y ponemos la dirección dentro de la caja de texto.

Pulsamos Aceptar y nos buscará esa dirección, si encontramos la cadena correspondiente al dvdcheck la podemos modificar simplemente situando el cursor sobre el octeto a cambiar y lo cambiamos y así sucesivamente hasta que finalicemos el cambio de todos los offset que contengan un dvdcheck.

Y este es (de momento) el uso que vamos a hacer de este programa.

No os recomiendo el search/replace que tiene debido a que las direcciones de los offset donde se encuentran los dvdchecks pueden cambiar de una versión a otra, por lo que una búsqueda simple va a resultar mucho más segura que una búsqueda con cambio automático (jeje, ni que fuera un ferrari).

En lecciones más avanzadas aprenderemos más usos del HWS, pero para ripeos sencillos en los que no hay que modificar la tabla del sistema de ficheros, con conocer este uso ya nos vale.

Isobuster

Perdon por saltarme de esta forma el indice del curso pero he creido conveniente situar en primer lugar esta herramienta ya que nos va a servir para poder explicar correctamente la siguiente.

Isobuster es una herramienta que nos va a servir para poder extraer (entre otras cosas) el contenido del un cdrom o un dvdrom aunque éste tenga archivos “raros” que usando el explorador de windows no nos va a dejar hacerlo.

Yo os recomiendo que en vez de usar el explorador de windows, uséis siempre el isobuster ya que, cuando extrae los ficheros a la carpeta que queráis, ésta va a conservar siempre el mismo orden en el que se extrajo por lo que, cuando se use el cd/dvd gen va a ser más sencillo conseguir que los LBA vayan en orden (bueno, todo a su debido tiempo).

Uso:

Meter el juego dentro de la unidad de cdrom o dvdrom e iniciar el “isobuster”.

NOTA: El Isobuster lo podréis encontrar en la seccion descargas de esta web.

Pinchar con boton derecho del raton en la etiqueta roja que pone “iso” y seleccionar “extraer directorio” ahora pincha en “browse” para seleccionar un directorio temporal dentro de tu disco duro y picha “ok”

(Asegúrate de que tienes suficiente espacio en el disco duro, siempre dependiendo del juego, pero vas a necesitar el doble de lo que ocupa éste)

Isobuster va a extraer el juego dentro de la carpeta que has elegido (la temporal) así que es ahí donde debes buscarlo.

Ahora vuelve a hacer click con el boton derecho del raton sobre la etiqueta roja que pone “iso” y selecciona “copy tree info to file” y pon el escritorio como destino del txt que te va a generar (atencion a esto!!! Con la última versión de este programa no me ha funcionado correctamente este paso, no sé si es problema de esta versión o de mi máquina, sí me ha funcionado con la anterior así que si tenéis problemas con la última versión probad otra.)

Con esto hemos extraido perfectamente todo el contenido del dvdrom y hemos hecho una copia en un fichero de texto del orden de los ficheros dentro del mismo.

Cd /dvd generator

Esta es la herramienta de Sony para poder crear la estructura de archivos del dvd de tal forma que sea exactamente igual a la del original.

Esto es debido a que, aunque arrastremos (o copiemos a mano) todo el dvd a una carpeta siguiendo el mismo orden, éstos no se almacenan dentro del disco duro siguiendo una misma estructura.

Se puede decir que esto es otro tipo de protección: mantener el mismo orden de los ficheros.

Este orden no se refiere al orden de las carpetas porque de hecho todos podemos modificar ese orden simplemente poniendo que nos lo muestre por fecha, tipo de archivo,ect.

El orden se basa en una lista enlazada de estos ficheros donde uno comienza justo en la posición siguiente en la que termina el anterior.

Os puede parecer un poco lioso a aquellos que no sepáis algo de programación y conozcáis lo que es una lista enlazada.(No lo voy a explicar puesto que no es necesario, hay mucha documentación en la web sobre estructuras de datos , lo siento).

Resumiendo: Si el archivo sles455.78 está en la posición 34 y acaba en la 89 y el siguiente archivo comienza en la posición 90 y acaba en la 160, tenemos que poder recrear ese mismo orden y esa misma estructura y esto solo lo podemos hacer con esta herramienta.

Pasos a seguir para su uso:

Primer paso

Usar el isobuster

Mantenemos el Isobuster abierto.

Segundo paso

Abrimos cd/dvd generator y seleccionamos “create new project”, luego “cdrom master disk” y abrimos el explorador de windows.

Nos situamos en la carpeta donde le habíamos dicho al isobuster que nos extrayera el contenido del dvd.

Tercer paso

Manteniendo la ordenacion de directorios que podemos comprobar con el Isobuster (por eso lo mantenemos abierto) usamos el explorador de windows para mover los archivos que tenemos en la carpeta temporal dentro del cd/dvd gen manteniendo el orden que nos aparece en el isobuster (de momento que mantengan ese orden visual!!!)

(Mientras usemos el isobuster para extraer los archivos del dvd al disco duro, todos los archivos que lo componen van a situarse dentro del cd/dvd gen en orden incluyendo sus carpetas).

Cuarto paso

Ahora abrimos el archivo txt generado por el isobuster y que contiene la estructura de archivos ordenados del dvd.

Lo seleccionamos entero y lo copiamos dentro de un documento de word.

Ahora, usando la opcion de ordenar de word, ordenamos esos archivos por orden numérico, para luego poder ordenarlos de la misma forma dentro del cd/dvd gen.

Quinto paso

Ahora selecciona la etiqueta “layout” del cd/dvd gen y asegurate que todos los archivos que ves en la ventana se corresponden a los que has ordenado en word.

Sexto paso

Selecciona la opcion “volume” en el cd/dvd gen e introduce el nombre del sles (slus para las versiones USA): slus_xxx.xx / sles_xxx.xx en la caja de texto "disk name".

Ojo, si el dvd que estás ripeando tiene nombre de etiqueta introduce ese nombre en la caja de texto “volume” exactamente como aparece en el isobuster!!!!

Septimo paso

Ahora ya podemos generar el archivo .iml que se necesita para poder hacer la imagen ISO.

Selecciona “file” y luego “export iml file” y lo guardas con un nombre sencillo (por ejemplo el nombre del juego, pero que no sea mayor de 5 caracteres, no por nada especial pero es que luego, para poder convertirlo a iso vas a usar el msdos y si tienes que teclear un nombre largo y con cosas raras, el msdos puede llorar bastante )

Tambien puedes usar la opcion “save as” del cd/dvd gen en el caso en que quieras volver a trabajar en la imagen de nuevo (o para pasarsela a los que te la pidan ya que este es un trabajo bastante duro)

Y con esto y un bizcocho

Ya tenemos listo el .iml para poder realizar nuestra ISO.

Como habréis podido observar (y ya lo veréis en vuestras carnes) este es realmente el proceso más pesado cuando vamos a ripear ya que tenemos que hacerlo todo de forma manual.

En estos momentos Zandal está trabajando en una herramienta que sea capaz de realizar esta ordenación de forma automática (aunque siempre vamos a necesitar el txt que nos ha generado el isobuster, claro).

De momento (a fecha de la creación de este documento) aun no la tiene operativa al 100%, pero el objetivo de este curso es hacer las cosas por nuestra cuenta y aprender, verdad?

Jeje, no os preocupéis que en cuanto lo tenga disponible os diré donde encontrarla y como usarla.

NOTAS

Antes de que cualquier juego que hemos reconstruido cargue cuando se realice el método del swap (el que sea) éste debe tener un tamaño más pequeño que el cd que se va a usar para el swap. Usease ,es decir nenes que si usais el action replay inferior a la versión 1.7 (o 1.5 no estoy muy seguro) tenéis que comprobar que el tamaño del LBA del juego ripeado sea menor que el del ar o si no no lo va a cargar.

Por qué? Muy sencillo, porque cuando realizamos la carga de un juego mediante el swap, la ps2 primero comprueba el tamaño (LBA) del disco que insertas para cargar, una vez que lo has cargado (el del ar2) y lo sustituyes ya se ha quedado en memoria el tamaño completo del juego, por lo que si el juego ripeado es de mayor tamaño que el cd que has usado para el swap éste no cargará al “pensar” la ps2 que se trata de un cd distinto (no es realmente así, pero esta explicación nos vale).

Esta es la tabla LBAs de los cds que se suelen usar para el swap:

Action replay v1.1 LBA máximo de = 250179

Action replay v1.3 LBA máximo de = 250179

DVDregionX LBA máximo de = 323849

(Si estamos haciendo la reconstruccion para el AR1.1 el archivo system.cnf DEBE situarse en la posicion LBA 12231 dentro del cd/dvd gen).

Para saber el limite máximo del LBA del disco de arranque usa el isobuster y haz click con el boton secundario en “track” y selecciona “properties”.

Mira el final del LBA, el backup debe finalizar con un tamaño de LBA menor!!!!

(esto se consigue con práctica)

Para ver el final del LBA usando el cd/dvd gen mira en la ventana layout despues de ordenar los archivos de forma correcta.

Si te encuentras con que el archivo creado tiene un LBA muy grande (mayor que el arranque) tienes 2 opciones:

1. Generar el iso e intentarlo de todas formas (algunos juegos pueden funcionar correctamente pero ni las músicas ni las películas van a hacerlo, o si lo hacen no funcionan bien).

2. Cargarte (ripear, claro) archivos innecesarios como los de otros lenguajes, ect (eso lo aprenderemos más adelante).

¿Qué quiere decir esto? Muy sencillo: si intentas ripear un dvd en un único cd no va a entrar pero si le quitas las músicas, ect, sí...lógico verdad??? Pero... y si intentamos meter en un cd de 90 minutos o de 80 minutos un juego??? Pues que te va a funcionar siempre y cuando el cd que uses para arrancar la ps2 (el del ar2) tenga ese tamaño.

¿Qué ocurre si ya he quitado todo lo que tenia o podia quitar y aun sigue siendo muy grande? Te quedan unas pocas opciones:

1. Después de ordenar los archivos con el cd/dvd gen vete a los archivos de películas que te quedan y los borras (antes de generar el archivo iml)

2. Borrar las pelis antes de hacer la reconstruccion con el cd/dvd gen.

3. Reemplazar esas pelis (en vez de borrarlas) usando archivos de menos de 1 Mb (1 kb) pero usando el mismo nombre y siempre antes de realizar la reconstrucción.

4. Usar un .pss que ya exista y sea muy pequeño y reemplazando los otros por ese .pss pero con el mismo nombre, antes de reconstruir.

De todas formas no hay que preocuparse mucho por esto ya que nos vamos a encontrar con formas desde las más simples a las ultra coplejas de pasar un dvd a varios cds.

 Iml2iso

Este programita nos va a permitir construir una imagen ISO para poder grabarla con el cdrwin desde un archivo .iml.

La pega que tiene es que debes usar el msdos (una ventanita de msdos) pero no es muy difícil. Y el ejecutable debe estar o bien dentro del path para que lo puedas llamar desde cualquier sitio o bien lo copias y lo pegas dentro de la carpeta donde esta tu iml (donde esta el juego,vamos).

Para acceder a la carpeta desde msdos directamente al abrirlo hay un truquito: con el explorador de windows abierto, pinchamos en cualquier archivo que esté dentro de la carpeta donde está nuestro iml (o pinchamos una vez!!!) sobre el .iml.

Ahora abrimos una ventana de msdos ( inicio/ejecutar/command ,para los de w9x, inicio/ejecutar/cmd, para los de w2000 y XP)

Veréis que estais dentro de la carpeta en cuestion (la que tiene nuestro iml).

Ahora tecleáis: "iml2iso nombre_de_tu_juego.iml nombre_de_tu_juego.iso"

(El que ponga nombre_de_tu_juego textualmente y me diga que no funciona lo hecho del curso!!!!!)

Ahora vais a tener que esperar de 5 a 20 minutos (o mas si tu ordenador es muy lento) pero siempre dependiendo del tamaño del iso que va a generar, paciencia.

Cdrwin

Perdon otra vez, pero este es el último paso para un ripeo sencillito y creo que es mejor poner este punto antes que el kitbuilder (si, ya lo sé, soy un caos, pero no soy profesor, lo siento).

Este es nuestro programa de grabacion, teneis una version share (demo) en esta misma web cuya única pega es que graba como máximo a x1 (o sea, si un juego es de 74 minutos, te va a tardar 74 minutos en grabarlo), si os parece lento, lo compráis y punto.

Para grabarlo realizamos lo siguiente:

Seleccionamos la opcion "file backup and tools" (es el cuadrito que tiene la imagen de una llave inglesa).

Cambias (en la lista desplegable) lo que hay a: “record an iso 9660 image".

En la caja que pone "image file name" pinchamos en browse y seleccionamos la iso que queremos grabar (la que está en nuestra carpeta de trabajo) y pinchamos en “open”.

Cambiamos el "cdrom recorder" al nombre de vuestra grabadora (si es que no aparece).

Seleccionas en "disc type" la opción "cdrom-xa".

Seleccionas en "track mode" la opcion "mode2"

Picha en "finalize/close session" y "write postgap" (las otras asegúrate que no esten marcadas).

Ahora seleccionas la velocidad de grabacion en "burn speed" (yo suelo usar x4 – es una manía- si el programa es share sólo podréis grabar a x1).

Pinchas en "start" y esperas a que finalice.

Si usáis cds de 80 o 90 minutos (porque el ripeo del juego se pasa de los 74 minutos) el cdrwin os va a avisar de que el tamaño de la imagen iso es mayor de 74 minutos, no os preocupéis porque lo graba sin problemas al menos en mi yamaha SCSI 8424, en otros modelos y otros fabricantes no tengo ni idea, para consultas preguntad en el foro de grabación que para eso está,ok?)

Y listo...ya tenemos una copia (suponemos,claro) de seguridad de nuestro juego favorito que nos ha costado 10.000 pelas

Herramientas avanzadas

Ida pro advanced

El Ida pro advanced es un desensamblador capaz de realizar la ingeniería inversa de casi cualquier programa hecho para casi cualquier procesador.

¿Por qué la necesidad de esta herramienta?

Muy sencillo,aunque el HexWorkShop (o cualquier otro editor hexadecimal) nos puede dar los offset de cualquier programa,lo que nos interesa con este programa es localizar las llamadas (dentro de los archivos correspondientes -sles o slus) que se realizan para los dvdchecks.

¿No sirve cualquier otro desensamblador,como,por ejemplo el SoftIce?

Pues no,debido a que este es el único (al menos conocido) que da soporte al procesador de la ps2:el mips.

Cuando los desarrolladores compilan los programas para la ps2

lo realizan dentro del entorno de la propia ps2,por lo que se utiliza el set de instrucciones específicos de la ps2.

El set de instrucciones son una serie de funciones que sólo las comprende el procesador de la ps2,por eso en tu pc no puedes ejecutar un juego para ps2 ya que no entiende este set de instrucciones (por ello se usan emuladores de las consolas,pero eso es otra historia).

En el apéndice de este curso se adjunta el set de instrucciones del mips para que todos aquellos que quieran investigar el funcionamiento interno de la consola (a nivel bajo) no tengan problemas.

Junto con el Ida Pro se necesitan una serie de librerias (flirts) que se componen básicamente de traducciones de trozos de código poniéndoles etiquetas para que,a la hora de realizar una búsqueda,ésta sea más fácil de resolver.

Un ejemplo:

La rutina que por excelencia se debe buscar para localizar los dvdchecks es la funcion sceCdMmode,bién,pero esta rutina la podemos localizar por ese nombre gracias al flirt ,ya que algun programador se la "curró" para que,los que tuvieran que buscar esa llamada no tuvieran problemas a la hora de encontrarla,ya que la rutina original es esta:

.text:00113D18 .globl sub_18569 -->sceCdMmode

.text:00113D18 sub_18569: # CODE XREF: InitCD(void)+24 p

.text:00113D18 # DATA XREF: InitMachineScheme(void)+280 o

.text:00113D18

.text:00113D18 var_40 = -0x40

.text:00113D18 var_30 = -0x30

.text:00113D18 var_20 = -0x20

.text:00113D18 var_10 = -0x10

.text:00113D18

.text:00113D18 addiu $sp, -0x40

.text:00113D1C sd $s1, 0x40+var_20($sp)

.text:00113D20 daddu $s1, $a0, $0

.text:00113D24 sd $ra, 0x40+var_10($sp)

.text:00113D28 sd $s0, 0x40+var_30($sp)

.text:00113D2C jal scmd_prechk

.text:00113D30 li $a0, 0x22

.text:00113D34 bnez $v0, loc_113D44

.text:00113D38 lui $v0, 0x14

.text:00113D3C b loc_113DC0

.text:00113D40 daddu $v0, $0, $0

Si os dais cuenta la funcion que se llama sub_18569,debido a que siempre es la misma,al aplicar los flirts se cambia ese nombre a uno más sencillo: sceCdMmode.

De no ser así imaginad el tener que hacer estos pasos:

1.Localizar esta funcion (su codigo entero),que no está siempre en el mismo sitio y esto habría que hacerlo a mano( y hombre,con paciencia se hacen muchas cosas,claro ).

2.Una vez localizada esta llamada hay con ver el nombre de la funcion y realizar la búsqueda por el nombre de esa funcion (esta es la parte fácil).

Bueno,y mucho más porque si os fijáis tenemos dentro de la propia funcion una llamada a otra funcion (scmd_prechk) que tambien ha sido creada gracias a los flirts...

¿Veis la importancia?

Ahora mismo hay gente investigando y desarrollando nuevas versiones de este flirt para que no tengamos problemas a la hora de localizar e interpretar ciertas rutinas de verificacion o comprobacion de datos.

Y esto,a grandes rasgos,es lo que hace el Ida Pro.

¿Quéeee? ¿yaaaa? yo quiero empezar a buscar dvdchecks!!!!!

Bueeeeeeeno,vale.

No estaba seguro de meter tan pronto (sobre todo antes de explicar las protecciones) la búsqueda de dvdchecks,pero !que demonios!

 Nuestros primeros pasos con el Ida Pro

Esto es una adaptacion del tutorial que Cybblade posteó en su día en este foro (pocos le hicimos caso ya que nadie sabia lo que era el Ida Pro en ese momento).

Os explico como comenzar y os pongo el enlace a su tutorial,ok?

cita:

Dar al César lo que es del César

Bien,en primer lugar,y antes que nada,hay que guardar los flirts dentro de su correspondiente carpeta (para que funcionen correctamente).

La ruta debería ser:

\ida\sig\mips

\ida\ es el nombre de la carpeta donde habéis instalado el programa.

\sig\ ya existía (lo crea el programa) y dentro de sig creáis la carpeta mips y dentro de ésta metéis los dos flirts:

ps2.sig y ps2lic.sig

Y comenzamos:

Abrimos el Ida Pro y le decimos que queremos comenzar un nuevo proyecto.

Nos pedirá el nombre del archivo e introducimos el sles (o slus) que queremos desensamblar.

Nos saldrá una ventanita indicando el tipo de procesador para el que ese archvo ha sido diseñado,y elegimos el mips:r5900b.

Si no nos aparece este procesador significa que la version del ida que tenemos no nos sirve!!!!!! hay que buscar otra.

Dejamos el Ida cargando todo el archivo y esperamos a que un botoncito situado en la parte superior derecha del interface del Ida se ponga verde (estará o rojo-parado- o amarillo -procesando),es como un semáforo.

Nos dará algun que otro error al cargar,pasamos de ello.

Una vez acabado (en verde) vamos a File/Load File/Flirt Signature file.. y cargamos el primero (PS2 Unnamed sample library),volvemos a esperar a que el semáforo esté verde...

Y pulsamos ALT+T,nos saldrá una ventanita de búsqueda e introducimos los siguiente:

sceCdMmode

Chequeamos la opcion de Find all occurrences y aceptamos.

Si hay exito nos saldrá una ventanita flotante con todas las ocurrencias a esa funcion.

Lo que nos interesa es una llamada de este tipo:

jal sceCdMmode

ya que justo debajo nos encontraremos:

li $a0,2 (este 2 es el que luego cambiamos por un 1 en el HexWorkShop)

En la zona inferior de la pantalla del ida tenemos 5 cajitas (labels),la que nos interesa es la Cuarta empezando por la izquierda ya que ese es el numero del offset que luego hay que introducir en el HexWorkShop para localizar el dvdcheck.

Recordad que todas las ocurrencias a esa llamada son dvdchecks las que son de la forma:

jal sceCdMmode

li $a0,2

Apuntamos los offset de las llamadas a li $a0 (para luego modificarlo con el HWS).

Y ya está,esto es todo,cerramos y nos ponemos manos a la obra con el HWS.

Hay ya varios juegos que tienen otro tipo de dvdcheck,pero estos los localizaremos más adelante.

De momento con esta explicación podréis encontrar el 95% de los dvdchecks de los juegos del mercado.

Como práctica os pongo que localicéis los dvdchekcs de:

Extermination

Red Faction

Resident Evil:Code Veronica X

Y luego comprobéis que los habéis localizado correctamente viendo cualquer manual de ripeo de estos juegos.

Bueno,aquí teneis el enlace al manual de cybblade (recomiendo su lectura ya que os pone los flirts y esta en word con capturas de pantalla que facilitan el aprendizaje).
[editar]

1 opinión

Aprender ripeo.

Me interesa.

Cursos gratis relacionados con 'Curso de ripeo de juegos de Play Station 2'

El presente documento es de carácter didáctico, y está basado en documentación que se puede... Más »

Autor y licencia de 'Curso de ripeo de juegos de Play Station 2'


Curso gratis de Anónimo. Extraido de: CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.