Desensambladores
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Desensambladores
Hola, no se si es que no se del tema, pero creo que este tema no está usado ni trillado y es un mundo incierto, ya les explico
Digamos que quieres ver como hicieron un juego, entonces cojes el ROM y lo desensamblas, ya ta, pos no.
El desensamblador no hace bien todo el trabajo, ya que no sabe dónde están los datos, y empieza el calvario, que aparte de buscar los datos a mano, hay que marcarlos y comentarlos, y por supuesto todo se corre y ya el desensamblador no te ayuda mas.
Existe algún Desensamblador para 6809 bueno de verdad o me pongo ha hacer uno?
Digamos que quieres ver como hicieron un juego, entonces cojes el ROM y lo desensamblas, ya ta, pos no.
El desensamblador no hace bien todo el trabajo, ya que no sabe dónde están los datos, y empieza el calvario, que aparte de buscar los datos a mano, hay que marcarlos y comentarlos, y por supuesto todo se corre y ya el desensamblador no te ayuda mas.
Existe algún Desensamblador para 6809 bueno de verdad o me pongo ha hacer uno?
-
- Mensajes: 5648
- Registrado: 20 Sep 2011 13:59
- Ubicación: Madrid
- Agradecido : 1004 veces
- Agradecimiento recibido: 2050 veces
- Contactar:
Re: Desensambladores
Noooo, acuerdate del "Hobbit" Luis. Os comenté acerca del IDA Pro
Diría que es de lo mejorcito que hay. Magia no hace; pero partiendo del punto de arranque, que sabemos positivamente que es código, el se pone a desensamblar y cada vez que un salto le hace ir a otra zona de código, continúa otro hilo de desensamblado. Tras recorrer todo un arbol inmenso que se genera, tienes fácilmente el 60-70% del trabajo hecho.
Con las facilidades de navegación que ofrece, continuar hasta tener el 100% no es una tarea titánica
Diría que es de lo mejorcito que hay. Magia no hace; pero partiendo del punto de arranque, que sabemos positivamente que es código, el se pone a desensamblar y cada vez que un salto le hace ir a otra zona de código, continúa otro hilo de desensamblado. Tras recorrer todo un arbol inmenso que se genera, tienes fácilmente el 60-70% del trabajo hecho.
Con las facilidades de navegación que ofrece, continuar hasta tener el 100% no es una tarea titánica
- explorer
- Mensajes: 701
- Registrado: 10 Ene 2016 18:43
- Ubicación: Valladolid, España
- Agradecido : 24 veces
- Agradecimiento recibido: 684 veces
- Contactar:
Re: Desensambladores
Eso sí... el IDA Pro cuesta dos riñones y medio.
Hay un desarrollo español llamado radare2 (Wikipedia EN), pero no trae soporte para todas las arquitecturas.
Yo hice el desensamblado del Pengo haciéndolo a mano, a partir del desensamblado que el MAME ofrecía, y luego rehaciendo el fuente y ensamblando para luego comparar si el código que estaba creando generaba la misma ROM original. El desensamblado del MAME es puro y duro desensamblado de la ROM del juego que indiques y ya decodificada (si se trata de un juego con protección), así que tiene esa ventaja.
Luego lo he intentado pasar a IDA Pro, pero tiene una curva de aprendizaje complicadísima. De hecho, tienes que leerte antes un par de libros, como por ejemplo
Te recomiendo que mires la página de Sean Riddle, donde tiene su propia versión del desensamblador 6809dasm y mucha información sobre juegos de la Williams.
Para Linux tienes también as09y d09: https://github.com/dfffffff/as09
Seguro que hay más. Y código fuente por si quieres hacerte el tuyo
Hay un desarrollo español llamado radare2 (Wikipedia EN), pero no trae soporte para todas las arquitecturas.
Yo hice el desensamblado del Pengo haciéndolo a mano, a partir del desensamblado que el MAME ofrecía, y luego rehaciendo el fuente y ensamblando para luego comparar si el código que estaba creando generaba la misma ROM original. El desensamblado del MAME es puro y duro desensamblado de la ROM del juego que indiques y ya decodificada (si se trata de un juego con protección), así que tiene esa ventaja.
Luego lo he intentado pasar a IDA Pro, pero tiene una curva de aprendizaje complicadísima. De hecho, tienes que leerte antes un par de libros, como por ejemplo
- The IDA Pro Book, 2nd Edition. The Unofficial Guide to the World’s Most Popular Disassembler, de Chris Eagle
- Reverse Engineering Code with IDA Pro, de IOActive
- Disassembling Code: IDA Pro and SoftICE, de Vlad Pirogov
Te recomiendo que mires la página de Sean Riddle, donde tiene su propia versión del desensamblador 6809dasm y mucha información sobre juegos de la Williams.
Para Linux tienes también as09y d09: https://github.com/dfffffff/as09
Seguro que hay más. Y código fuente por si quieres hacerte el tuyo
JF^D - Calendario de Retroinformática - Telegram Retro Spain - RetroDev ES
-
- Mensajes: 5648
- Registrado: 20 Sep 2011 13:59
- Ubicación: Madrid
- Agradecido : 1004 veces
- Agradecimiento recibido: 2050 veces
- Contactar:
Re: Desensambladores
Pues el Radare2 no lo conocía y tiene bastante buena pinta. No soporta el 6809 pero al menos sí el Z80
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
Muchas gracias amigos, muy importante todo, les cuento que ya el mio funciona bastante bien, estaba pensando como hacer el resto, o sea, marcar las zonas es fácil, que herramientas harán falta, alguien quiere acompañarme con ideas al menos?
Pondré fotos, no se ve de tan rápido que lo hace, hasta ahora lo hizo bien con el popcorn.ROM o el basic de la color computer
Pondré fotos, no se ve de tan rápido que lo hace, hasta ahora lo hizo bien con el popcorn.ROM o el basic de la color computer
- explorer
- Mensajes: 701
- Registrado: 10 Ene 2016 18:43
- Ubicación: Valladolid, España
- Agradecido : 24 veces
- Agradecimiento recibido: 684 veces
- Contactar:
Re: Desensambladores
jltursan escribió:Pues el Radare2 no lo conocía y tiene bastante buena pinta. No soporta el 6809 pero al menos sí el Z80
Yo intenté desensamblar el Pengo con el Radare2, y todo iba bien (tirando mucho de documentación en línea), hasta que se colgó y cerró de repente. Quizás le de una oportunidad más adelante.
JF^D - Calendario de Retroinformática - Telegram Retro Spain - RetroDev ES
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
Ya desensambla correctamente, falta pulir las opciones, pero el problema no es desensamblar, sino todo lo demás.
Marcare zonas y se podrán convertir en datos, aunque dependiendo del compilador que se podría usar después hay varias alternativas
Se puede usar RMB (tantos bytes)
Se pueden hacer equivalencias con EQU a posiciones ya conocidas
Por supuesto poner ORG para el origen, incluso varias veces
Pero también se puede usar FCB para reservar un byte
FCC para caracteres
FDB para datos separados por comas
Tengo que ver como hacer todo esto y más
Marcare zonas y se podrán convertir en datos, aunque dependiendo del compilador que se podría usar después hay varias alternativas
Se puede usar RMB (tantos bytes)
Se pueden hacer equivalencias con EQU a posiciones ya conocidas
Por supuesto poner ORG para el origen, incluso varias veces
Pero también se puede usar FCB para reservar un byte
FCC para caracteres
FDB para datos separados por comas
Tengo que ver como hacer todo esto y más
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
OK el IDA PRO vale $10000 uff...
Tiene otro curioso descompilador, que te lo pone en C, está curioso, y tambien yo diria que seria divino que lo pusiera en Basic, jeje
Revisare el otro
Con respecto al mio, voy a ver hasta donde llego, y pensando en voz alta, lo obvio, Marcare una zona y le pongo lo que el usuario quiera, se puede marcar como Bytes uno a la vez, separados por comas, de tantos en tantos, al igual que en WORD y por supuesto en caracteres, a los que podría ayudar si la última letra esta puesta a (bit 7 on) o tal vez analizar por cadenas terminados en 0, creo que todo eso lo podría hacer.
Podría sacar la gráfica del programa, algo como hizo PSER1, haciendo bloques de funciones, los JMP y BRANCH se podrían colocar con flechas de true y false, creo que se pueden encontrar los comienzos de las funciones por estar debajo de un JMP o RET ya que no hay mas codigo debajo, esa primera instrucción tendría un nombre propio después de que sepamos que hace y el final debería ser un RET. o un salto a otra parte, ya vere como seguir esto.
Luego si escribes cosas a mano debería modificar el rom original, o sea estaria compilando e assembler.
Ya comencé a hacerlo más fácil, por ejemplo si escribes "J" te saca una lista de los comandos que empiezan por "J" como hacen los editores de microsoft-
Esto será difícil, podria ayudar con la sintaxis, y guiar con los labels y otras cosas, por supuesto un buen HELP de comandos y sus usos, modos de direccionamiento y no se que mas ayudas ya vere, alguien se anima a ayudar?
Tiene otro curioso descompilador, que te lo pone en C, está curioso, y tambien yo diria que seria divino que lo pusiera en Basic, jeje
Revisare el otro
Con respecto al mio, voy a ver hasta donde llego, y pensando en voz alta, lo obvio, Marcare una zona y le pongo lo que el usuario quiera, se puede marcar como Bytes uno a la vez, separados por comas, de tantos en tantos, al igual que en WORD y por supuesto en caracteres, a los que podría ayudar si la última letra esta puesta a (bit 7 on) o tal vez analizar por cadenas terminados en 0, creo que todo eso lo podría hacer.
Podría sacar la gráfica del programa, algo como hizo PSER1, haciendo bloques de funciones, los JMP y BRANCH se podrían colocar con flechas de true y false, creo que se pueden encontrar los comienzos de las funciones por estar debajo de un JMP o RET ya que no hay mas codigo debajo, esa primera instrucción tendría un nombre propio después de que sepamos que hace y el final debería ser un RET. o un salto a otra parte, ya vere como seguir esto.
Luego si escribes cosas a mano debería modificar el rom original, o sea estaria compilando e assembler.
Ya comencé a hacerlo más fácil, por ejemplo si escribes "J" te saca una lista de los comandos que empiezan por "J" como hacen los editores de microsoft-
Esto será difícil, podria ayudar con la sintaxis, y guiar con los labels y otras cosas, por supuesto un buen HELP de comandos y sus usos, modos de direccionamiento y no se que mas ayudas ya vere, alguien se anima a ayudar?
- minter
- Mensajes: 4840
- Registrado: 22 Jul 2014 18:51
- Agradecido : 6786 veces
- Agradecimiento recibido: 2605 veces
Re: Desensambladores
Yo estuve con el IDA intentando desemsamblar la ROM del Atari (La historia esa de preservar la TOS es español), para intentar calzar en medio del código el programa de explorer de las tildes.
El problema, que era de evaluación y no me desensamblaba todo el código, por lo que no me valía para nada.
(Es extraño. Acabo de pasar por la web y el de evaluación únicamente desemsambla 8086 y ARM. ¿De donde bajé mi copia que podía con 68k? )
Además, después de aparecer el fuente, ya no tenía sentido pegarse con el desensamblador.
Pero no me parecía mal programa, ya hubiera querido conocerlo antes.
No sé como se dirá en maracucho, pero por estos lugares se dice: "Ole tus huevos!"
PD: Anda, porras! Que no eres marachucho!
El problema, que era de evaluación y no me desensamblaba todo el código, por lo que no me valía para nada.
(Es extraño. Acabo de pasar por la web y el de evaluación únicamente desemsambla 8086 y ARM. ¿De donde bajé mi copia que podía con 68k? )
Además, después de aparecer el fuente, ya no tenía sentido pegarse con el desensamblador.
Pero no me parecía mal programa, ya hubiera querido conocerlo antes.
luiscoco escribió:Existe algún Desensamblador para 6809 bueno de verdad o me pongo ha hacer uno?
No sé como se dirá en maracucho, pero por estos lugares se dice: "Ole tus huevos!"
PD: Anda, porras! Que no eres marachucho!
- Jinks
- Mensajes: 2705
- Registrado: 09 Oct 2013 16:47
- Agradecido : 348 veces
- Agradecimiento recibido: 481 veces
- Contactar:
Re: Desensambladores
minter escribió:luiscoco escribió:Existe algún Desensamblador para 6809 bueno de verdad o me pongo ha hacer uno?
No sé como se dirá en maracucho, pero por estos lugares se dice: "Ole tus huevos!"
PD: Anda, porras! Que no eres marachucho!
¡Eso es ser del mismo Bilbao!
Lo demás son tonterías.
- overCLK
- Mensajes: 270
- Registrado: 26 Ene 2017 12:26
- Agradecido : 82 veces
- Agradecimiento recibido: 134 veces
Re: Desensambladores
Jinks escribió:minter escribió:luiscoco escribió:Existe algún Desensamblador para 6809 bueno de verdad o me pongo ha hacer uno?
No sé como se dirá en maracucho, pero por estos lugares se dice: "Ole tus huevos!"
PD: Anda, porras! Que no eres marachucho!
¡Eso es ser del mismo Bilbao!
Lo demás son tonterías.
Hombre, alguien del mismo Bilbao lo desensamblaría a hostias.
Un saludo para los de Bilbao.
- explorer
- Mensajes: 701
- Registrado: 10 Ene 2016 18:43
- Ubicación: Valladolid, España
- Agradecido : 24 veces
- Agradecimiento recibido: 684 veces
- Contactar:
Re: Desensambladores
Pero, de verdad, ¿no te ha servidor ninguno de los enlazados? Te he puesto tres o cuatro.
Otra cosa es que quieras añadirle características extra para ayudar al usuario. En ese caso, hubiera antes mirado la posibilidad de ampliar radare2 con soporte para el código máquina del 6809.
Otra cosa es que quieras añadirle características extra para ayudar al usuario. En ese caso, hubiera antes mirado la posibilidad de ampliar radare2 con soporte para el código máquina del 6809.
JF^D - Calendario de Retroinformática - Telegram Retro Spain - RetroDev ES
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
minter escribió:Yo estuve con el IDA intentando desemsamblar la ROM del Atari (La historia esa de preservar la TOS es español), para intentar calzar en medio del código el programa de explorer de las tildes.
El problema, que era de evaluación y no me desensamblaba todo el código, por lo que no me valía para nada.
(Es extraño. Acabo de pasar por la web y el de evaluación únicamente desemsambla 8086 y ARM. ¿De donde bajé mi copia que podía con 68k? )
Además, después de aparecer el fuente, ya no tenía sentido pegarse con el desensamblador.
Pero no me parecía mal programa, ya hubiera querido conocerlo antes.
Pues no me cuesta nada hacerle todos los CPUS que necesitemos, luego puede ser necesario que sepa el equipo en si, ya que pienso hacer que recnozca mapas de memoria diversos
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
explorer escribió:Pero, de verdad, ¿no te ha servidor ninguno de los enlazados? Te he puesto tres o cuatro.
Otra cosa es que quieras añadirle características extra para ayudar al usuario. En ese caso, hubiera antes mirado la posibilidad de ampliar radare2 con soporte para el código máquina del 6809.
Bueno lo estuve mirando, pero no entendi bien, ya que en los fuentes y manuales solo veo lineas de comando, el IDE no lo vi, pero aprendi mucho de la info que vi solo que no en profundidad aun, incluso pensé en eso de agregarle al radare2 el 6809 y el 6309, aunque como el mio ya desensambla lo que mas quiero es ver como hace lo demás y parece complejo lo revisare mas
Y si, si voy a añadir de todo hasta que no quepa mas NA, jeje
- explorer
- Mensajes: 701
- Registrado: 10 Ene 2016 18:43
- Ubicación: Valladolid, España
- Agradecido : 24 veces
- Agradecimiento recibido: 684 veces
- Contactar:
Re: Desensambladores
Precisamente, radare2 se basa en comandos en la línea de comandos. Nada de IDE y esas modernidades.
Te recomiendo algún vídeo sobre radare2 para que veas cómo funciona.
Yo opino que, si tengo que aprenderme todos los comandos, casi prefiero usar algo más sencillo. No niego que con radare2 se pueda hacer algo espectacular, y de hecho en los vídeos el autor lo demuestra, pero aprenderse los comandos lleva un tiempo, aún con ayuda incluida.
Lo dicho, le daré un tiento dentro de poco desensamblando un juego en z80.
Te recomiendo algún vídeo sobre radare2 para que veas cómo funciona.
Yo opino que, si tengo que aprenderme todos los comandos, casi prefiero usar algo más sencillo. No niego que con radare2 se pueda hacer algo espectacular, y de hecho en los vídeos el autor lo demuestra, pero aprenderse los comandos lleva un tiempo, aún con ayuda incluida.
Lo dicho, le daré un tiento dentro de poco desensamblando un juego en z80.
JF^D - Calendario de Retroinformática - Telegram Retro Spain - RetroDev ES
- luiscoco
- Mensajes: 2414
- Registrado: 15 May 2011 04:23
- Ubicación: Caracas, Venezuela
- Agradecido : 38 veces
- Agradecimiento recibido: 59 veces
Re: Desensambladores
explorer escribió:Precisamente, radare2 se basa en comandos en la línea de comandos. Nada de IDE y esas modernidades.
Te recomiendo algún vídeo sobre radare2 para que veas cómo funciona.
Yo opino que, si tengo que aprenderme todos los comandos, casi prefiero usar algo más sencillo. No niego que con radare2 se pueda hacer algo espectacular, y de hecho en los vídeos el autor lo demuestra, pero aprenderse los comandos lleva un tiempo, aún con ayuda incluida.
Lo dicho, le daré un tiento dentro de poco desensamblando un juego en z80.
Listo, me lei todo el manual, lo instale, no logre correr el IDE, y me canse de comandos de línea, paso de el
Opino igual que tu, a estas alturas, nada menos que interfaz gráfico, si quieres veo ese video o lo busco yo, pero me parece que no voy por ese camino
Cuando necesites el Z80 lo hacemos, en un rato
Ahora bien, voy a avanzar el mio a ver donde me lleva, el IDA PRO aun no lo he estudiado bien, creo que hay una versión free
Volver a “Lenguajes de Programación y herramientas Dev”
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados