首页
社区
课程
招聘
[原创]一个反编译LUA的东西
发表于: 2007-11-6 17:52 18388

[原创]一个反编译LUA的东西

2007-11-6 17:52
18388

最近学习C++ Build,为了练习,写了个这个东西。
针对的版本应该是最新的5.12,对于其他5.XX或许支持,但不保证。对于4.XX,肯定是不支持。
由于只是练习,
所以:
1.可以提出错误和改进意见,但我很可能会不提供更新
2.只支持标准的LUA编译器产生的代码,对于改过的不支持,以后也不准备提供更新
3.由于用到了LUA编译产生的一些调试信息,如果LUA有选项可以不编译这些调试信息的话,可能会对反编译结果产生很大的影响
4.如果反编译导致程序崩溃的话,可以试试去掉“跳转分析”,或许可以不出错,但是反出来的可能会很难看明白。
5.还是对于跳转,即使跳转分析没出异常,也不保证结果是正确的,尤其是多个条件复合的判断。
6.尽量不要转载,如果你实在想转载,那我拿你也没办法。
7.第一个C++程序,所以源码就不献丑了。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
著名的反编译工具还有很多,没有源码的东东没有什么下载价值。不过还是支持楼主的工作。
2007-11-6 17:58
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
3
好东西,收藏
2007-11-6 19:31
0
雪    币: 47147
活跃值: (20405)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
感谢分享,收藏,以后会用的上
2007-11-6 19:36
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
5
CC3280MT.dll 没有找到
2007-11-6 19:40
0
雪    币: 241
活跃值: (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
这个应该不需要CC3280MT.dll了。还是对于编译选项不熟悉啊。
上传的附件:
2007-11-7 10:48
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
强人一出手,就知有没有
2007-11-7 18:03
0
雪    币: 1241
活跃值: (160)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
如果有心想完善这个工具的话,我倒可以提供相对全面一点的测试样例。
写LUA反编译的难点在于不需要调试信息的情况下解决由于编译优化引起的反编译问题。
有调试信息下的反编译工具有个叫luadec。好象是提供源码的。
2007-11-8 21:32
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
9
LUA..貌似很多都是带着源码.编译过能举个例子吗?
2007-11-8 22:15
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
10
XX西游
2007-11-9 02:51
0
雪    币: 241
活跃值: (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
大话是LUA 4.0的,改了命令的编码,去掉了调试信息,对一些字符串进行了混淆。
一年前看过一段时间。
水浒Q传好象是5.0的,没有更深入得去看,不过据说是网易出去的人做的,或许应该和大话差不多。
LUA5的调试信息分3部分,我用了其中的关于局部变量的那一部分。这部分信息如果根据代码结构分析的话,或许可以分析出一部分,在LUA4的时候做过类似的工作,效果还可以,但是2个版本的指令结构几乎完全不一样,所以现在还不能保证,得做了再说。
2007-11-9 10:39
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
12
学习了。怪不得网易的外挂不多
2007-11-9 13:47
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
13
5.0 之前好像是 stack 虚拟机,5.0 之后是 reg 虚拟机
差别应该很大吧

不懂的说。
2007-11-11 12:49
0
雪    币: 241
活跃值: (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
5.0和4.0差别确实很大,
分析临时变量的方法肯定也不一样。4.0用的在5.0里面已经不适用了。
但是根据5.0的代码结构应该还是能找出一些来的,但是不肯定,因为我还没写。
2007-11-12 20:17
0
雪    币: 213
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
ljtt 是反编译 LUA方面的专家了
2007-12-3 22:11
0
游客
登录 | 注册 方可回帖
返回
//