Seguridad de red | Aprendizaje de entrada de prueba de penetración, desde cero entrada básica hasta competencia: introducción de la herramienta de tecnología de análisis dinámico interfaz OllyDbg

Tabla de contenido

Depurador de técnicas de análisis dinámico

¿Qué es OllyDbg?

¿Qué puede hacer OllyDbg?

Introducción a la ventana de OllyDbg

1. Ventana del panel de desmontaje

2. Ventana del panel de información

3. Ventana del panel de datos

4. Ventana del panel de registro

5. Ventana del panel de pila


Depurador de técnicas de análisis dinámico

La herramienta más importante en la tecnología de análisis dinámico es el depurador, que se divide en dos tipos: modo usuario y modo kernel. Un depurador en modo usuario hace referencia a un depurador que se utiliza para depurar aplicaciones en modo usuario. Funciona en el nivel de Ring3, como llyDbgx64dbg, VisualC++ y otros compiladores que vienen con el depurador. Un depurador en modo kernel se refiere a un depurador que puede depurar el kernel del sistema operativo, como OllyDbg.

¿Qué es OllyDbg?

OllyDbg (abreviado como "OD") es creado por leh Yuschuk (Busqué en Internet durante mucho tiempo, pero hay muy pocas noticias sobre el autor de OD. En un sitio extranjero, encontré información esporádicamente: Oleh Yuschuk: It puede ser la antigua Unión Soviética -> Rusos, después de la desintegración de la antigua Unión Soviética, emigré a Alemania y he estado viviendo en un casco antiguo de Alemania. No puedo encontrar información específica) escribió un depurador de modo de usuario con un Interfaz visual, que puede ejecutarse en varias versiones de Windows Actualización de la arquitectura del sistema NT Puede desempeñar la poderosa función de OllyDbg.

¿Qué puede hacer OllyDbg?

OllyDbg combina la depuración dinámica y el análisis estático, tiene una interfaz GUI, es muy fácil de usar y es bastante flexible en el seguimiento y procesamiento de excepciones. Estas características hacen de OllyDbg la herramienta elegida para depurar programas de nivel Ring3. Su motor de desmontaje es muy poderoso, puede identificar miles de funciones usadas frecuentemente por C y Wimdows, y puede anotar sus parámetros. Analizará automáticamente las cadenas en el código de la función, proceso, declaración de bucle, etc. Además, el diseño abierto le da a este software una gran vitalidad. A través de la continua modificación y expansión por parte de los entusiastas, la capacidad de ejecución de scripts y la interfaz abierta de plug-in de OllyDbg lo hacen cada vez más poderoso.

Enlace de descarga oficial: OllyDbg v1.10   OllyDbg aquí recomienda mis complementos favoritos, que son muy fáciles de usar.

Introducción a la ventana de OllyDbg

Después de iniciar OllDbg, se abrirán varias subventanas. Haga clic en los botones de acceso directo como "L", "E" y "M" en la barra de herramientas para cambiar entre las subventanas, como se muestra en la siguiente figura. Estos accesos directos corresponden a los elementos de función del menú "Ver", incluida la ventana de registro, la ventana de la CPU y otras descripciones de funciones de la ventana; consulte el documento de ayuda de 0llyDbg.

 Haga clic en la opción "Archivo" "Abrir" (tecla de acceso directo "F3") para abrir un archivo EXE. OllyDbg cargará inmediatamente el archivo, analizará automáticamente y enumerará el código ensamblador. La ventana actual predeterminada es la ventana de la CPU, que es la ventana más importante en 0yDbg, y el icono correspondiente es C, y la mayoría de las operaciones del depurador deben realizarse en esta ventana. Esta ventana incluye 5 ventanas de panel, que son el panel de desmontaje, el panel de registro, el panel de información, el panel de datos y el panel de pila, como se muestra en la figura a continuación. Las propiedades de apariencia de cada ventana, como la barra de título (barra), la fuente (fuente), etc., se pueden controlar a través de la opción "Apariencia" (opción de interfaz) en el menú contextual del botón derecho de la ventana correspondiente.

1. Ventana del panel de desmontaje

