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 = YES
en elidapython.cfg
para 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_MODE
dentro 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.bat
como administrador
- p.ej
- Ejecutar y Fuzz.