O IDACODE facilita a execução e a depuração do Python Scripts em seu ambiente IDA sem deixar o código do Visual Studio. A extensão do código VS pode ser encontrada no mercado.
O Idacode ainda está em um estado muito precoce e os bugs são esperados. Abra um novo problema se encontrar algum problema.
debugpy para comunicação, ele sincroniza a janela de saída naturalmente com o painel de saída do vs código.O Idacode suporta o Python 2 e o Python 3!
Para configurar as dependências para a execução do plugin 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 Clone este repositório ou faça o download de um pacote de lançamento daqui. ida.zip reflete o conteúdo da pasta ida neste repositório. Copie todos os arquivos no diretório do plug -in do IDAS.
O próximo passo é definir suas configurações para corresponder ao seu ambiente. Edite idacode_utils/settings.py de acordo:
HOST : Este é o endereço do host. Isso é sempre 127.0.0.1 a menos que você queira que seja acessível a partir de um local remoto. Lembre -se de que este plugin não utiliza autenticação.PORT : Esta é a porta que você deseja que a IDA ouça. Isso é usado para a comunicação do WebSocket entre o IDA e o código VS.DEBUG_PORT : Esta é a porta que você deseja ouvir para sessões de depuração recebidas.PYTHON : Este é o caminho absoluto para a distribuição do Python que sua configuração da IDA usa.LOGGING : determina se o depurador deve fazer login nos arquivos. Isso é especialmente útil quando você está enfrentando problemas com o Idacode. Envie um novo problema se encontrar alguma coisa. Os arquivos estão sempre localizados no seu diretório temporário (por exemplo, Windows: %TEMP% ). Os arquivos são chamados de debugpy.*.log . Agora você pode iniciar o plug -in clicando no IDACode no menu Plugins.
A extensão do código VS está disponível no mercado. Para configurar a extensão, consulte o Readme da extensão.
Pressione IDACode no menu do plug -in. Você deve ser recebido com o seguinte texto:
IDACode listening on 127.0.0.1:7065
A partir da versão 0.2.0, o IDACODE suporta "Execute on Save", que é ativado por padrão. O código VS executará automaticamente seu script na IDA assim que você salvar o documento atual (por exemplo, com Ctrl+S). Esse comportamento pode ser desativado nas configurações.
Existem 4 comandos à sua disposição:

Depois de abrir uma pasta em que você deseja colocar seus scripts (você deve especificar a pasta quando o código VS solicitar!) Você está pronto para se conectar à IDA. Você pode fazer isso executando Connect to IDA ou Connect and attach a debugger to IDA . Lembre -se de que uma sessão de depuração é permanente até você reiniciar a IDA. Você não pode alterar a pasta da área de trabalho assim que o depurador começar.
Verifique se a pasta da área de trabalho é a pasta em que seus scripts principais estão localizados.
Depois de estar conectado, você poderá selecionar Execute script in IDA .
O IDACODE usa o depurador remoto do VS Code para conectar -se à IDA. Todos os recursos de código VS são suportados. No entanto, você deve especificar o Scripts EntryPoint usando a funcionalidade construída em Python: breakpoint . Esta instrução diz ao depurador para pausar a execução, se não houver depurador, ela simplesmente ignorará a função. Idacode importa um pacote auxiliar chamado dbg que implementa uma sobrecarga de breakpoint chamado bp . Esta função suporta log e condicionais:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " ) Observe também que uma chamada breakpoint() nunca deve ocorrer no final de um arquivo, ela deve estar sempre antes de qualquer outra linha de código, à medida que quebra a próxima instrução no seu código. Observe também que, se você decidir usar o pacote dbg , você deve remover todas as referências ou usar a variável __idacode__ como condicional antes de executá -lo como um script IDA normal.
Também é importante que anexar um depurador crie uma nova instância do depurador. Na maioria dos casos, não é isso que você deseja. Se você se desconectar do depurador, use o depurador remoto do VS Code para conectar novamente.