La ventana del desensamblador (Ventana del desensamblador) muestra que el código del programa depurado tiene 4 columnas que son dirección (Dirección), código de máquina hexadecimal (Hexdump), código de desensamblado (Desensamblado) y comentario (Comentario). En la última columna de comentarios, muestra los parámetros API relevantes o el formulario breve de operación, lo cual es muy útil.

 

00B2109B   .  B9 F8BAB400   mov ecx,路径修复.00B4BAF8
00B210A0   .  E9 26670000   jmp 路径修复.00B277CB
00B210A5   .  B9 FBBAB400   mov ecx,路径修复.00B4BAFB
00B210AA   .  E8 58760000   call 路径修复.00B28707
00B210AF   .  68 83F9B300   push 路径修复.00B3F983
00B210B4   .  E8 B5890000   call 路径修复.00B29A6E
00B210B9   .  59            pop ecx                                  ;  kernel32.777D0099
00B210BA   .  C3            retn
00B210BB   .  B9 B8BBB400   mov ecx,路径修复.00B4BBB8
00B210C0   .  E8 42760000   call 路径修复.00B28707
00B210C5   .  68 8DF9B300   push 路径修复.00B3F98D
00B210CA   .  E8 9F890000   call 路径修复.00B29A6E
00B210CF   .  59            pop ecx                                  ;  kernel32.777D0099
00B210D0   .  C3            retn
00B210D1   .  68 97F9B300   push 路径修复.00B3F997
00B210D6   .  E8 93890000   call 路径修复.00B29A6E

 En la columna (nota: no el encabezado de la columna) de la ventana del panel de desmontaje, de forma predeterminada, al hacer doble clic se pueden completar las siguientes operaciones.

  • Columna de dirección: muestra la dirección relativa de la dirección de la fila en la que se hizo doble clic y vuelve a hacer doble clic para volver al modo de dirección estándar.
  • Columna Hexdump: establezca o cancele el punto de interrupción incondicional, la tecla de acceso directo correspondiente es la tecla "F2".
  • Columna de desmontaje: llame al ensamblador, puede modificar directamente el código de ensamblaje y la tecla de acceso directo correspondiente es la barra espaciadora.
  • Columna de comentarios: permite agregar o editar comentarios, y la tecla de acceso directo correspondiente es la tecla "".

Seleccione varias líneas desde el teclado, lo que se puede realizar presionando la tecla "Mierda" y las teclas de cursor hacia arriba y hacia abajo (o las teclas "RePág"/"AvPág") o usando el comando del menú contextual del botón derecho. Presione la tecla "Ctl" y presione las teclas de cursor arriba/abajo para desplazarse por la ventana de ensamblaje línea por línea (útil cuando se mezclan datos con código).

2. Ventana del panel de información

Al realizar el seguimiento dinámico, la ventana del panel de información (ventana de información) mostrará información como el valor de cada registro relacionado con la instrucción, el aviso de llamada de función API y el aviso de salto.

3. Ventana del panel de datos

La ventana del panel de datos (Dumpwindow) muestra los datos en la memoria del archivo en hexadecimal y caracteres. Para mostrar los datos de la dirección de memoria especificada, puede hacer clic en el comando "Cotoexpresión" en el menú de acceso directo del botón derecho o presionar la tecla de acceso directo "Ctl+G" para abrir la ventana de dirección e ingresar la dirección.

