Close
    Search Search

    Bytecode

    Bytecode
    Descontinuado Este artigo é sobre um recurso descontinuado.

    Bytecode é um conjunto de instruções legíveis por máquina: é o que o computador executa, depois que o código escrito em uma linguagem de programação é compilado.


    No caso de ROBLOX Lua, os usuários costumavam ser capazes de carregar bytecode Lua bruto usando a função loadstring, e muitas vezes era usado para um de dois propósitos:

    • Ofuscando o código, para evitar a modificação de um script - ajudando principalmente a evitar a cópia do modelo
    • Scripts maliciosos que usariam falhas no algoritmo de verificação para realizar coisas que não deveriam ser capazes de fazer normalmente

    Bytecode foi removido do ROBLOX em 3 de agosto de 2012, [1] devido aos vários problemas de segurança que implicava e porque não deveria ter sido permitido em primeiro lugar. Sabe-se que lugares populares, como os galeões de Wingman8, foram deixados de lado por usarem bytecode como método de ofuscação. Os galeões foram corrigidos em janeiro de 2020.


    Uso

    Como um exemplo de bytecode e carregamento dele, considere o seguinte script "hello world":

    imprimir ("Olá, mundo!")

    Que produziria o seguinte bytecode, representado como um hex dump para legibilidade:


    00000000 1B 4C 75 61 51 00 01 04 04 04 08 00 12 00 00 00 .LuaQ ........... 00000010 3D 57 6F 72 6B 73 70 61 63 65 2E 53 63 72 69 70 = Espaço de trabalho. Scrip 00000020 74 00 01 00 00 00 03 00 00 00 00 00 00 02 04 00 00000030 t ............... 00 00 05 00 00 00 41 40 00 00 1 40C 00 01 1 00E 00000040 ...... A @ ... @ .... 80 00 02 00 00 00 04 06 00 00 00 70 72 69 6 74E 00000050 € .......... imprimir 00 04 0 00C 00 00 48 65 6 6C 6C 20C 57F 6 72 6F 00000060 64C ...... Olá Worl 00 00 00 00 00 04 00 00 00 02 00 00 00 02 00 00000070 00 00 d ........... .... 02 00 00 00 03 00 00 00 00 00 00 00 00 00 00000080 00 00 ................ XNUMX XNUMX XNUMX ..


    Este bytecode, antes da remoção do bytecode mencionado acima, poderia ser carregado em um script RBX.Lua padrão desta forma:


    loadstring ('27761179781

    Adicione um comentário do Bytecode
    Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.