首页
社区
课程
招聘
[讨论]关于在cocos2d游戏中调用其内部lua函数
发表于: 2015-1-12 15:49 17523

[讨论]关于在cocos2d游戏中调用其内部lua函数

2015-1-12 15:49
17523
关于lua多线程的问题,现在大部分的手游都是 cocos2d 或者unity的,
对于cocos2d 其内部逻辑控制是lua来实现的,也就是可以解密他的luac或者是拿到他的ua脚本(未加密的情况下),来进行lua的修改来实现游戏逻辑行的修改,比如等级判断, 金钱,钻石。

在我研究一款XX传奇的时候,lua是已经加密成了luac, 并且op也做了替换,在正确解密的情况下,大部分.abc文件可解,小部分会有几个error:语法错误,估计是luadec解析引擎的问题,在我重新根据解密表 加密回去的时候,游戏直接卡在主界面不动(解密带有error的luac时候), 换了另外一种思路。

通过hook so,直接调用他的lua函数,因为lua的源码已经被解密出来,内部函数我们也可以看到,尝试直接在so内调用其lua函数,在我的so里启动了一个线程,首先拿到了全局的lua_states,然后获取lua函数名,直接lua_call调用其lua函数 ,发现会出现返回值会出现运行时错误的,使用lua_type来判断获取的函数是时候,有的时候是table 或是其他的数据(考虑到是多线程问题,lua_state被不动的调用).

有没有研究这方面的, 希望来交流一下~

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不懂,,,帮顶了。。。。。。
2015-1-12 15:55
0
雪    币: 45
活跃值: (1374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
lua在多线程中运行, 必定出错。

你可以试试找到他的luaL_loadbuffer,通过这个call来加载你的lua脚本(加载时不需要编译成二进制),假如你的函数名和它的一样,就会覆盖它的函数。
2015-1-12 16:19
0
雪    币: 45
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
我现在是想 调用的他的函数, 他的lua源码已经解出来了, luaL_loadbuffer 我也已经hook掉,可以实现任意加载文件,但是有一个时机问题,在什么时候可以调用他的方法才能成功, 现在他有几个线程再不停的调用pushvalue or  lua_pcall  lua_call ,  我自己起的线程,调用他的lua函数 直接pcall的返回值就是运行期错误.我现在就卡在这里。
2015-1-12 16:30
0
雪    币: 45
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
其实最简单的方法就是修改他的lua源码,我源码已经解出来, 但是因为luadec引擎的问题,有一些语法会解析会出现错误,导致 让他加载我解密后 重新打包的luac文件时候,就会出现卡屏的问题。
2015-1-12 16:32
0
雪    币: 45
活跃值: (1374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
接管消息后,用他的主线程来执行lua脚本,就不会出错了。
SendMessage
2015-1-13 12:05
0
雪    币: 45
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
恩,最后发现了,太天真了,本来想直接调用他的lua函数, 没有了解到lua语法local的生命周期,蛋疼。。。。。。。.这个方法实现不了 就感觉废掉了~
2015-1-13 16:25
0
雪    币: 407
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请指教:wuying283@qq.com
2015-1-14 16:58
0
雪    币: 13
活跃值: (430)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
9
我现在也遇上了LUAC安卓的如何进行解密回LUA求教
2016-1-25 18:06
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
互相学习交流下 ,怎么和你联系
2016-2-15 18:03
0
雪    币: 127
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
互相学习交流下  ,怎么和你联系
2017-9-8 17:38
0
雪    币: 127
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
55555555.还没有解出源码,楼主能教一教吗
2017-9-13 18:05
0
雪    币: 639
活跃值: (1192)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
请问楼主最后能调用上他的函数了吗?我也觉得直接让它加载自己的LUA  不可靠。容易出现不兼容,如果能直接调用他的函数。就好了。
2017-9-21 17:28
0
雪    币: 136
活跃值: (342)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
请教一下 如何能定位 lua的加载函数
2019-1-4 01:22
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
有没有啥方法可以将luac反编译回来呢?试了好几个,感觉都有些问题。如果我自己搞的话,该怎么下手,还望楼主给点思路
2019-1-7 12:00
0
雪    币: 61
活跃值: (200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16

如何能让主线程调用自己的lua呢,楼主实现了吗

最后于 2022-5-31 22:33 被anuora编辑 ,原因:
2022-5-31 22:31
0
游客
登录 | 注册 方可回帖
返回
//