Desensambladores

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 12 May 2017 15:11

Último mensaje de la página anterior:

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

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 12 May 2017 21:13

Pues el del z80 lo necesitaré... quizás dentro un mes, aprox., que ahora estoy liado con otras cosas.

Sí que hay una versión de prueba del IDA Pro, pero a) no soporta todas las plataformas, y b) no soporta todos los tipos de archivos.

Hace unas semanas me bajé esa demo, y no fui capaz de leer ni siquiera una ROM, porque no era un formato reconocido. Decía que solo admitía COFF y alguno más.

Este enlace lleva a la parte de desensamblado del radare2, en lo referente a añadir metadatos:
https://radare.gitbooks.io/radare2book/ ... adata.html

Si quieres ver un vídeo que muestra -buena parte de- las posibilidades de radare2, te recomiendo este vídeo. Está en inglés pero se puede seguir bien. No te pierdas las risas que se echa la gente en el minuto 16, como ejemplo de la locura de los comandos que trae.
https://www.youtube.com/watch?v=fnpBy3wWabA
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 13 May 2017 19:03

Pues no me convence, seguiré con el mio, Avance a ver qué les parece, si alguien quiere ayudar, estare agradecido.
ya separa las rutinas, dependiendo de los JMP y RTN ya que si salta se acaba la rutina y debajo viene otra tambien si encuentra un RTN.
Crea una tabla (grilla) de los labels de las rutinas, para que se les pueda cambiar el nombre, y comentario, aunque tambien podria hacerse en el Assembler, aún no se que camino seguir

Voy a hacer que marque zonas de bytes en varios formatos y caracteres en varios formatos.
Tengo que hacer la segunda pasada o algo para que los JMP apunten a los labels y no a la dirección.
Ya veo que se necesitan, al menos los saltos a las ROM de basic y los puertos, con sus nombres adecuados o algo asi.

Desensamblador Assembler.png
Desensamblador Assembler.png (23.5 KiB) Visto 205 veces

Desensamblador Rutinas.png
Desensamblador Rutinas.png (10.82 KiB) Visto 205 veces

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 13 May 2017 23:04

Me parece bien que sigas con tu intento. ¿En qué lo estás haciendo (lenguaje/entorno)?

He encontrado una página con un listado de un montón de herramientas, para que te inspires. Pero la clave está en la página "oficial" de emulación del 6809.

Yo llevo dos días con el Radare2... y es un puro infierno. Está a años luz de IDA Pro a la hora de poner metainformación o líneas extra en el código fuente. Sí que tiene lo del salto a los puntos de llamada y vuelta, poner etiquetas a las direcciones de memoria... pero no... Además, he descubierto algún bug en la parte de z80 y me han pedido que directamente lo ponga como incidencia.

Voy a parar con este tema, hasta dentro de un mes, más o menos.

P.D.: Acabo de encontrar Medusa
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 14 May 2017 01:54

Pues muchas gracias lo revisare, no se cuanto tardare.
El mayor problema es que del BIN paso a ASM pero luego modificó ASM y hay 2 opciones no permitir cosas que modifiquen el original y así obtendrás un ASM en código fuente bastante bonito, algo así

