Désassembleur de bytecode Lua
Démontez le bytecode Lua 5.1 compilé (fichiers .luac) pour inspecter les instructions de la machine virtuelle, les prototypes de fonctions, les constantes et les variables locales. Téléchargez un fichier .luac ou collez son dump hexadécimal pour obtenir un démontage structuré complet avec une arborescence de fonctions navigable et un décodage détaillé des opcodes. Tout le traitement est local et privé.
No bytecode loaded
Upload a compiled .luac file or paste its hex dump to begin disassembly
Pourquoi utiliser notre désassembleur de bytecode Lua ?
- Analyse du bytecode Lua 5.1 : analysez et désassemblez le bytecode compilé Lua 5.1 (fichiers .luac) avec une prise en charge complète des 38 opcodes, des modes d'instruction ABC/ABx/AsBx et un décodage approprié des constantes, des valeurs positives, des informations locales et des numéros de ligne.
- Arbre de fonctions imbriqué : explorez la hiérarchie complète des prototypes de fonctions avec une arborescence interactive. Naviguez entre les fermetures imbriquées, affichez les listes d'instructions par fonction et explorez les fonctions enfants en un seul clic.
- Décodage détaillé des instructions : chaque instruction est entièrement décodée avec l'hexadécimal brut, le nom de l'opcode, les opérandes de registre et un commentaire lisible par l'homme expliquant son effet. Une mise en évidence spéciale des instructions de retour et d'appel final rend le flux de contrôle facile à suivre.
- Traitement 100 % local du navigateur : toute l'analyse et le démontage du bytecode s'effectuent entièrement dans votre navigateur. Vos fichiers .luac et vos dumps hexadécimaux ne quittent jamais votre appareil. Aucun téléchargement sur aucun serveur, aucune inscription requise et aucune limite d'utilisation. Libre pour toujours.
Cas d'utilisation courants du désassembleur de bytecode Lua
- Ingénierie inverse des applications Lua : désassemblez les scripts Lua compilés des jeux, des systèmes embarqués et des applications pour comprendre leur logique. Le désassembleur de bytecode révèle les instructions exactes et le flux de contrôle, vous aidant à analyser le code Lua propriétaire ou obscurci.
- Apprentissage des composants internes de la machine virtuelle Lua : utilisez le désassembleur comme outil pédagogique pour comprendre comment la machine virtuelle Lua exécute le code. Découvrez comment les constructions Lua de haut niveau telles que les boucles, les appels de fonction, les fermetures et les opérations de table se traduisent en instructions de bytecode.
- Audit de sécurité et analyse des logiciels malveillants : analysez les scripts Lua compilés à la recherche de comportements malveillants. Démontez les fichiers .luac potentiellement dangereux pour inspecter leurs instructions, détecter les chaînes constantes suspectes et comprendre toute la portée de la logique intégrée sans l'exécuter.
- Vérification de Lua Obfuscator : testez l'efficacité des outils d'obscurcissement Lua en démontant la sortie. Vérifiez que le renommage des variables, le codage des chaînes et l’obscurcissement du flux de contrôle sont correctement appliqués au niveau du bytecode, et pas seulement au niveau source.
- Recherche sur le compilateur et le développement du langage : comparez la sortie de bytecode de différents compilateurs et versions Lua. Comprenez les décisions d'optimisation, la sélection des instructions et la façon dont les différentes constructions Lua se compilent différemment entre les versions 5.1 à 5.3.
- Récupération et documentation du code hérité : récupérez la compréhension des modules Lua non documentés ou archivés en désassemblant leurs formulaires compilés. La liste détaillée des instructions, les tables de constantes et les informations sur les variables locales aident à reconstruire la sémantique du code d'origine.
Qu’est-ce que le désassemblage du bytecode Lua ?
Le désassemblage du bytecode Lua est le processus de reconversion du bytecode Lua compilé (fichiers .luac) en une séquence lisible par l'homme d'instructions de machine virtuelle. Lorsque vous compilez un script Lua avec luac ou que vous l'exécutez via un interpréteur Lua, le code source est traduit dans un format de bytecode intermédiaire que la machine virtuelle Lua exécute. Le désassemblage inverse ce format compilé pour révéler les instructions exactes, les constantes, les valeurs positives et les prototypes de fonctions qui composent le programme compilé, sans nécessiter l'accès au code source d'origine.
Comment fonctionne notre désassembleur de bytecode Lua
- Entrée : téléchargez un fichier .luac compilé ou collez sa représentation hexadécimale dans le panneau de saisie. L'outil accepte le format de bytecode Lua 5.1, qui est la version la plus largement prise en charge pour l'analyse de bytecode et l'ingénierie inverse des scripts Lua compilés.
- Analyse : le désassembleur lit l'en-tête binaire pour vérifier la signature, la version, le boutisme et la taille du type de données. Il analyse ensuite de manière récursive tous les prototypes de fonctions, décodant chaque instruction de 32 bits en son opcode et ses opérandes (A, B, C, Bx ou sBx selon le mode d'instruction).
- Sortie : la sortie structurée affiche les informations d'en-tête, une arborescence de fonctions navigable, des prototypes détaillés par fonction (paramètres, taille de la pile, état vararg), une liste complète d'instructions avec des commentaires, un tableau de constantes et des portées de variables locales.
Ce qui s'affiche lors du démontage
- Informations d'en-tête : signature du bytecode, version Lua, endianité et tailles des types de données (int, size_t, instruction, number) qui décrivent le format du bytecode.
- Arbre des fonctions : une vue hiérarchique de tous les prototypes de fonctions dans le fichier de bytecode, avec des plages de lignes et le nombre d'instructions pour une navigation rapide entre les fermetures imbriquées.
- Liste des instructions : chaque instruction affiche son décalage d'adresse, sa valeur hexadécimale brute, son nom d'opcode (MOVE, LOADK, ADD, CALL, etc.), son démontage décodé avec des références de registre/constante et un commentaire en anglais simple expliquant l'opération.
- Tableaux de constantes et de valeurs locales : toutes les valeurs constantes (nombres, chaînes, booléens, nuls) utilisées par la fonction, ainsi que les portées des variables locales avec leurs positions de compteur de début et de fin de programme.
Confidentialité, sécurité et disponibilité
Votre vie privée est entièrement protégée. Tout le traitement de désassemblage du bytecode Lua s'effectue entièrement dans votre navigateur à l'aide de JavaScript : aucune donnée de bytecode n'est jamais téléchargée sur un serveur, stockée, enregistrée ou partagée. L'outil ne nécessite aucune création de compte, aucune inscription et n'impose aucune limite de taille de fichier. Il est entièrement gratuit, sans niveaux premium, plafonds d'utilisation ou frais cachés. Vous pouvez l'utiliser aussi souvent que nécessaire pour la recherche en sécurité, l'ingénierie inverse, l'éducation ou à toute autre fin.
Foire aux questions
Un désassembleur de bytecode Lua est un outil qui convertit le bytecode Lua compilé (fichiers .luac) en une séquence lisible par l'homme d'instructions de machine virtuelle. Il affiche les opcodes exacts, les opérandes de registre, les constantes et les prototypes de fonction que la machine virtuelle Lua exécute, vous permettant de comprendre la version compilée d'un script Lua sans accéder au code source d'origine.
Le désassembleur prend entièrement en charge le format de bytecode Lua 5.1, qui est la version la plus largement décompilée et analysée. Lua 5.1 dispose de 38 opcodes couvrant toutes les opérations courantes telles que les déplacements, l'arithmétique, l'accès aux tables, les appels de fonctions, les boucles et les fermetures. L'analyseur valide la signature et la version du bytecode et signalera une erreur pour les versions non prises en charge.
Vous pouvez télécharger un fichier .luac directement à l'aide du bouton de téléchargement, ou vous pouvez coller un vidage hexadécimal du bytecode dans la zone de texte. L'outil analysera automatiquement les données binaires et affichera le démontage structuré. Pour les dumps hexadécimaux, l'entrée doit être une chaîne hexadécimale simple avec des espaces ou des sauts de ligne facultatifs entre les octets.
Oui. Le panneau de l'arborescence des fonctions affiche tous les prototypes de fonctions dans le fichier de bytecode, y compris les fermetures imbriquées. Cliquez sur n’importe quelle fonction de l’arborescence pour basculer la liste d’instructions et la table des constantes vers cette fonction. Ceci est particulièrement utile pour analyser le code Lua obscurci qui utilise plusieurs fermetures imbriquées.
La sortie comprend l'en-tête du bytecode (signature, version, endianité, tailles des données), une arborescence de fonctions avec tous les prototypes, des détails par fonction (paramètres, taille de la pile, statut vararg), une liste complète d'instructions avec hexadécimal brut, noms d'opcode, opérandes décodés et commentaires, une table de constantes avec toutes les valeurs numériques/chaînes/booléennes/nil et une table de variables locales avec des informations sur la portée.
Lua 5.1 utilise trois modes de codage d'instructions. Le mode ABC code trois opérandes : A (registre de destination 8 bits), B (registre source 9 bits ou index constant) et C (seconde source ou options 9 bits). Le mode ABx code A et un opérande Bx combiné (18 bits) utilisés pour des indices plus grands dans la table des constantes. Le mode AsBx est une variante signée d'ABx utilisée pour les décalages de saut dans les instructions JMP, FORLOOP et FORPREP.
Absolument. Toutes les analyses et désassemblages de bytecode s'effectuent entièrement dans votre navigateur à l'aide de JavaScript. Vos fichiers .luac et vos dumps hexadécimaux ne quittent jamais votre appareil et ne sont jamais envoyés à aucun serveur. Aucun compte n'est requis, aucune donnée n'est stockée et aucun suivi n'a lieu. Cela rend l'outil sûr pour analyser les scripts Lua compilés propriétaires ou sensibles.
Le bytecode Lua obscurci peut montrer des modèles inhabituels comme des chaînes constantes excessivement longues (charges utiles codées suspectées), un nombre élevé de fermetures imbriquées, des instructions MOVE redondantes, une utilisation intensive de GETUPVAL/SETUPVAL pour un accès indirect aux variables ou un flux de contrôle opaque avec de nombreuses instructions JMP. Le désassembleur aide à repérer ces modèles en affichant la séquence d'instructions complète.
Oui, 100% gratuit. Il n'y a pas d'inscription, pas de niveau premium, pas de limites d'utilisation et pas de limite de taille de fichier. L'outil fonctionne entièrement dans votre navigateur et sera toujours libre d'utilisation sur Aback Tools.