Analyseur de Callbacks TLS
Analysez et examinez les callbacks TLS (Thread Local Storage) des fichiers PE. Les callbacks TLS s'exécutent avant le point d'entrée du programme et sont couramment utilisés par les packers, les protecteurs et les malwares à des fins d'anti-débogage, d'anti-VM et d'initialisation. Importez un fichier .exe, .dll ou .sys ou collez des données hexadécimales pour une analyse instantanée. Tout le traitement est local et confidentiel.
Upload a PE file (.exe, .dll, .sys) or paste hex data to analyze TLS callbacks. The analyzer parses PE headers, extracts the TLS directory, and displays callback addresses.
Pourquoi utiliser notre analyseur de callbacks TLS ?
- Analyse de l'en-tête PE et du répertoire TLS : l'analyseur de callbacks TLS analyse toute la structure du fichier PE, y compris l'en-tête DOS, l'en-tête COFF, l'en-tête optionnel et tous les en-têtes de section. Il extrait spécifiquement l'entrée du répertoire TLS (index 4 du répertoire de données) pour trouver et décoder les adresses de callback TLS qui s'exécutent avant le point d'entrée du programme.
- Analyse approfondie des adresses de callback : chaque adresse de callback TLS est extraite du tableau de callbacks et affichée avec ses octets bruts, son adresse virtuelle relative (RVA) et la section qui la contient. L'analyseur identifie la section dans laquelle réside chaque callback (.text, .tls, etc.) et met en évidence les mappages inhabituels pouvant indiquer l'activité d'un packer.
- Vue complète de la structure PE : consultez la structure complète du fichier PE, notamment l'architecture machine, l'adresse du point d'entrée, la base d'image, le nombre de sections, les caractéristiques des sections (CODE, INIT_DATA, EXECUTE, READ, WRITE) et un aperçu hexadécimal brut des 512 premiers octets. Cette vue d'ensemble aide les analystes à comprendre la disposition du binaire.
- 100 % confidentiel, aucun envoi de données : toute l'analyse des callbacks TLS se fait localement dans votre navigateur avec JavaScript. Vos fichiers PE et données hexadécimales ne quittent jamais votre appareil. Aucun compte requis, aucun suivi, aucune donnée stockée. L'analyseur prend en charge l'import de fichiers et le collage hexadécimal pour une flexibilité totale.
Cas d'usage courants de l'analyseur de callbacks TLS
- Détection des packers et protecteurs : les analystes de sécurité utilisent l'analyse des callbacks TLS pour détecter les exécutables packés ou protégés. Les packers installent souvent des callbacks TLS pour déchiffrer ou décompresser le code original avant l'exécution du point d'entrée. Trouver des callbacks TLS dans un binaire est un fort indice de pack ou de protection.
- Analyse de l'initialisation des malwares : les malwares utilisent fréquemment des callbacks TLS pour exécuter du code d'initialisation, masquer des processus, vérifier la présence de débogueurs ou effectuer une détection d'environnement avant l'exécution de la logique principale. Détecter et analyser ces callbacks révèle la phase de configuration du malware et ses techniques d'anti-analyse.
- Détection anti-débogage et anti-VM : les callbacks TLS servent couramment à implémenter des vérifications anti-débogage et anti-VM. Comme les callbacks s'exécutent avant le point d'entrée, les débogueurs qui s'attachent au point d'entrée manquent cette initialisation. Notre analyseur aide à identifier les binaires susceptibles d'utiliser cette technique.
- Préparation à l'ingénierie inverse : avant de faire de l'ingénierie inverse sur un binaire, les analystes doivent vérifier la présence de callbacks TLS pour comprendre le flux d'exécution complet. Les ignorer peut conduire à une analyse erronée, car ils peuvent mettre en place un déchiffrement, modifier les tables d'importation ou altérer le code analysé.
- Analyse de la protection logicielle : les protecteurs commerciaux (Themida, VMProtect, Enigma, Obsidium) utilisent des callbacks TLS dans leur chaîne de protection. Identifier les callbacks TLS aide à déterminer quel protecteur a été utilisé et à comprendre les couches de protection appliquées à un binaire.
- Formation au format de fichier PE : les étudiants qui apprennent le format PE peuvent utiliser l'analyseur de callbacks TLS pour explorer une structure PE réelle. L'outil visualise toute la chaîne d'en-têtes, de la signature DOS aux répertoires de données de l'en-tête optionnel jusqu'aux tables de sections, rendant le format PE concret et interactif.
Que sont les callbacks TLS ?
Les callbacks TLS (Thread Local Storage) sont des pointeurs de fonction stockés dans le répertoire TLS d'un fichier PE que le système d'exploitation exécute avant le point d'entrée du programme ( main ou WinMain ). Conçus à l'origine pour initialiser les variables de stockage local de chaque thread, ils ont été détournés par les auteurs de packers, de protecteurs et de malwares pour exécuter du code d'initialisation avant que le débogueur ou l'analyste ne puisse l'intercepter. Chaque callback est un pointeur de fonction stocké dans un tableau terminé par un nul au sein de la structure du répertoire TLS.
Comment fonctionne l'analyseur de callbacks TLS
- Importez ou collez un fichier PE : glissez-déposez un fichier .exe, .dll ou .sys, ou collez les données binaires sous forme de chaîne hexadécimale. L'analyseur lit les octets bruts et valide l'en-tête MZ et la signature PE.
- Analysez les en-têtes PE : l'analyseur extrait l'en-tête DOS, l'en-tête COFF, l'en-tête optionnel (PE32 ou PE32+), les 16 répertoires de données et la table des sections. Il localise spécifiquement l'entrée du répertoire TLS (index 4 du répertoire de données) et résout sa RVA en décalage de fichier.
- Extrayez les adresses de callback : depuis le répertoire TLS, l'analyseur lit le pointeur du tableau de callbacks, le suit jusqu'aux données du fichier et lit chaque pointeur de fonction de 4 octets (PE32) ou 8 octets (PE32+) jusqu'au terminateur nul. Chaque adresse est affichée avec sa RVA, ses octets bruts et la section qui la contient - le tout dans votre navigateur, sans envoi à un serveur.
Techniques courantes des callbacks TLS
- Initialisation des packers : des packers comme UPX, ASPack et MPRESS utilisent des callbacks TLS pour déchiffrer ou décompresser le code exécutable original avant l'exécution du point d'entrée, rendant le dépaquetage à l'exécution transparent pour le processus.
- Vérifications anti-débogage : les callbacks TLS peuvent détecter la présence d'un débogueur via NtQueryInformationProcess , IsDebuggerPresent ou des attaques temporelles avant même l'exécution du code principal, ce qui les rend efficaces contre les débogueurs qui s'attachent au point d'entrée.
- Détection de l'environnement : les malwares et les protecteurs utilisent des callbacks TLS pour détecter les machines virtuelles, les sandboxes ou les environnements d'analyse en vérifiant les propriétés matérielles, les noms de processus ou les artefacts système avant qu'un outil d'analyse ne puisse intercepter ces vérifications.
- Modification de la table d'importation : certains protecteurs utilisent des callbacks TLS pour résoudre ou modifier dynamiquement les adresses d'importation, masquant les véritables dépendances du binaire aux outils d'analyse statique qui n'inspectent que la table d'importation.
Confidentialité, sécurité et notes d'utilisation
L'analyseur de callbacks TLS traite toutes les données entièrement dans votre navigateur avec JavaScript. Aucun fichier PE ni donnée hexadécimale n'est jamais envoyé à un serveur, stocké dans une base de données ou partagé avec un tiers. Il n'y a aucune limite de taille de fichier au-delà de la mémoire disponible de votre navigateur. Le fichier PE d'exemple inclus est un binaire synthétique minimal avec des callbacks TLS artificiels à but pédagogique - ce n'est pas un véritable exécutable et il ne peut pas s'exécuter. Analysez toujours les binaires inconnus dans un environnement isolé et avec les précautions nécessaires.
Foire aux questions
Les callbacks TLS (Thread Local Storage) sont des pointeurs de fonction dans l'en-tête du fichier PE qui s'exécutent automatiquement avant le point d'entrée du programme. Ils sont importants car ils s'exécutent avant que les débogueurs et les outils d'analyse ne s'attachent habituellement, ce qui en fait une technique d'anti-analyse clé utilisée par les packers, les protecteurs et les malwares.
Le point d'entrée est le premier code exécuté au démarrage d'un programme. Les callbacks TLS s'exécutent avant le point d'entrée : le système d'exploitation appelle chaque callback avant de transférer le contrôle. Les callbacks TLS peuvent donc mettre en place un déchiffrement, vérifier la présence de débogueurs ou modifier l'état du programme avant le début du code principal.
Les callbacks TLS sont utilisés par des protecteurs commerciaux comme Themida, VMProtect, Enigma Protector et Obsidium. Des packers open source comme UPX et ASPack les utilisent également. Des familles de malwares comme TrickBot et Dridex ont recours aux callbacks TLS pour leur initialisation anti-analyse.
Oui, l'analyseur prend entièrement en charge les formats PE32 (32 bits) et PE32+ (64 bits). Il détecte automatiquement la magie de l'en-tête optionnel et adapte l'analyse en conséquence, notamment en lisant des pointeurs de 8 octets pour PE32+ au lieu de pointeurs de 4 octets.
Des callbacks TLS pointant vers des sections non standard comme .tls ou .data peuvent indiquer l'activité d'un packer. L'analyseur identifie automatiquement la section contenant chaque callback et affiche ses caractéristiques pour mettre en évidence les mappages inhabituels.
L'analyseur analyse la structure PE pour trouver l'entrée du répertoire TLS à l'index 4 du répertoire de données, résout la RVA en décalage de fichier à l'aide de la table des sections, puis lit chaque pointeur de fonction dans le tableau de callbacks jusqu'au terminateur nul.
Oui, totalement. Toute l'analyse PE et l'analyse des callbacks TLS se font localement dans votre navigateur. Vos fichiers ou données hexadécimales ne quittent jamais votre appareil et ne sont jamais envoyés à un serveur. Aucun compte n'est requis et aucune donnée n'est stockée.
L'analyseur prend en charge deux modes d'entrée : l'import de fichier (.exe, .dll, .sys, .ocx, .scr, .cpl, .efi, .pe, .bin) et la saisie de texte hexadécimal. Vous pouvez aussi charger un binaire PE d'exemple pour explorer la sortie de l'outil avant d'analyser vos propres fichiers.
Le bouton Charger un PE d'exemple génère un binaire PE32 synthétique minimal avec un répertoire TLS et deux adresses de callback artificielles. Cet exemple est créé entièrement dans votre navigateur et n'est pas un véritable exécutable : il ne peut pas s'exécuter et ne contient aucun code exécutable.
Oui, 100 % gratuit, sans inscription, sans compte et sans limites d'utilisation. Toutes les fonctionnalités, y compris l'import de fichiers PE, la saisie hexadécimale, l'analyse complète du répertoire TLS, l'extraction des callbacks, la visionneuse de sections et l'aperçu hexadécimal, sont disponibles sans restriction.