
Extraer etiquetas de archivos de IDA, Ghidra, Binary Ninja y Relyze y exportar la base de datos de x64dbg. Incluyendo la dirección principal de radare2.
Este comando extrae todas las etiquetas encontradas en el archivo LST que se proporciona como único argumento. Se crea una base de datos de x64dbg en el directorio actual basada en las etiquetas extraídas.
El archivo LST se puede generar en IDA desde el menú Archivo: Producir archivo -> Crear archivo LST...
$ lst2x64dbg sample.lst
Este comando extrae todas las etiquetas encontradas en el archivo CSV que se proporciona como único argumento. Se crea una base de datos de x64dbg en el directorio actual basada en las etiquetas extraídas. Se debe proporcionar el valor de imagebase.
El archivo CSV se puede generar en Ghidra desde el menú Ventana seleccionando Tabla de símbolos
En la ventana de tabla de símbolos que se abre, ordene los datos por la columna Ubicación. Luego seleccione todos los símbolos que no sean ubicaciones externas. Con los símbolos deseados seleccionados, haga clic derecho y seleccione: Exportar -> Exportar a CSV...
NOTA: Si selecciona ubicaciones externas, serán ignoradas.

Nombre este archivo <nombre_módulo>.csv
$ ghidra2x64dbg -i 400000 sample.csv
El valor de imagebase se puede encontrar en la parte superior del panel de desensamblado en la ventana CodeBrowser. Forma parte del encabezado DOS.

Ghidra tiene una opción de análisis que está desactivada por defecto y que puede proporcionar más etiquetas para el código en una muestra en ciertas situaciones. Esta opción, WindowsPE x86 Propagate External Parameters se encuentra en la ventana Opciones de análisis cuando una muestra se abre por primera vez en la herramienta CodeBrowser.

Este comando extrae todas las etiquetas encontradas en un archivo JSON bnida de Binary Ninja proporcionado como único argumento. Se crea una base de datos de x64dbg en el directorio actual basada en las etiquetas extraídas. Se debe proporcionar el valor de imagebase.
Para generar un archivo bnida desde Binary Ninja, primero debe instalar el complemento según las instrucciones:
https://zznop.github.io/bnida/
Una vez que el ejecutable esté cargado en Binary Ninja, navegue al menú Herramientas y seleccione bnida: Exportar datos de análisis.

Nombre este archivo <nombre_módulo>.json
$ binja2x64dbg -i 400000 sample.json
Este comando extrae todas las etiquetas encontradas en una base de datos de x64dbg generada por Relyze proporcionada como único argumento. Se crea una base de datos de x64dbg en el directorio actual basada en las etiquetas extraídas.
Para generar una base de datos de x64dbg en Relyze, simplemente abra el ejecutable y en la vista Código, haga clic derecho y exporte.

Nombre este archivo <nombre_módulo>_relyze.dd32 o <nombre_módulo>_relyze.dd64
$ relyze2x64dbg sample_relyze.dd32
Ambos comandos ahora admiten la inclusión de la ubicación de main() detectada por
radare2. Simplemente agregue -r o -main a cualquier comando de la siguiente manera:
$ lst2x64dbg -r 0x0040a53a sample.lst
Simplemente copie y pegue la dirección virtual de main desde la interfaz de Cutter o desde la línea de comandos de radare2.

Cada una de estas herramientas verificará el directorio actual en busca de una base de datos de x64dbg creada por una ejecución anterior de alguna de las herramientas. Cualquier desplazamiento de esa base de datos que ya tenga una etiqueta no será modificado por una ejecución posterior de ninguna de las herramientas. En otras palabras, cada herramienta expande la lista de etiquetas, pero no sobrescribe ninguna etiqueta que ya exista.
Si ha creado etiquetas manualmente, se recomienda crearlas solo en un desensamblador. Además, haga que la salida de ese desensamblador sea la primera en ser procesada por una de las herramientas anteriores. De esta manera, todas sus etiquetas personalizadas estarán garantizadas en la nueva base de datos de x64dbg.
En una futura iteración de este software habrá una forma de resolver conflictos en el paso de fusión del procesamiento.