Close
    Search Search

    bytecode

    bytecode
    DiscontinuedCet article concerne une fonctionnalité abandonnée.

    bytecode est un ensemble d'instructions lisibles par machine : c'est ce que l'ordinateur exécute, après la compilation du code écrit dans un langage de programmation.


    Dans le cas de ROBLOX Lua, les utilisateurs pouvaient auparavant charger le bytecode Lua brut à l'aide de la fonction loadstring, et il était souvent utilisé à deux fins :

    • Obfuscation du code, pour éviter la modification d'un script - aidant particulièrement à éviter la copie de modèle
    • Scripts malveillants qui utiliseraient des failles dans l'algorithme de vérification pour effectuer des choses qu'ils ne devraient pas être en mesure de faire normalement

    Le bytecode a été supprimé de ROBLOX le 3 août 2012[1] en raison des divers problèmes de sécurité qu'il impliquait et parce qu'il n'aurait pas dû être autorisé en premier lieu. On sait que des endroits populaires, tels que les galions de Wingman8, ont été laissés en panne à cause de l'utilisation du bytecode comme méthode d'obscurcissement. Les galions ont été fixés en janvier 2020.


    Utilisation

    Comme exemple de bytecode et de chargement de celui-ci, considérons le script "hello world" suivant :

    print("Bonjour tout le monde!")

    Ce qui donnerait le bytecode suivant, représenté par un vidage hexadécimal pour plus de lisibilité :


    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 = Espace de travail. Script 00000020 74 00 01 00 00 00 03 00 00 00 00 00 00 02 04 00 t.................. 00000030 00 00 05 00 00 00 41 40 00 00 1C 40 00 01 1E 00 ......A@...@.... 00000040 80 00 02 00 00 00 04 06 00 00 00 70 72 69 6E 74 € .........impression 00000050 00 04 0C 00 00 00 48 65 6C 6C 6F 20 57 6F 72 6C ......Bonjour Monde 00000060 64 00 00 00 00 00 04 00 00 00 02 00 00 00 02 00 d........... .... 00000070 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 ................ 00000080 00 00 ..


    Ce bytecode, avant la suppression du bytecode mentionné ci-dessus, pourrait être chargé dans un script RBX.Lua standard de cette façon :


    loadstring('27761179781

    ajouter un commentaire de bytecode
    Commentaire envoyé avec succès ! Nous l'examinerons dans les prochaines heures.

    End of content

    No more pages to load