
IDA2Obj es una herramienta para implementar SBI (instrumentación binaria estática).
El flujo de trabajo es simple:
- Vertedero archivos de objetos (COFF) directamente desde un ejecutable binario.
- Enlace el archivos de objeto en un nuevo binario, casi el mismo que el anterior.
- Durante el proceso de descarga, puede inserte cualquier dato/código en cualquier ubicación.
- OSE es solo uno de los escenarios de uso, especialmente útil para fuzzing de caja negra.
Cómo utilizar
- Preparar el ambiente:
- Colocar
AUTOIMPORT_COMPAT_IDA695 = YESen elidapython.cfgpara admitir la API con el antiguo estilo IDA 6.x. - Instalar dependencia:
pip install cough
- Colocar
- Cree una carpeta como espacio de trabajo.
- Copie el binario de destino que desea fuzzear en el espacio de trabajo.
- Cargue el binario en IDA Pro, elija Cargar recursos y cargar manualmente cargar todo los segmentos del binario.
- Espere a que se realice el autoanálisis.
- Volcar archivos de objetos ejecutando el script
MagicIDA/main.py.- Los archivos de objetos de salida estarán dentro
${workspace}/${module}/objs/afl. - Si crea un archivo vacío llamado
TRACE_MODEdentro del espacio de trabajo, los archivos de objetos de salida estarán dentro${workspace}/${module}/objs/trace. - Por cierto, también generará 3 archivos dentro
${workspace}/${module}:- exportaciones_afl.def (usado para enlazar)
- exportaciones_trace.def (utilizado para vincular)
- hint.txt (usado para parchear)
- Los archivos de objetos de salida estarán dentro
- Genere archivos lib ejecutando el script
utils/LibImports.py.- Los archivos lib de salida estarán dentro
${workspace}/${module}/libs, utilizado para enlazar más tarde.
- Los archivos lib de salida estarán dentro
- Abra una terminal y cambie el directorio al espacio de trabajo.
- Vincule todos los archivos de objetos y archivos lib usando
utils/link.bat.- p.ej
utils/link.bat GdiPlus dll afl /RELEASE - Generará el nuevo binario con el archivo pdb dentro
${workspace}/${module}.
- p.ej
- Parchear el nuevo binario construido usando
utils/PatchPEHeader.py.- p.ej
utils/PatchPEHeader.py GdiPlus/GdiPlus.afl.dll - Por primera vez, es posible que deba ejecutar
utils/register_msdia_run_as_administrator.batcomo administrador
- p.ej
- Ejecutar y Fuzz.







