如何解密LUA代码?

时间:2014-05-12 15:05:15

标签: encryption lua

我无法解决这个问题而我无法解密该代码,我找到了一些工具,但它们不适合我。

有人可以解密该代码吗?

loadstring('\27\76\117\97\81\0\1\4\4\4\8\0\16\0\0\0\64\116\111\66\121\116\101\67\111\100\101\46\108\117\97\0\2\0\0\0\20\0\0\0\0\0\0\3\11\0\0\0\5\0\0\0\6\64\64\0\65\128\0\0\164\0\0\0\28\64\128\1\5\192\0\0\6\64\64\0\65\0\1\0\164\64\0\0\28\64\128\1\30\0\128\0\5\0\0\0\4\19\0\0\0\69\102\102\101\99\116\77\101\115\115\97\103\101\80\114\111\120\121\0\4\10\0\0\0\79\110\82\101\99\101\105\118\101\0\4\11\0\0\0\68\105\99\101\69\102\102\101\99\116\0\4\17\0\0\0\76\111\99\97\108\83\112\101\101\99\104\80\114\111\120\121\0\4\11\0\0\0\83\97\121\67\97\116\99\104\101\114\0\2\0\0\0\0\0\0\0\4\0\0\0\11\0\0\0\0\5\0\9\17\0\0\0\69\1\0\0\70\65\192\2\128\1\128\0\197\129\0\0\198\193\192\3\220\129\128\0\1\2\1\0\213\1\130\3\92\129\128\1\90\1\0\0\22\0\1\128\133\65\1\0\134\129\65\3\193\193\1\0\12\2\194\2\156\65\128\1\30\0\128\0\9\0\0\0\4\7\0\0\0\115\116\114\105\110\103\0\4\6\0\0\0\109\97\116\99\104\0\4\5\0\0\0\83\101\108\102\0\4\5\0\0\0\78\97\109\101\0\4\16\0\0\0\32\114\111\108\108\101\100\32\97\32\40\46\43\41\46\0\4\7\0\0\0\83\105\103\110\97\108\0\4\5\0\0\0\83\101\110\100\0\4\11\0\0\0\68\105\99\101\82\111\108\108\101\100\0\3\0\0\0\0\0\0\0\0\0\0\0\0\17\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\6\0\0\0\7\0\0\0\7\0\0\0\8\0\0\0\8\0\0\0\8\0\0\0\8\0\0\0\8\0\0\0\11\0\0\0\6\0\0\0\7\0\0\0\115\105\103\110\97\108\0\0\0\0\0\16\0\0\0\8\0\0\0\109\101\115\115\97\103\101\0\0\0\0\0\16\0\0\0\2\0\0\0\120\0\0\0\0\0\16\0\0\0\2\0\0\0\121\0\0\0\0\0\16\0\0\0\2\0\0\0\122\0\0\0\0\0\16\0\0\0\14\0\0\0\82\111\108\108\101\100\95\78\117\109\98\101\114\0\9\0\0\0\16\0\0\0\0\0\0\0\0\0\0\0\14\0\0\0\18\0\0\0\0\5\0\8\8\0\0\0\69\1\0\0\70\65\192\2\129\129\0\0\202\129\0\0\201\129\128\129\201\1\1\130\92\65\128\1\30\0\128\0\5\0\0\0\4\7\0\0\0\83\105\103\110\97\108\0\4\5\0\0\0\83\101\110\100\0\4\11\0\0\0\65\110\97\108\121\122\101\83\97\121\0\4\9\0\0\0\99\114\101\97\116\117\114\101\0\4\8\0\0\0\109\101\115\115\97\103\101\0\0\0\0\0\8\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\16\0\0\0\18\0\0\0\5\0\0\0\6\0\0\0\112\114\111\120\121\0\0\0\0\0\7\0\0\0\6\0\0\0\109\116\121\112\101\0\0\0\0\0\7\0\0\0\8\0\0\0\115\112\101\97\107\101\114\0\0\0\0\0\7\0\0\0\6\0\0\0\108\101\118\101\108\0\0\0\0\0\7\0\0\0\5\0\0\0\116\101\120\116\0\0\0\0\0\7\0\0\0\0\0\0\0\11\0\0\0\4\0\0\0\4\0\0\0\4\0\0\0\11\0\0\0\4\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\18\0\0\0\14\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0')()

3 个答案:

答案 0 :(得分:1)

使用luadec