00B40260  62 72 6F 6B 65 6E 20 70 69 70 65 00 63 6F 6E 6E  broken pipe.conn
00B40270  65 63 74 69 6F 6E 20 61 62 6F 72 74 65 64 00 00  ection aborted..
00B40280  63 6F 6E 6E 65 63 74 69 6F 6E 20 61 6C 72 65 61  connection alrea
00B40290  64 79 20 69 6E 20 70 72 6F 67 72 65 73 73 00 00  dy in progress..
00B402A0  63 6F 6E 6E 65 63 74 69 6F 6E 20 72 65 66 75 73  connection refus
00B402B0  65 64 00 00 63 6F 6E 6E 65 63 74 69 6F 6E 20 72  ed..connection r
00B402C0  65 73 65 74 00 00 00 00 64 65 73 74 69 6E 61 74  eset....destinat
00B402D0  69 6F 6E 20 61 64 64 72 65 73 73 20 72 65 71 75  ion address requ
00B402E0  69 72 65 64 00 00 00 00 65 78 65 63 75 74 61 62  ired....executab
00B402F0  6C 65 20 66 6F 72 6D 61 74 20 65 72 72 6F 72 00  le format error.
00B40300  66 69 6C 65 20 74 6F 6F 20 6C 61 72 67 65 00 00  file too large..
00B40310  68 6F 73 74 20 75 6E 72 65 61 63 68 61 62 6C 65  host unreachable
00B40320  00 00 00 00 69 64 65 6E 74 69 66 69 65 72 20 72  ....identifier r
00B40330  65 6D 6F 76 65 64 00 00 69 6C 6C 65 67 61 6C 20  emoved..illegal
00B40340  62 79 74 65 20 73 65 71 75 65 6E 63 65 00 00 00  byte sequence...
00B40350  69 6E 61 70 70 72 6F 70 72 69 61 74 65 20 69 6F  inappropriate io
00B40360  20 63 6F 6E 74 72 6F 6C 20 6F 70 65 72 61 74 69   control operati
00B40370  6F 6E 00 00 69 6E 76 61 6C 69 64 20 73 65 65 6B  on..invalid seek
00B40380  00 00 00 00 69 73 20 61 20 64 69 72 65 63 74 6F  ....is a directo
00B40390  72 79 00 00 6D 65 73 73 61 67 65 20 73 69 7A 65  ry..message size
00B403A0  00 00 00 00 6E 65 74 77 6F 72 6B 20 64 6F 77 6E  ....network down
00B403B0  00 00 00 00 6E 65 74 77 6F 72 6B 20 72 65 73 65  ....network rese
00B403C0  74 00 00 00 6E 65 74 77 6F 72 6B 20 75 6E 72 65  t...network unre
00B403D0  61 63 68 61 62 6C 65 00 6E 6F 20 62 75 66 66 65  achable.no buffe
00B403E0  72 20 73 70 61 63 65 00 6E 6F 20 63 68 69 6C 64  r space.no child
00B403F0  20 70 72 6F 63 65 73 73 00 00 00 00 6E 6F 20 6C   process....no l
00B40400  69 6E 6B 00 6E 6F 20 6D 65 73 73 61 67 65 20 61  ink.no message a
00B40410  76 61 69 6C 61 62 6C 65 00 00 00 00 6E 6F 20 6D  vailable....no m
00B40420  65 73 73 61 67 65 00 00 6E 6F 20 70 72 6F 74 6F  essage..no proto


4. Ventana del panel de registro

 La ventana del panel de registro (ventana Registros) muestra el valor de cada registro de la CPU y admite registros MMX de punto flotante y 3DNow!. Puede hacer clic con el botón derecho o en el título de la ventana para cambiar la forma en que se muestra el registro.


5. Ventana del panel de pila

 El contenido que se muestra en la ventana Stack es el contenido de la dirección a la que apunta ESP. La operación de poner datos en la pila se llama empujar, y la operación de sacar datos de la pila se llama sacar. La ventana es muy importante, todas las funciones y subrutinas de la API la usan para pasar parámetros y variables.

010FFC74  |00000000
010FFC78  |00000000
010FFC7C  |00000000
010FFC80  |00000000
010FFC84  |00000000
010FFC88  |00000000
010FFC8C  |00000000
010FFC90  |010FFC58
010FFC94  |00000000
010FFC98  |010FFCB0  Pointer to next SEH record
010FFC9C  |77C7AE30  SE handler
010FFCA0  |875B3DC9
010FFCA4  |00000000
010FFCA8  \010FFCB8
010FFCAC   77C67B3E  RETURN to ntdll.77C67B3E from ntdll.77C67B3F
010FFCB0   FFFFFFFF  End of SEH chain
010FFCB4   77C88C8F  SE handler

Supongo que te gusta

Origin blog.csdn.net/qq_22903531/article/details/131377928
Recomendado
Clasificación