PE view creates functions at data variable exports

Abierto
#4,053 0 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp

Línea de trabajo

Reproduce the issue using the binary referenced by Vector35/binaryninja-api#3709 and inspect address 0x100162e8. Start with the PE loader's export handling, especially its treatment of exports in executable segments. Done means data variable exports no longer produce erroneous functions while real functions continue to be analyzed.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Component: BinaryViewType Effort: Low File Format: PE Impact: Low

Version and Platform (required):

  • Binary Ninja Version: 3.2
  • OS: macOS
  • OS Version: 12.4
  • CPU Architecture: M1

Bug Description:
On trying to analyze the binary in Vector35/binaryninja-api#3709, many functions are created for data variable symbols, because they are technically exports (and have an entry), but are in the text segment. These functions are erroneous and misleading.

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Open the binary from Vector35/binaryninja-api#3709
  2. Go to 0x100162e8
  3. Observe nonsense function created
  4. Undefine function
  5. Observe real data variable at that address

Expected Behavior:
I expected binja to not try to analyze a data variable

Screenshots:
image
image

Additional Information:
This is a bug in the PE loader observing that the segment of the export is executable, and assuming it can create a function there.

Lenguaje dominante
C++
Estrellas
1.3k
Forks
298
Merge medio
5 d 5 h
PR fusionados (30 d)
19

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Vector35/binaryninja-api

Todos los issues de Vector35/binaryninja-api

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.