Código: Seleccionar todo

                    ORG   $4000; TAMAÑO : 2304  DESDE = $4000 HASTA = $4900 C:\COCO\Utilidades\Assembler\POPCORN.BIN
 00001 4000 7E C3 76                    JMP C376       
 00002                       ;************* RUTINA L4003 ***********************
            ; Entra B, A con la posición vertical de texto, Y?
            ; Retorna:
            ; B que tiene el valor apuntado por Y
            ; X = #C01C     
            ; Flags dependiendo de B AND 3
 00003 4003 34 04            L4003      PSHS B         ;Salva B
 00004 4005 C6 20                       LDB #20        ;Carga B con 20
 00005 4007 3D                          MUL             ;Multiplica A por 20
 00006 4008 8B 04                       ADDA #04       ;Le suma 4
 00007 400A 1F 01                       TFR D,X       
 00008 400C E6 E4                       LDB ,S         ;Retoma B
 00009 400E 54                          LSRB           ;
 00010 400F 54                          LSRB           ;Divide entre 4
 00011 4010 3A                          ABX            ;X=B+X (Unsigned)
 00012 4011 E6 E0                       LDB ,S+        ;Retoma de nuevo B y libera stack
 00013 4013 C4 03                       ANDB #03       ;Activa flags segun B AND 3, B se descarta mas abajo
 00014 4015 8E C0 1C                    LDX #C01C      ;X = C01C
 00015 4019 E6 A5                       LDB B,Y        ;B = [Y]
 00016 401B 39                          RTS            ;Retorna
 00017                       ;************* RUTINA L401C ***********************
 00018 401C C0 30            L401C      SUBB #30       
 00019 401E 0C 03                       INC <03       
 00020 4020 34 40                       PSHS U         
 00021 4022 CE C5 B7                    LDU #C5B7     


O permitir modificaciones en el fuente, pero crearía un segundo fuente que despues podrias usar, como cualquier compilador, parece que dijera locuras, jeje

Por cierto necesitaría la ayuda de PSER1 que es muy bueno es esto, a ver si lo llamo

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 14 May 2017 03:01

Yo no dejaría modificar el fuente. Para eso están los ensambladores normales. Lo principal es el trabajo de desensamblado.
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 15 May 2017 22:50

Pues lo estoy haciendo en VB6 perque es mas rapido, despues lo paso a C++ en VS2015 o 17
Ya reconoce las subrutina, (parte fácil)

Desensamblador SubRutinas.png
Desensamblador SubRutinas.png (17.23 KiB) Visto 168 veces

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 15 May 2017 23:18

Yo no uso Windows, así que poco te puedo aportar en ese caso.

¡Suerte!
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 16 May 2017 00:29

Que estas usando?, ya despues cuando lo tenga claro, lo hare multiplataforma

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 18 May 2017 01:08

Linux Mint.

Uso Linux desde el... 95 ¡El siglo pasado!
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
minter
Mensajes: 993
Registrado: 22 Jul 2014 18:51
Agradecido : 221 veces
Agradecimiento recibido: 156 veces

Re: Desensambladores

Mensajepor minter » 18 May 2017 08:12

explorer escribió:Linux Mint - er


Está claro! Es el mejor!!! -507

Avatar de Usuario
ron
Mensajes: 11098
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 262 veces
Agradecimiento recibido: 319 veces

Re: Desensambladores

Mensajepor ron » 18 May 2017 08:46

Yo tb uso Mint, tanto en PowerPC como en X86.

Avatar de Usuario
explorer
Mensajes: 50
Registrado: 10 Ene 2016 18:43
Agradecido : 2 veces
Agradecimiento recibido: 20 veces

Re: Desensambladores

Mensajepor explorer » 18 May 2017 17:03

No lo he comentado antes, pero hacer un desensamblador no es algo sencillo: puedes coger la tabla de opcodes e ir haciendo una tabla de comportamiento por cada uno de ellos, pero... el problema está en la propia CPU.

Por ejemplo, yo me hice un desensamblador en Atari BASIC para mi 800 XL, para desensamblar código del 6502. Y un montón de años más tarde me entero que los 800 XL no llevan un 6502, sino un 6502C. Bueno, son iguales por dentro y se diferencian solo en unas patillas, pero son distintos del 6502C, la versión en CMOS, que incorpora 12 nuevas instrucciones con 59 nuevos opcodes. Y por supuesto, distinto del 6510 que traían los C=64.
JF^D Perl Programming
-j4tar1 Falcon030 4/80 MB UK, Jaguar
Calendario de Retroinformática

Avatar de Usuario
luiscoco
Mensajes: 2122
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 20 veces
Agradecimiento recibido: 28 veces
Contactar:

Re: Desensambladores

Mensajepor luiscoco » 18 May 2017 23:21

Todo está tomado en cuenta, en este programa hay que hacerlo tambien para 6309 de Hitachi, las demás versiones del 6809 no tienen diferencias


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 1 invitado