Desmontador de Bytecode Lua
Desmonte o bytecode Lua 5.1 compilado (arquivos .luac) para inspecionar instruções de máquinas virtuais, protótipos de funções, constantes e variáveis locais. Carregue um arquivo .luac ou cole seu dump hexadecimal para obter uma desmontagem totalmente estruturada com árvore de funções navegável e decodificação detalhada de opcode. Todo o processamento é local e privado.
No bytecode loaded
Upload a compiled .luac file or paste its hex dump to begin disassembly
Por que usar nosso desmontador de bytecode Lua?
- Análise de bytecode Lua 5.1: analisa e desmonta bytecode compilado Lua 5.1 (arquivos .luac) com suporte completo para todos os 38 opcodes, modos de instrução ABC/ABx/AsBx e decodificação adequada de constantes, upvalues, locais e informações de número de linha.
- Árvore de funções aninhadas: explore a hierarquia completa do protótipo de função com uma visualização de árvore interativa. Navegue entre fechamentos aninhados, visualize listagens de instruções por função e faça uma busca detalhada nas funções filhas com um clique.
- Decodificação detalhada de instruções: Cada instrução é totalmente decodificada com hexadecimal bruto, nome do opcode, operandos de registro e um comentário legível explicando seu efeito. O destaque especial para instruções de retorno e chamada posterior facilita o acompanhamento do fluxo de controle.
- Processamento 100% local do navegador: toda a análise e desmontagem de bytecode acontece inteiramente no seu navegador. Seus arquivos .luac e dumps hexadecimais nunca saem do seu dispositivo. Não há uploads para nenhum servidor, não é necessária inscrição e não há limites de uso. Livre para sempre.
Casos de uso comuns para desmontador de bytecode Lua
- Aplicações Lua de Engenharia Reversa: Desmonte scripts Lua compilados de jogos, sistemas embarcados e aplicativos para entender sua lógica. O desmontador de bytecode revela as instruções exatas e o fluxo de controle, ajudando você a analisar código Lua proprietário ou ofuscado.
- Aprendendo os aspectos internos da máquina virtual Lua: Use o desmontador como uma ferramenta educacional para entender como a VM Lua executa o código. Veja como construções Lua de alto nível, como loops, chamadas de função, encerramentos e operações de tabela, são traduzidas em instruções de bytecode.
- Auditoria de segurança e análise de malware: analise scripts Lua compilados em busca de comportamento malicioso. Desmonte arquivos .luac potencialmente prejudiciais para inspecionar suas instruções, detectar strings constantes suspeitas e compreender todo o escopo da lógica incorporada sem executá-la.
- Verificação do ofuscador Lua: teste a eficácia das ferramentas de ofuscação Lua desmontando a saída. Verifique se a renomeação de variáveis, a codificação de string e a ofuscação do fluxo de controle estão aplicadas corretamente ao nível do bytecode, não apenas ao nível da origem.
- Pesquisa de desenvolvimento de compiladores e linguagens: compare a saída de bytecode de diferentes compiladores e versões Lua. Entenda as decisões de otimização, a seleção de instruções e como diferentes construções Lua são compiladas de maneira diferente nas versões 5.1 a 5.3.
- Recuperação e documentação de código legado: recupere a compreensão de módulos Lua não documentados ou arquivados desmontando seus formulários compilados. A listagem detalhada de instruções, tabelas constantes e informações de variáveis locais ajudam a reconstruir a semântica do código original.
O que é a desmontagem do Bytecode Lua?
A desmontagem do bytecode Lua é o processo de conversão do bytecode Lua compilado (arquivos .luac) de volta em uma sequência legível de instruções de máquina virtual. Quando você compila um script Lua com luac ou o executa por meio de um interpretador Lua, o código-fonte é traduzido em um formato de bytecode intermediário que a VM Lua executa. A desmontagem inverte esse formato compilado para revelar as instruções exatas, constantes, valores positivos e protótipos de funções que compõem o programa compilado, sem exigir acesso ao código-fonte original.
Como funciona nosso desmontador de bytecode Lua
- Entrada: carregue um arquivo .luac compilado ou cole sua representação hexadecimal no painel de entrada. A ferramenta aceita o formato de bytecode Lua 5.1, que é a versão mais amplamente suportada para análise de bytecode e engenharia reversa de scripts Lua compilados.
- Análise: O desmontador lê o cabeçalho binário para verificar a assinatura, a versão, o endianismo e os tamanhos dos tipos de dados. Em seguida, ele analisa recursivamente todos os protótipos de função, decodificando cada instrução de 32 bits em seu opcode e operandos (A, B, C, Bx ou sBx dependendo do modo de instrução).
- Saída: A saída estruturada mostra as informações do cabeçalho, uma árvore de funções navegáveis, protótipos detalhados por função (parâmetros, tamanho da pilha, status vararg), uma lista completa de instruções com comentários, uma tabela de constantes e escopos de variáveis locais.
O que é exibido durante a desmontagem
- Informações do cabeçalho: assinatura de bytecode, versão Lua, endianness e tamanhos de tipo de dados (int, size_t, instrução, número) que descrevem o formato de bytecode.
- Árvore de funções: uma visão hierárquica de todos os protótipos de funções no arquivo de bytecode, com intervalos de linhas e contagens de instruções para navegação rápida entre fechamentos aninhados.
- Listagem de instruções: cada instrução mostra seu deslocamento de endereço, valor hexadecimal bruto, nome do opcode (MOVE, LOADK, ADD, CALL, etc.), desmontagem decodificada com referências de registro/constantes e um comentário em inglês simples explicando a operação.
- Tabelas de constantes e locais: todos os valores constantes (números, strings, booleanos, nil) usados pela função, além de escopos de variáveis locais com suas posições de contador de início e fim do programa.
Privacidade, segurança e disponibilidade
Sua privacidade está totalmente protegida. Todo o processamento de desmontagem de bytecode Lua acontece inteiramente dentro do seu navegador usando JavaScript - nenhum dado de bytecode é carregado em qualquer servidor, armazenado, registrado ou compartilhado. A ferramenta não requer criação de conta, inscrição e não impõe limites de tamanho de arquivo. É totalmente gratuito, sem níveis premium, limites de uso ou cobranças ocultas. Você pode usá-lo quantas vezes for necessário para pesquisa de segurança, engenharia reversa, educação ou qualquer outra finalidade.
Perguntas frequentes
Um desmontador de bytecode Lua é uma ferramenta que converte bytecode Lua compilado (arquivos .luac) em uma sequência legível de instruções de máquina virtual. Ele mostra os opcodes exatos, operandos de registro, constantes e protótipos de funções que a VM Lua executa, permitindo que você entenda a versão compilada de um script Lua sem acesso ao código-fonte original.
O desmontador suporta totalmente o formato de bytecode Lua 5.1, que é a versão mais amplamente descompilada e analisada. Lua 5.1 possui 38 opcodes cobrindo todas as operações comuns como movimentos, aritmética, acesso a tabelas, chamadas de função, loops e fechamentos. O analisador valida a assinatura e a versão do bytecode e reportará um erro para versões não suportadas.
Você pode fazer upload de um arquivo .luac diretamente usando o botão de upload ou colar um dump hexadecimal do bytecode na área de texto. A ferramenta analisará automaticamente os dados binários e exibirá a desmontagem estruturada. Para dumps hexadecimais, a entrada deve ser uma string hexadecimal simples com espaços opcionais ou quebras de linha entre bytes.
Sim. O painel da árvore de funções mostra todos os protótipos de funções no arquivo de bytecode, incluindo encerramentos aninhados. Clique em qualquer função na árvore para mudar a listagem de instruções e a tabela de constantes para essa função. Isso é especialmente útil para analisar código Lua ofuscado que usa vários fechamentos aninhados.
A saída inclui o cabeçalho de bytecode (assinatura, versão, endianness, tamanhos de dados), uma árvore de funções com todos os protótipos, detalhes por função (parâmetros, tamanho da pilha, status vararg), uma lista completa de instruções com hexadecimal bruto, nomes de opcode, operandos decodificados e comentários, uma tabela de constantes com todos os valores de número/string/booleano/nulo e uma tabela de variáveis locais com informações de escopo.
Lua 5.1 usa três modos de codificação de instruções. O modo ABC codifica três operandos: A (registro de destino de 8 bits), B (registro de origem de 9 bits ou índice constante) e C (segunda fonte de 9 bits ou opções). O modo ABx codifica A e um operando Bx combinado (18 bits) usado para índices maiores na tabela de constantes. O modo AsBx é uma variante assinada de ABx usada para deslocamentos de salto nas instruções JMP, FORLOOP e FORPREP.
Absolutamente. Toda a análise e desmontagem de bytecode acontece inteiramente no seu navegador usando JavaScript. Seus arquivos .luac e dumps hexadecimais nunca saem do seu dispositivo e nunca são enviados para nenhum servidor. Nenhuma conta é necessária, nenhum dado é armazenado e nenhum rastreamento ocorre. Isso torna a ferramenta segura para analisar scripts Lua compilados proprietários ou confidenciais.
O bytecode Lua ofuscado pode mostrar padrões incomuns, como strings constantes excessivamente longas (suspeitas de cargas codificadas), um grande número de fechamentos aninhados, instruções MOVE redundantes, uso intenso de GETUPVAL/SETUPVAL para acesso indireto a variáveis ou fluxo de controle opaco com muitas instruções JMP. O desmontador ajuda a identificar esses padrões mostrando a sequência completa de instruções.
Sim, 100% grátis. Não há inscrição, nível premium, limites de uso e limites de tamanho de arquivo. A ferramenta funciona inteiramente no seu navegador e sempre será gratuita para uso no Aback Tools.