cocos2dx-lua 加速器调研(一)

cocos2d Speed调研

一.搭建cocos2d-x 4.0项目

主要是纯c++和纯Lua游戏(4.0里面已经没有JS模板了,分析应该是因为已经创建了cocos creator(更强的可以开发3d游戏的JS引擎)

二.光环加速器


口袋-flash (特征:游戏内开发文件为.swf后缀)

御剑三国-lua(特征:游戏内开发文件为.lua)

新斗罗大陆-lua

圣斗士星矢-unity3d(特征:游戏内文件压缩比很大,并且资源文件为res.asset这种格式)

三国杀名将-lua

少年三国志-lua

少年三国志2-lua
bund leid _hook.png

光环加速器分析:


1.首先光滑加速器的引擎大致分为三类.

game_engine - 0 为 口袋(两款游戏)-flash 

game_engine - 1 为 新斗罗大陆-lua等 几款lua游戏 当然大部分他们都使用了lua_hook这个函数

game_engine - 2 为 圣斗士星矢-unity3d 

他们利用开发工具生成下面的配置文件,根据配置的json来加载hook方法.


{

"gh_plugin_version": "1.3.0",

"game_engine": 2,

"scheduler_update": "0x100394720",

"set_timescale": "0x100F68CC0",

"lua_hook": false,

"luaL_loadbuffer": "0x1008A9610",

"lua_func": {

"lua_pcall": "0x169814",

"lua_pushcclosure": "0x1686B4",

"lua_tolstring": "0x167BC8",

 "lua_setfield": "0x169080",

 "lua_toboolean": "0x200000",

"lua_pushnumber": "0x200000",

"lua_setglobal": "0x200000"

},

 "lua_inject_position":"",

"game_id": "60cff8ed2ef495cd9a83c96b",

"game_platform": "appstore",

"ori_packagename": "com.hoolai.saintseiya",

 "cur_packagename": "com.gh.sdsxszycsappstore",

 "bundleid_hook": true,

 "show_type": 1,

 "min_speed": 0.5

}

其中新斗罗大陆虽然是lua游戏但是没有使用luahook函数.

2.从逆向代码看

分析:

initNormalHook—> timeScale或者scheduler_update这个函数

initCocos2dlHook---> luahook 使用lua脚本写的

initUnity3dHook—>scheduler_update或者是set_timeScale这个函数或者其他特殊方法

动态调试这几个游戏

实际调试:

Lua--->initLuaHook [函数名:-[GHGamePluginManager initLuaHook]]

Unity **2021-11-23 20:36:22.087719+0800 mhblol[20257:4446308] hook set_TimeScale ------------------ 3.571429 canSpeedUp 1 **

当然光环的没有集成cocos2d-js游戏(可能是因为性能上面js游戏不如lua的游戏)

所以我们现在要做的是luahook的角度来普通进行hook加速或者说是像光环的使用函数的地址进行hook.

如果使用函数的地址进行hook的话,需要对每个游戏里面的函数方法进行地址偏移计算拿到编译前的地址.

下面的小七的游戏是有js_hook的

三.小七的

阿修罗之眼-lua

大圣不取经-unity3d

秦时明月-lua


道友请留步-js(特征:游戏内文件为.jsc 一般为加密的js文件)

[图片上传失败...(image-6283fc-1638147429012)]

[图片上传失败...(image-294580-1638147429012)]

小七的也是有config.json但是小七的他加密了看不到里面的内容,太狗了.

1.Dump

光环游戏:斗罗大陆lua—>找不到 CCDiretor 类 但是可以找到CCDirectorCaller这样无用的类, 应该是暴露出来CCDiretor就可以直接控制速度了

Dump

自己创建的testLua(cocos2dx-4.0是目前最新的版本)

testLua一样的

里面写的是随机创建一个全局精灵的,循环10000次更新位置,并没有依赖时间函数.但是使用C调用CCDiretor直接可以控制加速效果.在Lua里面控制CCDiretor 也可以控制加速效果

2.反编译和调试:斗罗大陆lua 日志显示并没有hook_timeScale函数 .是hookLua.

这几个也就是印证了为什么我们一直纠结的gettimeofday里面hook修改系统时间函数无效.(实质是hook timeScale, 部分游戏直接开的定时器可以控制ccTime变量也就是直接修改系统时间可以有效)

当然我也试过fishhook去hook update函数或者其他一些相关控制时间或者speed的类,但是lua是拿不到相关对象的.(没有试过其他hook工具)

总结:

目前不知道光环的LuaHook里面做了什么

猜想1:注入的SDK里面集成了cocos2d引擎,通过控制时间函数gettimeofday,从而实时控制速度.

猜想2:注入Lua代码在gettimeofday函数里面实时注入CCDiretor对象变量值从而控制速度
.
下次进一步验证几个猜想...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容