
Ferramenta de instrumentação binária estática que extrai arquivos de objeto COFF de executáveis, permitindo inserção de código/dados em qualquer local para fuzzing de caixa-preta e patch binário via IDA Pro.
IDA2Obj é uma ferramenta para implementar SBI (Instrumentação Binária Estática).
O fluxo de trabalho é simples:
Prepare o ambiente:
AUTOIMPORT_COMPAT_IDA695 = YES no idapython.cfg para suportar a API com o estilo antigo do IDA 6.x.pip install coughCrie uma pasta como espaço de trabalho.
Copie o binário alvo que deseja fuzzear para o espaço de trabalho.
Carregue o binário no IDA Pro, escolha Carregar recursos e carregar manualmente para carregar todos os segmentos do binário.
Aguarde a conclusão da análise automática.
Despeje os arquivos objeto executando o script MagicIDA/main.py.
${workspace}/${module}/objs/afl.TRACE_MODE dentro do espaço de trabalho, então os arquivos objeto de saída estarão dentro de ${workspace}/${module}/objs/trace.${workspace}/${module} :
Gere os arquivos lib executando o script utils/LibImports.py.
${workspace}/${module}/libs, usados para linking posteriormente.Abra um terminal e mude o diretório para o espaço de trabalho.
Link todos os arquivos objeto e arquivos lib usando utils/link.bat.
utils/link.bat GdiPlus dll afl /RELEASE${workspace}/${module}.Aplique patch no novo binário construído usando utils/PatchPEHeader.py.
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dllutils/register_msdia_run_as_administrator.bat como administrador.Execute & Fuzze.
Slides do HITB : https://github.com/jhftss/jhftss.github.io/blob/main/res/slides/HITB2021SIN%20-%20IDA2Obj%20-%20Mickey%20Jin.pdf
Demonstração : https://drive.google.com/file/d/1N3DXJCts5jG0Y5B92CrJOTIHedWyEQKr/view?usp=sharing