2017-12-05 19 views
0

私はちょうど学習の目的のためのLuaスクリプトのいずれかをコンパイルしようとしている、と私は、元のコードは、しかし、コードは以下のように難読化されたました:Luaの難読化問題

local L0_0, L1_1, L2_2, L3_3, L4_4, L5_5, L6_6, L7_7, L8_8, L9_9, L10_10, L11_11, L12_12, L13_13, L14_14, L15_15, L16_16, L17_17, L18_18, L19_19, L20_20, L21_21, L22_22, L23_23, L24_24, L25_25, L26_26, L27_27, L28_28, L29_29 
L0_0 = require 
L1_1 = "comm.NetworkClock" 
L0_0 = L0_0(L1_1) 
L1_1 = require 
L2_2 = "comm_ads.fullscreenAds" 
L1_1 = L1_1(L2_2) 
L2_2 = require 
L15_15 = L14_14.init 
L15_15() 
L15_15 = L4_4.log 
L16_16 = "IN main" 
L15_15(L16_16) 
function L15_15() 
    local L0_30, L1_31 
end 
print = L15_15 

は、これらのコードを回復する方法はあります元のものに到達しますか?

+0

コードがあまり意味を持たなくてもエラーが発生しても、 – Piglet

+0

はい、コードのスナップショットを追加しただけであるため、すべてのファイルではありません。 – MobTech

答えて

2

ソースに戻ることができますか?いいえ、そうではありません。

ソースコードは人間が読むことができるように最適化されています。バイトコードは、マシンによって読み込まれるように最適化されています。通常、コンパイルすると、元のソースを復元するために必要な情報が失われる一方向変換が行われます。

今のところ、手で簡略化することと、変数や関数が実際に何を識別したのかを一度見つけたら、&の置換えを置き換えることです。

逆コンパイルされたソースコードを人間が読めるように単純化するためのツールを見つけた(またはビルドした)場合は、元のソースコードをそのまま再現することはできません。