Notes de version
Changelog LABS351
Évolutions techniques et changements de la plateforme au fil des versions de LABS351.
LABS351 3.5.3 · Recherche, navigation et extraction
Recherche de symboles et navigation vers le code décodé
LABS351 3.5.3 étendra les fonctions de recherche et de navigation afin de relier directement les symboles, les sources du projet et le code machine décodé.
La recherche dans les sources permettra d’identifier les occurrences d’un symbole dans le document courant ou dans l’ensemble des fichiers du VFS, notamment afin de repérer les occurrences multiples et les symboles dupliqués.
Depuis la vue des symboles, la navigation vers le désassemblage s’appuiera directement sur l’adresse du symbole issue de l’analyse du binaire. LABS351 localisera la section de code correspondante, recherchera l’instruction associée puis positionnera automatiquement l’affichage sur la page et la ligne contenant le symbole.
- Recherche d’un symbole dans le document courant
- Recherche dans l’ensemble des fichiers du VFS
- Identification des occurrences multiples d’un même symbole
- Repérage des symboles dupliqués dans les sources du projet
- Conservation d’une distinction claire entre recherche dans les sources et navigation dans le binaire analysé
- Navigation directe depuis la vue des symboles vers le code machine décodé
-
Localisation d’un symbole dans sa section
.textou__text - Recherche de l’adresse du symbole dans les instructions décodées
- Sélection automatique de la page de désassemblage correspondante
- Positionnement automatique sur l’instruction associée au symbole
- Sélection visuelle de l’instruction correspondant à l’adresse du symbole
LABS351 3.5.3 introduira également des actions contextuelles permettant d’extraire proprement une sélection depuis la zone de désassemblage.
L’extraction s’appuiera directement sur les instructions décodées associées aux lignes sélectionnées, indépendamment de leur représentation dans les différentes colonnes de l’interface.
- Copie des instructions désassemblées
- Copie des adresses et des instructions
- Extraction des octets d’opcode
- Copie d’une représentation complète du désassemblage sélectionné
- Conservation des informations de décodage indépendamment de la présentation du tableau
LABS351 3.5.2 · Analyse des symboles et validation ABI
Analyse des symboles multi-format
LABS351 3.5.2 étend l’analyse native des symboles pour les binaires ELF, Mach-O et PE/COFF tout en conservant les sémantiques propres à chaque format exécutable.
La provenance des symboles, leur liaison et leur association aux sections sont désormais exposées plus précisément, tandis que les noms de symboles C++ sont normalisés et démanglés pour l’affichage.
BinaryAnalyzer identifie également un symbole candidat directement à partir des symboles présents dans le binaire analysé. Le symbole sélectionné est identifié visuellement dans la vue des symboles.
-
Analyse des tables de symboles ELF
.symtabet.dynsym - Distinction entre symboles ELF dynamiques et réguliers, avec prise en compte des liaisons locales, globales, faibles, importées et non définies
- Classification native des symboles Mach-O locaux, externes et importés
- Classification des symboles, exports et imports PE/COFF
- Démangling des symboles C++ et normalisation de leur affichage
- Détection automatique d’un symbole candidat à partir du binaire analysé
- Identification visuelle du symbole sélectionné pour ELF, Mach-O et PE/COFF
LABS351 3.5.2 étend la validation ABI à l’exécution aux registres SIMD/FP non volatils devant être préservés par la fonction appelée.
Cette évolution complète la validation existante des registres généraux (GPR). LABS351 peut ainsi détecter simultanément une violation affectant un registre général et une violation affectant un registre SIMD/FP.
Sous ARM64/AAPCS64, la validation porte sur les
64 bits bas des registres V8 à
V15. Sous Windows x86-64 avec
l’ABI Microsoft x64, elle couvre les 128 bits
des registres XMM6 à
XMM15.
Lorsqu’une violation est détectée, le registre concerné est identifié dans les diagnostics ABI et signalé visuellement dans la vue des registres NEON ou XMM. Le statut ABI existant intègre désormais les violations GPR et SIMD/FP, tandis que la validation de la pile reste indépendante.
-
V8–V15— validation des 64 bits bas sous ARM64/AAPCS64 -
XMM6–XMM15— validation des 128 bits sous Windows x86-64 / Microsoft x64 - Détection simultanée des violations GPR et SIMD/FP
- Identification des registres concernés dans les diagnostics ABI
- Signalement visuel des registres en violation dans les vues NEON et XMM
- Validation de la pile conservée indépendamment de l’état des registres
LABS351 3.5.1 · ARM64 / AARCH64
Introspection ARM64 étendue à l’exécution
LABS351 3.5.1 étend l’introspection ARM64 à
l’exécution avec la capture complète des 32
registres architecturaux SIMD/FP de 128 bits,
de V0 à V31.
Le contenu des registres NEON peut être inspecté sous forme de valeurs brutes sur 128 bits ainsi qu’au travers de représentations typées, notamment entier, Float32, Double64 et ASCII.
L’état flottant à l’exécution a également été
étendu avec la capture et le décodage dédiés de
FPSR et FPCR. Les états
d’exception, les contrôles flottants et le mode
d’arrondi actif sont exposés directement dans
l’inspecteur de registres.
-
V0–V31— 32 registres SIMD/FP de 128 bits -
FPSR— registre d’état flottant -
FPCR— registre de contrôle flottant -
NZCV— indicateurs de condition - Interprétation SIMD typée
- Validation indépendante de l’ABI et de la pile
LABS351 3.5.1 affine le traitement des binaires PE/COFF afin de distinguer la taille virtuelle d’une section de sa taille physique alignée dans le fichier.
Pour les sections PE, le débogueur prend
désormais en compte VirtualSize
lorsque celle-ci est inférieure à
SizeOfRawData. Le padding
d’alignement présent dans le fichier n’est
ainsi plus transmis au moteur de décodage
comme s’il appartenait à la zone virtuelle
utile de la section.
Cette évolution reste strictement limitée au format PE/COFF et ne modifie pas le traitement des sections ELF ou Mach-O.
LABS351 3.5.1 introduit également un contrôle explicite de la politique d’export des symboles lors de la génération de bibliothèques partagées.
Une nouvelle option de projet permet d’activer ou de désactiver l’ajout automatique des directives d’export par LABS351. Lorsqu’elle est désactivée, le comportement natif du linker sélectionné est conservé. Lorsqu’elle est activée, LABS351 génère explicitement les directives d’export correspondant aux symboles globaux éligibles.
-
Prise en compte de
VirtualSizepour le décodage des sections PE/COFF -
Exclusion du padding lié à
SizeOfRawDatalorsque celui-ci dépasse la taille virtuelle - Aucun changement du traitement ELF et Mach-O
- Nouvelle option de projet pour l’export automatique des symboles globaux
- Possibilité de laisser le linker gérer nativement les exports
-
Validation comparative du parsing des
exports PE/COFF avec GNU
objdump