Idacode facilita la ejecución y depuración de los scripts de Python en su entorno IDA sin dejar el código de Visual Studio. La extensión del código VS se puede encontrar en el mercado.
Idacode todavía está en un estado muy temprano y se esperan errores. Abra un nuevo problema si encuentra algún problema.
debugpy para la comunicación, sincroniza la ventana de salida naturalmente con el panel de salida del código VS.¡Idacode admite Python 2 y Python 3!
Para configurar las dependencias para la ejecución del complemento IDA:
# make sure to use the correct Python version
# IDACode supports the latest debugpy as of version 3.0.0, make sure to upgrade!
python -m pip install --user debugpy tornado Ya sea clonar este repositorio o descargar un paquete de lanzamiento desde aquí. ida.zip refleja el contenido de la carpeta ida en este repositorio. Copie todos los archivos en el directorio de complementos IDAS.
El siguiente paso es configurar su configuración para que coincida con su entorno. Editar idacode_utils/settings.py en consecuencia:
HOST : esta es la dirección del host. Esto siempre es 127.0.0.1 a menos que desee que sea accesible desde una ubicación remota. Tenga en cuenta que este complemento no utiliza la autenticación.PORT : Este es el puerto que desea que IDA escuche. Esto se utiliza para la comunicación de WebSocket entre IDA y VS Code.DEBUG_PORT : Este es el puerto en el que desea escuchar para las sesiones de depuración entrantes.PYTHON : Este es el camino absoluto a la distribución de Python que utiliza su configuración de IDA.LOGGING : determina si el depurador debe iniciar sesión en archivos. Esto es especialmente útil cuando se encuentra con problemas con Idacode. Envíe un nuevo problema si encuentra algo. Los archivos siempre se encuentran en su directorio TEMP (por ejemplo, Windows: %TEMP% ). Los archivos se llaman debugpy.*.log . Ahora puede iniciar el complemento haciendo clic en IDACode en el menú de complementos.
La extensión de código VS está disponible en el mercado. Para configurar la extensión, consulte el ReadMe de la extensión.
Presione IDACode en el menú del complemento. Debe ser recibido con el siguiente texto:
IDACode listening on 127.0.0.1:7065
A partir de la versión 0.2.0, Idacode admite "Ejecutar en guardado", que está habilitado de forma predeterminada. VS Code ejecutará automáticamente su script en IDA tan pronto como guarde el documento actual (por ejemplo, con Ctrl+S). Este comportamiento se puede deshabilitar en la configuración.
Hay 4 comandos a su disposición:

Una vez que tenga una carpeta abierta en la que desee colocar sus scripts ( debe especificar la carpeta cuando VS Code le pide!) Está listo para conectarse a IDA. Puede hacerlo ejecutando Connect to IDA o Connect and attach a debugger to IDA . Tenga en cuenta que una sesión de depuración es permanente hasta que reinicie IDA. No puede cambiar la carpeta del espacio de trabajo una vez que el depurador ha comenzado.
Asegúrese de que la carpeta del espacio de trabajo sea la carpeta en la que se encuentran sus scripts principales.
Una vez que esté conectado, puede seleccionar Execute script in IDA .
IDACODE utiliza el depurador remoto de VS Code para conectarse a IDA. Se admiten todas las funciones de código VS. Sin embargo, debe especificar el punto de entrada de scripts utilizando la funcionalidad de Python Builtin: breakpoint . Esta instrucción le dice al depurador que detenga la ejecución, si no hay un depurador presente, simplemente ignorará la función. Idacode importa un paquete auxiliar llamado dbg que implementa una sobrecarga de breakpoint llamado bp . Esta función admite registro y condicionales:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " ) Tenga en cuenta también que una llamada de breakpoint() nunca debe ocurrir al final de un archivo, siempre debe ser antes de cualquier otra línea de código, ya que se rompe en la siguiente instrucción en su código. También tenga en cuenta que si decide usar el paquete dbg , debe eliminar todas las referencias o usar la variable __idacode__ como condicional antes de ejecutarlo como un script IDA normal.
También es importante que adjuntar un depurador cree una nueva instancia de depurador. En la mayoría de los casos, esto no es lo que quieres. Si se desconecta del depurador, use el depurador remoto de VS Code para conectarse nuevamente.
