Ghidra 101: Resaltado de rebanadas

Ghidra: Resaltado de rebanadas

En esta serie de blogs, me centraré en los útiles ghidra características que puede haber pasado por alto. Cada publicación analizará una característica diferente y mostrará cómo lo ayuda a ahorrar tiempo y ser más efectivo en sus flujos de trabajo de ingeniería inversa. Ghidra es una herramienta increíblemente poderosa, pero gran parte de este poder proviene de saber cómo usarla de manera efectiva.

En esta publicación, discutiré qué es el resaltado de cortes y cómo nos ayuda a visualizar las relaciones entre las variables para comprender mejor un programa. Antes de que podamos discutir cómo usar el resaltado de cortes en Ghidra, me gustaría tomarme un momento para presentar el concepto de corte de programas. En términos de ingeniería inversa de software, la división de programas es una forma de abstraer el código en grupos más pequeños de instrucciones conocidas como segmentos. Las rebanadas se forman siguiendo cómo el valor de una variable en particular afecta o se ve afectado por los valores de otras variables. Ghidra Decompiler expone la funcionalidad para aplicar rápidamente resaltado para visualizar estos segmentos de programa.

La forma más fácil de acceder al resaltado de sectores dentro de Ghidra es hacer clic con el botón derecho en una variable en el Descompilador:

Ghidra haciendo clic derecho en una variable en el Descompilador:

Es importante tener en cuenta que las opciones de resaltado de sectores solo están disponibles cuando el cursor está en una variable cuyo valor se está utilizando o configurando. El resaltado de sectores no está disponible en el menú contextual si el cursor se encuentra en una declaración de variable o en un punto del programa donde se utiliza la dirección del operador (&). La acción Resaltar sector hacia adelante resaltará las variables cuyos valores se ven afectados por el valor de la variable debajo del cursor.

Resaltado de sectores - Avance sSice

En el ejemplo anterior, se solicitó un segmento directo para el índice en la línea 31. Tenga en cuenta que en la línea 31, el índice no afectaría el uso de superficie_area hasta después de que se reinicie el ciclo.

Resaltar sector hacia atrás resaltará las variables cuyos valores contribuyeron al valor de la variable debajo del cursor.

Resaltar corte hacia atrás

En el ejemplo anterior, se solicitó un corte hacia atrás para index en la línea 31. La única variable resaltada en este caso es index, e incluye la inicialización de index antes de ingresar al bucle.

Además de estas opciones, Ghidra también tiene opciones de avance y retroceso de ‘Inst Slice’. Esta es la abreviatura de segmento de instrucción e incluirá todas las instrucciones que afectan o se ven afectadas por el valor de la variable debajo del cursor.

En el contexto de la investigación de vulnerabilidades, el resaltado de sectores proporciona una forma de identificar rápidamente el alcance del control que tiene un atacante cuando controla una variable en particular o, alternativamente, qué variables necesitaría controlar para influir en el valor de una variable.

Publicaciones Similares