吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 40364|回复: 46
收起左侧

[原创工具] cocos-lua、quick-cocos等游戏引擎的lua加密文件破解工具

    [复制链接]
skyxiaoyu 发表于 2017-2-5 19:40
本帖最后由 skyxiaoyu 于 2017-3-18 22:44 编辑

2017年3月18日新增内容
解密部分源代码。
我特地说明几点:
1. 这个工具不是luac的通用解密工具,luac也无法做通用解密工具,稍微有经验的人都会修改opcode进行加密。
2. 这个工具是提供来解决cocos的lua解密的快捷方法的,其实没有这个工具,知道原理的人也可以轻松解出。
3. 这个工具是我在使用过程中发现有这样一个工具就更好然后顺手就撸的一个工具,然后发出来给有需求的同学使用,省得浪费时间重复造轮子,没有其他原因。

以下附上解密部分的源代码(工具:aardio),需要的同学请使用或者查看然后自己撸一个自己想要的:

[AAuto] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//批量处理文件
    var file = 0;
    fsys.enum(  input_dir, //指定要遍历的目录
            file_type, //指定查询文件名,支持windows掩码
            function(dir,filename,fullpath,findData){ //指定触发器
                if(filename){
                    file = file + 1
                    //打开文件
                    var file_content = string.load(fullpath)
                     
                    //先去除头部的sign签名
                    //如果没有签名的,就不用去除了
                    var file_content_fix_head
                     
                    file_content_fix_head = string.replace(file_content, tostring(mainForm.xxtea_sign.text), "", 1);
                    //然后执行xxtea的解密
                    var file_decrypt_content = string.xxtea.decrypt(file_content_fix_head, tostring(mainForm.xxtea_key.text))
                     
                    //得到解密后的文件,进行保存
                    //首先拼凑出完整的路径
                    var temp_dir = dir
                    var save_path = string.replace(temp_dir, "@"++mainForm.dir_input.text, "")
                    var save_path_all
                    if(mainForm.check_zip.checked){
                        save_path_all = mainForm.dir_out.text ++ save_path ++ filename
                        thread.command.print("解密完成 ---- >   ", save_path ++ filename)
                    }
                    else{
                        save_path_all = mainForm.dir_out.text ++ save_path ++ string.replace(filename, "@luac", "lua")
                        thread.command.print("解密完成 ---- >   ", save_path ++ string.replace(filename, "@luac", "lua"))
                    }
                    string.save(save_path_all, file_decrypt_content);
                }
            }
          );
    if (file == 0) {
        if(mainForm.check_zip.checked){
            thread.command.print("抱歉,没有发现任何zip文件。请检查。" )
        }
        else{
            thread.command.print("抱歉,没有发现任何lua文件。请检查。" )
        }
        return -6;
    }
    thread.command.print("")
    thread.command.print("代码解密已经全部完成。Author:skyxiaoyu([url]www.52pojie.cn[/url])" )


------------------------------------------------------------------------------------------------------------
以下是原正文内容
简单地说几句:
这是一个可以解密xxtea加密的lua代码文件的工具。

cocos-lua、quick-cocos都是使用xxtea对lua文件进行加密,加密后将sign追加在文件头部作为标识。
加密的key则是直接写在代码里面的。怎么去找到这个key,需要自己去翻阅cocos在加密这块的代码。
然后如果没有做二次处理的,通常很容易找到,而如果加密了,就需要跟进二次处理的算法去进行反推。
使用这个工具,需要假设你自己已经找到了key。

此工具仅仅是帮助你快速进行文件处理,而非是能帮助进行暴力破解的。
也希望使用此工具的,更多的用于学习与研究,而非其他目的。

以下使用网上下载的一份cocos-lua代码为例,进行工具的使用演示:
1.png
这是网络上下载的一款正在运营的商业游戏的包体。
为了避免一些问题,我隐藏了它的正式名字。

2.png
将它改名为rar或者zip,然后解压,得到文件的目录。

3.png
进入到lib目录,如果能看到libcocos2dlua.so。说明这是一个cocos-lua制作的游戏。
这不是唯一的判断方法,却是最快捷的判断方法。

4.png
进入到lua的逻辑目录,可以看到文件结构了。

5.png
用sublime打开,看不到东西。

6.png
notepad++,就可以看到位于头部的签名了。

7.png
打开工具,准备开始解密。
到这一步时,你必须掌握了sign和key。sign位于lua文件的头部,很容易找到。
key的寻找可以简单也可以容易,并不在这里讨论的范围。

8.png
依次填写好sign,key,选择输入的目录和输出的目录。
加密的模式在引擎中有两种,一种是打包为zip,一种是加密为luac。
两种模式都可以进行快速的解密。
在输出的log中,我添加了红框内的内容,防止被恶意转载。

9.png
解出来的文件,已经是lua的明文了。

10.png
所有的代码都被正常的解密。
可以藉此阅读与学习商业化的产品做了哪些措施去避免你可能想不到的问题与坑。
或提高自己的代码水平。

本工具基于win10开发,经朋友测试win7 x64没问题。
其他操作系统不保证兼容性。
使用aardio开发,不需要安装直接运行,也无需安装其他环境。

祝好:)
上工具了:
xxtea_decrypt.rar (365.5 KB, 下载次数: 3963)

免费评分

参与人数 14吾爱币 +22 热心值 +11 收起 理由
九叶 + 1 + 1 谢谢@Thanks!
独爱一人逍遥 + 1 我很赞同!
altTab + 2 + 1 有研究过COCOS-js吗
qqww36936 + 1 + 1 谢谢@Thanks!
ceomhl + 1 + 1 报读报读
beichen + 1 + 1 软件还有些小小的BUG,希望作者能完善
yx91166 + 1 我很赞同!
bet365china + 1 + 1 谢谢@Thanks!
february + 1 + 1 好东西先评分再下载最后回复
xiaomingyo + 1 + 1 我很赞同!
likang + 1 + 1 谢谢@Thanks!
心酸 + 1 用心讨论,共获提升!
cnjspy + 1 + 1 大牛可以把BigWord的破解吗?天下贰求复活。
Hmily + 8 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

  • · Aarow|主题: 970, 订阅: 305

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| skyxiaoyu 发表于 2017-2-6 16:46
这只猪 发表于 2017-2-6 12:43
膜拜大神呀,希望出个解密教程

key的解密其实很简单的,你看一下在AppDelegate.cpp的方法就能明白。
我确认公开这种方法会损害他人的利益。所以应该不会公开。
但我可以很明确的说这是非常简单的事情。
 楼主| skyxiaoyu 发表于 2017-6-23 11:26
asdfadsfwe 发表于 2017-6-23 07:41
太感谢了、问题解决了,请问jsc这类的解密是不是和luac差不多呢。如果有个jsc的这种工具就好 ...

jsc我不是很了解,要看是不是字节码。如果给luajit一样直接是bytecode,那就基本上是不可逆了。
桥段 发表于 2017-2-6 12:28 来自手机
这只猪 发表于 2017-2-6 12:43
膜拜大神呀,希望出个解密教程
颠峰娱乐 发表于 2017-2-6 15:58
试试,好东西
飘浮 发表于 2017-2-6 16:51
这个软件看起来不错。
ejishu 发表于 2017-2-6 18:40
很牛X 的软件!谢谢大妞
Takitooru 发表于 2017-2-6 19:30
谢谢分享,好东西,而且非常详细了
daocao 发表于 2017-2-6 20:41
感谢分享,支持
beizhai 发表于 2017-2-6 23:57 来自手机
好东西,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-6 12:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表