rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Lua

怒鸟脚本解密笔记

    忙了两天,终于把Angry Birds Seasons的脚本解密弄好了。以下是个简短的总结:

・ AppData里的配置文件,主要有三个,第一是游戏的配置,包含注册信息;第二是游戏记录,也就是最高分、以及游戏进度之类的;第三个文件Seasons这个版本没有,貌似在Rio的版本中有,用途暂且不知道。
・ Levels,也就是关卡脚本被加密。各个关卡的秘密都在这些脚本里面。
・ Scripts,游戏脚本,可以说是游戏的核心,任何东西都在这里。包括物品信息、游戏逻辑、流程控制等等。也可以这么认为,怒鸟本身就是一个lua的解释器,那些脚本和关卡才是实际的游戏部分。也就是,如果我们能自己编写脚本加入进去,完全可以做出自己的怒鸟。搜了一下,最初的时候是有人这么干了。其实这也是我想要的。

    其实脚本加密的方法很简单,就是编译过的lua,然后再用AES加密,key我已经给出来了。比较蛋疼的是这个lua的反编译。首先,怒鸟确实使用的是lua 5.1,如果你用luadec解密,提示什么bad header。但如果使用的是luadisasm,却可以反编译出对应的lua汇编代码。看过luadec 2.0 for lua 5.1的源码之后发现,那坑爹的作者使用了unicode,所以文件头的信息是unicode格式的,而luac默认就是ansi的。所以就bad header了。解决这个问题之后,再luadec一下,提示bad constants。对比看过之后,发现Rovio使用的lua编译器是修改过的。所以,需要把luac和luadec都修改一下,luadec就能反编译大部分的脚本了。当然,这个时候最蛋疼的问题出现了,luadec居然他妈崩溃了……反正我是累了,改天自己弄一个。

      总之,lua还是挺有意思的。

顶一下
(1)
踩一下
(0)