2017-06-09 1 views
3

J'ai besoin d'un moyen pratique pour analyser un instantané de registres RAM + et visualiser facilement (pas nécessairement de manière graphique) les structures architecturales x86. Cela inclurait les tables de pages, les tables de descripteurs d'interruption, la table de descripteurs globaux, etc.Outil pour décoder les tables de pages et les tables de descripteurs à partir d'un instantané de RAM

Notez que je ne suis pas intéressé par les informations spécifiques au système d'exploitation (par exemple, la liste de processus, etc.), je suis simplement intéressé par l'architecture. structures.

Évidemment, on peut juste comprendre la mise en page pour toutes ces structures (et toutes les versions) de la documentation Intel mais je me demande s'il existe déjà un outil simple qui les décode.

+0

Vérifiez les outils d'imagerie mémoire pour la médecine légale http://forensicswiki.org/wiki/Tools: Memory_Imaging (la plupart des outils et solutions sont destinés à la capture d'images mémoire, mais certains ont aussi des fonctions de décodage/recherche, aussi http://forensicswiki.org/wiki/Memory_analysis et http://forensicswiki.org/wiki/Linux_Memory_Analysis) . Comment avez-vous eu la décharge? Avez-vous aussi des sauvegardes de registres CPU? (certaines structures sont enregistrées dans des registres privilégiés). Connaissez-vous la version du noyau Linux (la version inexacte peut aider aussi)? – osgx

+0

John, "informations spécifiques au système d'exploitation (par exemple, liste de processus, etc.), je suis juste intéressé par les structures architecturales." - mais la mémoire virtuelle du processus est séparée pour chaque processus, de sorte qu'il est toujours spécifique au système d'exploitation comment trouver chaque cartographie virtuelle de chaque processus. Certaines parties des tables de pages peuvent être partagées entre les processus (la partie noyau des mappages est partagée sous Linux et Windows); La partie utilisateur n'est probablement pas partagée ou peut être partiellement partagée. Alors, essayez d'écrire votre propre plugin aux outils d'analyse de Forensics si votre OS a des processus avec différents mappages de mémoire virtuelle. – osgx

Répondre

2

Il existe plusieurs outils pour l'analyse de mémoire légale répertoriés dans le forensicswiki à http://forensicswiki.org/wiki/Linux_Memory_Analysis (partie de http://forensicswiki.org/wiki/Memory_analysis, il existe également une variante pour Windows). Certains des outils sont open-source et actifs:

La sortie d'un outil d'acquisition de mémoire est une image mémoire qui contient la mémoire physique brute d'un système. Une grande variété d'outils peut être utilisée pour rechercher des chaînes ou d'autres motifs dans une image mémoire, mais pour extraire des informations de niveau supérieur sur l'état du système, un outil d'analyse de la mémoire est requis.

Outils d'analyse de mémoire Linux. Projets actifs Open Source:

  • The Volatility Framework est un ensemble d'outils, mis en oeuvre dans le python, pour l'extraction d'objets numériques à partir d'échantillons de mémoire volatile (RAM). Voir le LinuxMemoryForensics page on the Volatility wiki. (Disponibilité/Licence: GNU GPL)
  • Rekall inclut un framework d'analyse basé sur Python qui est dérivé de Volatility et a depuis ajouté un certain nombre de fonctionnalités, ainsi que ses propres outils d'acquisition. Il est utilisable en tant que bibliothèque et est utilisé en tant que tel dans le projet GRR forensics à distance.
  • The Red Hat Crash Utility est un programme d'analyse de vidage de noyau Linux extensible. Bien que conçu comme un outil de débogage, il a également été utilisé pour la médecine légale. Voir, par exemple, l'édition 2008 du défi du DFRWS par AAron Walters. (Disponibilité/Licence: GNU GPL)

(Certains projets inactifs sont également répertoriés, et il est Bibliography)

Par exemple, Volatility est capable of en utilisant le noyau et le processus "DTB (Directory Table Base)" (fenêtres), les pages de liste des processus linux (https://github.com/volatilityfoundation/volatility/wiki/Linux-Command-Reference#process-memory) et analyser le vidage de la mémoire d'autres façons.

[Rekall] a aussi GUI: http://www.rekall-forensic.com/pages/at_a_glance.html (pépin installer rekall-IUG) et plugins pour les processus à la recherche http://www.rekall-forensic.com/docs/Manual/tutorial.html

crash tool de David Anderson @ redhat n'est pas aussi universel que deux solutions précédentes, mais il sait encore comment analyser Dépôts de noyau Linux. Il est documenté dans command-line interface help et du papier: http://people.redhat.com/anderson/crash_whitepaper/ « Livre blanc: Red Hat Utility Crash »

L'utilitaire d'analyse de l'accident de Red Hat est vaguement basé sur la commande crash SVR4 UNIX, mais a été considérablement amélioré par complètement la fusion avec le débogueur GNU gdb.Le mariage des deux combine efficacement la nature spécifique au noyau de l'utilitaire de crash UNIX traditionnel avec les capacités de débogage au niveau du code source de gdb. L'utilitaire peut être utilisé pour étudier: les systèmes Linux Live, les noyaux noyau noyau Linux créés par l'installation Kdump, le cœur de noyau Linux compressé, ...

+1

Merci pour les pointeurs, osgx. Je suis à la recherche d'informations indépendantes du système d'exploitation, car j'écris essentiellement mon propre noyau. Donc, certains de ces outils peuvent être exagérés, mais je vais y aller plus attentivement car ils peuvent contenir ce dont j'ai besoin. Je reçois les valeurs de registre (CRs, etc.) et l'instantané de la mémoire à travers l'hyperviseur. –