-- Decompiled using luadec 2.0.1 by sztupy (http://winmo.sztupy.hu)

EffectMessageProxy.OnReceive("DiceEffect",
   function(a0, a1, a2, a3, a4)
      local Rolled_Number = string.match(a1, Self.Name().." rolled a (.+).")
      if Rolled_Number then
         Signal.Send("DiceRolled", Rolled_Number + 0)
      end
   end
)
LocalSpeechProxy.OnReceive("SayCatcher",
   function(b0, b1, b2, b3, b4)
      Signal.Send("AnalyzeSay", {creature = b2, message = b4})
   end
)

答案 1 :(得分:0)

这是未加密的Lua代码:它是预编译的Lua代码。正如Sean所建议的那样,将字节保存到文件中。然后获取Lua 5.1,在32位计算机上构建它并在您保存的文件上运行luac -l。您将获得此列表,这不是Lua源代码,但可以帮助您在需要时重新构建它。

function <toByteCode.lua:2,20> (11 instructions, 44 bytes at 0x8c9dd00)
0 params, 3 slots, 0 upvalues, 0 locals, 5 constants, 2 functions
        1       [4]     GETGLOBAL       0 -1    ; EffectMessageProxy
        2       [4]     GETTABLE        0 0 -2  ; "OnReceive"
        3       [4]     LOADK           1 -3    ; "DiceEffect"
        4       [11]    CLOSURE         2 0     ; 0x8c9ded0
        5       [4]     CALL            0 3 1
        6       [14]    GETGLOBAL       0 -4    ; LocalSpeechProxy
        7       [14]    GETTABLE        0 0 -2  ; "OnReceive"
        8       [14]    LOADK           1 -5    ; "SayCatcher"
        9       [18]    CLOSURE         2 1     ; 0x8c9e228
        10      [14]    CALL            0 3 1
        11      [20]    RETURN          0 1

function <toByteCode.lua:4,11> (17 instructions, 68 bytes at 0x8c9ded0)
5 params, 9 slots, 0 upvalues, 6 locals, 9 constants, 0 functions
        1       [6]     GETGLOBAL       5 -1    ; string
        2       [6]     GETTABLE        5 5 -2  ; "match"
        3       [6]     MOVE            6 1
        4       [6]     GETGLOBAL       7 -3    ; Self
        5       [6]     GETTABLE        7 7 -4  ; "Name"
        6       [6]     CALL            7 1 2
        7       [6]     LOADK           8 -5    ; " rolled a (.+)."
        8       [6]     CONCAT          7 7 8
        9       [6]     CALL            5 3 2
        10      [7]     TEST            5 0 0
        11      [7]     JMP             5       ; to 17
        12      [8]     GETGLOBAL       6 -6    ; Signal
        13      [8]     GETTABLE        6 6 -7  ; "Send"
        14      [8]     LOADK           7 -8    ; "DiceRolled"
        15      [8]     ADD             8 5 -9  ; - 0
        16      [8]     CALL            6 3 1
        17      [11]    RETURN          0 1

function <toByteCode.lua:14,18> (8 instructions, 32 bytes at 0x8c9e228)
5 params, 8 slots, 0 upvalues, 5 locals, 5 constants, 0 functions
        1       [16]    GETGLOBAL       5 -1    ; Signal
        2       [16]    GETTABLE        5 5 -2  ; "Send"
        3       [16]    LOADK           6 -3    ; "AnalyzeSay"
        4       [16]    NEWTABLE        7 0 2
        5       [16]    SETTABLE        7 -4 2  ; "creature" -
        6       [16]    SETTABLE        7 -5 4  ; "message" -
        7       [16]    CALL            5 3 1
        8       [18]    RETURN          0 1

答案 2 :(得分:0)

关于此large bytecode

不幸的是,Luadec没有反编译这个字节码 但它successfully disassembled it

隐藏名称Tiusu Frontline。但没有隐藏得足够好:-)
在以下几行中,您可以看到形成字符串&#39; Tiusu Frontline&#39;来自相应字符的ascii值:

36865 [-]: LOADK     R6 K28       ; R6 := 84
36866 [-]: LOADK     R7 K29       ; R7 := 105
36867 [-]: LOADK     R8 K30       ; R8 := 117
36868 [-]: LOADK     R9 K31       ; R9 := 115
36869 [-]: LOADK     R10 K30      ; R10 := 117
36870 [-]: LOADK     R11 K32      ; R11 := 32
36871 [-]: LOADK     R12 K33      ; R12 := 70
36872 [-]: LOADK     R13 K34      ; R13 := 114
36873 [-]: LOADK     R14 K35      ; R14 := 111
36874 [-]: LOADK     R15 K36      ; R15 := 110
36875 [-]: LOADK     R16 K37      ; R16 := 116
36876 [-]: LOADK     R17 K38      ; R17 := 108
36877 [-]: LOADK     R18 K29      ; R18 := 105
36878 [-]: LOADK     R19 K36      ; R19 := 110
36879 [-]: LOADK     R20 K39      ; R20 := 101
36880 [-]: CALL      R5 16 2      ; R5 := R5(R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20)

在这个反汇编输出中有一些更相似的片段,它们使用相同的ascii代码构建相同的字符串 也许,修补此字节码文件以将名称Tiusu Frontline更改为另一个名称并不困难。