Glossary
Plain-language definitions of SEO terms used across the blog.
- Obfuscation par virtualisation
- Technique avancée qui traduit les instructions natives en bytecode personnalisé exécuté par un interpréteur embarqué, déjouant les désassembleurs usuels.
- Exécution symbolique
- Technique d'analyse qui exécute le code avec des valeurs symboliques au lieu d'entrées concrètes, explorant plusieurs chemins à la fois.
- NOP Sled
- Séquence d'instructions NOP (no-operation) précédant un shellcode, pour que des sauts imprécis atterrissent dans la zone du payload exécutable.
- Patching
- Modifier les octets d'un binaire sur disque ou en mémoire pour changer son comportement — contourner une vérif de licence, désactiver de l'anti-débogage.
- Entropie
- Une mesure du caractère aléatoire de données binaires — une entropie élevée révèle compression ou chiffrement, signature des malwares packés.
- YARA
- Outil de pattern-matching et langage de règles servant à identifier et classer des échantillons de malware à partir de signatures textuelles ou binaires.
- Analyse dynamique
- Analyser un binaire en l'exécutant réellement et en observant son comportement en temps réel via débogueurs, sandboxes et surveillance système.
- Analyse statique
- Examiner un binaire sans l'exécuter, à l'aide de désassembleurs, décompilateurs et analyseurs de format pour comprendre sa structure et sa logique.
- Sandbox
- Environnement d'exécution isolé qui lance un binaire suspect, surveille son comportement et l'empêche d'affecter le système réel.
- Gadget
- Courte séquence d'instructions existantes finissant par un RET (ou similaire), brique de base des chaînes de Return-Oriented Programming.
- Registres R8-R15
- R8 à R15 sont les huit registres généraux 64 bits étendus de x86-64 ajoutés par AMD64, pour le passage d'arguments et l'espace de travail supplémentaire.
- Programmation orientée retour (ROP)
- Une technique d'exploitation qui enchaîne de petits fragments de code finissant par des RET pour exécuter une logique arbitraire sans injecter de code.
- Shellcode
- Code machine autonome et indépendant de la position, injecté et exécuté dans un processus cible, généralement comme charge utile d'exploit.
- Obfuscation
- Transformation intentionnelle du code ou des données pour les rendre plus difficiles à comprendre, tout en préservant le comportement du programme.
- Packer
- Outil qui compresse ou chiffre un exécutable et l'enveloppe d'un stub le décompressant/déchiffrant à l'exécution avant de rendre la main au code original.
- Bloc de base
- Une séquence linéaire maximale d'instructions avec un seul point d'entrée et une seule sortie (branchement ou retour) — l'unité-nœud d'un CFG.
- Graphe de flux de contrôle (CFG)
- Un graphe orienté représentant tous les chemins d'exécution possibles d'une fonction, les nœuds étant des blocs de base et les arêtes des branchements.
- Registre RFLAGS
- RFLAGS est le registre d'état 64 bits de x86-64 contenant les drapeaux de condition comme ZF, CF, SF et OF qui pilotent les branchements conditionnels.
- Exécution pas à pas
- Exécuter une instruction à la fois dans un débogueur pour observer l'effet exact de chaque opération sur les registres et la mémoire.
- Point d'arrêt
- Une instruction ou un déclencheur matériel dans un débogueur qui suspend l'exécution lorsque le programme atteint une adresse ou une condition précise.
- API Hooking
- Interception des appels aux fonctions d'API ou de bibliothèque à l'exécution afin de surveiller, modifier ou rediriger leur comportement.
- Appel système
- Transition contrôlée de l'espace utilisateur vers le noyau pour demander une opération privilégiée comme lire un fichier ou allouer de la mémoire.
- Boutisme (Endianness)
- L'ordre des octets dans lequel les entiers multi-octets sont stockés en mémoire : petit-boutiste (LSB d'abord) ou gros-boutiste (MSB d'abord).
- Registre RIP
- RIP est le pointeur d'instruction 64 bits de x86-64, qui contient l'adresse de la prochaine instruction et permet l'adressage relatif à RIP.
- Binaire stripé
- Exécutable dont la table des symboles et les informations de débogage ont été retirées, rendant le reverse engineering nettement plus difficile.
- Table des symboles
- Section d'un binaire qui associe les noms de fonctions et de variables à leurs adresses, présente dans les builds de débogage ou non stripés.
- Relocation
- L'ajustement des adresses codées en dur dans un binaire lorsqu'il est chargé à une adresse de base différente de celle supposée à la compilation.
- Import Address Table (IAT)
- Une table à l'intérieur d'un binaire PE, remplie par le loader Windows avec les adresses d'exécution des fonctions de DLL importées.
- Registre RBP
- RBP est le pointeur de base/cadre 64 bits de x86-64, qui ancre une référence stable au cadre de pile d'une fonction pour les locales et les arguments.
- Original Entry Point (OEP)
- Le point d'entrée d'un exécutable avant qu'un packer ou protecteur ne le modifie — l'adresse où démarre le code original après dépaquetage.
- Point d'entrée
- L'adresse virtuelle où le chargeur de l'OS transfère le contrôle à un binaire après l'avoir chargé en mémoire.
- Format ELF
- Executable and Linkable Format — le format binaire standard sous Linux et la plupart des systèmes Unix pour exécutables et bibliothèques.
- Registre RSP
- RSP est le pointeur de pile 64 bits de x86-64, pointant toujours vers le sommet de la pile d'appels courante et géré par push, pop, call et ret.
- Format PE
- Portable Executable — le format de fichier binaire des exécutables Windows (.exe, .dll, .sys) qui définit les en-têtes, sections et tables d'imports.
- Architecture du jeu d'instructions (ISA)
- La spécification complète des instructions, registres et modes d'adressage d'un processeur sur laquelle le logiciel peut s'appuyer.
- ABI
- Application Binary Interface — le contrat bas niveau couvrant conventions d'appel, agencement des données et appels système entre composants compilés.
- Registre RDI
- RDI est le registre d'index de destination 64 bits de x86-64, pointeur des opérations sur chaînes et premier argument de fonction sur System V.
- Convention d'appel
- Les règles convenues régissant la façon dont un appel de fonction passe ses arguments, retourne ses valeurs et gère la pile et les registres.
- Tas (Heap)
- La région de mémoire utilisée pour les allocations dynamiques (malloc/new), gérée par l'allocateur du runtime plutôt qu'automatiquement par le CPU.
- Registre RSI
- RSI est le registre d'index source 64 bits de x86-64, pointeur source des opérations sur chaînes et argument de fonction sur System V.
- Pile
- Région mémoire LIFO qui croît vers le bas, utilisée pour les adresses de retour, variables locales et registres sauvegardés lors des appels.
- Registre
- Un emplacement de stockage minuscule et ultra-rapide intégré au processeur, contenant opérandes, adresses et état du CPU pendant l'exécution.
- Opérande
- Le ou les arguments d'une instruction assembleur — les registres, adresses mémoire ou valeurs immédiates sur lesquels elle agit.
- Mnémonique
- Le nom court et lisible par l'humain d'une instruction CPU, comme MOV, PUSH ou CALL, utilisé en langage assembleur.
- Registre RDX
- RDX est le registre de données 64 bits de x86-64, un registre d'argument qui contient aussi la moitié haute des résultats de mul et de div.
- Opcode
- Le ou les octets numériques en code machine qui identifient l'opération que le CPU doit exécuter.
- Débogueur
- Un outil qui permet à un analyste de suspendre, inspecter et modifier un processus en cours d'exécution — la pierre angulaire de l'analyse dynamique.
- Décompilateur
- Un outil qui tente de reconstruire du code source de haut niveau (C, pseudocode) à partir du code machine binaire compilé.
- Registre RCX
- RCX est le registre compteur 64 bits de x86-64, utilisé pour les comptes de boucle et de décalage et pour passer des arguments dans les deux ABI majeures.
- Désassembleur
- Un outil qui reconvertit le code machine binaire brut en mnémoniques de langage assembleur lisibles par un humain.
- Registre RBX
- RBX est un registre général 64 bits de x86-64, traditionnellement un pointeur de base, sauvegardé par l'appelé et préservé à travers les appels.
- Registre RAX
- RAX est l'accumulateur 64 bits de x86-64, qui contient les valeurs de retour de fonction et l'opérande implicite de nombreuses instructions arithmétiques.