网易首页 > 网易号 > 正文 申请入驻

血族手游Lua脚本及资源文件解密

0
分享至

之前一直和朋友在玩手游血族,有一天朋友问我能不能把里面某个角色的立绘拿下来,当时没多想就答应了,以为只要解压找到图片就行了。但是万万没想到,图片竟然打不开(被加密了)。

快速分析

下载最新的血族apk并解压之后看到assets\lua可以猜测这个游戏是由cocos2d-lua开发的。打开其中的一个lua脚本看到里面都是乱码而且开头也没有特征值,应该不是使用xxtea加密的。

story Lua.png

打开png图片提示无法读取该文件。

png报错.png

打开lib\armeabi文件夹,libgame.so是最大的也是等一下分析的重点文件。

libgame.png

快速分析小结

1.血族使用cocos2d-lua开发;
2.lua脚本和一些重要资源都已经被加密,但不是用官方的xxtea;
3.加解密是由libgame.so进行。
静态分析libgame.so

用IDA打开libgame.so,文件较大打开时间比较长。打开字符串窗口可以快速获得一些重要信息。比如LuaJIT2.0.1、Lua5.1等等。

lua脚本由cocos2dx_lua_loader加载,最后由lua_loadbuffer函数加载到内存中。动态分析一般会在这两个地方下断点,然后将lua脚本dump下来。

cocos2dx_lua_loader分析

找到cocos2dx_lua_loader之后f5查看反汇编代码。根据之后的动态调试分析可以知道,lua脚本是在第一个红色方框处进行解密操作。

Lua_load.png

lua_load调用了CCFileUtilsAndroid::getFileData,接着调用CCFileUtilsAndroid::doGetFileData,然后调用decryptFile。其实所有的资源都是在decryptFile中进行解密操作。根据文件类型主要分为三大类:png、jpg、其他加密文件(Lua,csv,xml)。

decryptFile.png

cocos2d::decryptTxt 分析

在接下去分析会发现这三个类型的解密过程都是大同小异,先是判断该文件是否已经加密,如果加密了就调用了cocos2d::decryptData进行真正的解密,只是传入的参数有所差异。下面用cocos2d::decryptTxt作为例子。

decryptTxt特征.png

1.判断文件最后第4个字节到最后第2个字节是否为0×53 0×44 0×47
2.调用cocos2d::decryptData进行解密操作,传入的参数只用到了前三个。第一个:开始解密的位置。第二个:需要解密的大小。第三个:用于后续解密的“密钥”。

lua特征.png

cocos2d::decryptData 分析

解密的步骤如下:

1.将需要解密的第一个字节和“密钥”异或;
2.将需要解密的最后一个字节和“密钥”异或;
3.将第一个字节和最后一个字节交换;
4.”密钥” =(”密钥”+1)%0xff。

解密的步骤还是比较简单的稍微花点时间就能看懂。

decryptData.png

静态分析小结

函数调用的顺序是:

1.cocos2dx_lua_loaderlua脚本加载函数;
2.cocos2d::CCFileUtilsAndroid::GetFileData;
3.cocos2d::CCFileUtilsAndroid::doGetFileData;
4.cocos2d::decryptFile选择对应的解密函数;
5.cocos2d::decryptTxt判断是否需要解密;
6.cocos2d::decryptData解密完成。
动态分析

在lua_load和loadbuffer下断点。

lua_load断点.png

loadbuffer断点.png

点击游戏里的一些按钮触发断点,当运行到loadbuffer断点的时候,lua脚本源码已经出现在内存中了。

loadbuffer动态调试.png

R1:脚本的起始位置;
R2:脚本的长度。

可以使用IDC脚本将lua代码保存到本地。

idc脚本.png

效果源码如下图。

storyLua源码.png

动态调试总结

在loadbuffer关键函数下断点可直接获得解密后的代码。

使用IDC脚本将代码保存下来:

优点:省略分析加解密算法的步骤,配合hook框架可以将运行过的代码都获取到;
缺点:没运行到的代码依然得不到。

最后放几张jpg,png解密后的图片和解密脚本的效果。

png解密.png

解密脚本效果.png

详细代码已经上传github:脚本代码链接

参考文章链接

浅析android手游lua脚本的加密与解密
Lua游戏逆向及破解方法介绍

*本文作者:网络安全通,转载请注明来自FreeBuf.COM

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国货轮阿拉伯海遭导弹袭击!11名中国船员获救,幕后黑手是谁?

中国货轮阿拉伯海遭导弹袭击!11名中国船员获救,幕后黑手是谁?

影像温度
2026-04-17 09:48:26
建国前夕,解放军清除中南海淤泥16万吨,水底都挖出了什么

建国前夕,解放军清除中南海淤泥16万吨,水底都挖出了什么

掠影后有感
2026-04-12 10:08:51
波罗的海三国:用九十多年证明的两条路

波罗的海三国:用九十多年证明的两条路

民间铁血柔情
2026-03-24 22:50:56
反转!巴西部长强行封杀比亚迪,卢拉深夜震怒:立刻卷铺盖走人!

反转!巴西部长强行封杀比亚迪,卢拉深夜震怒:立刻卷铺盖走人!

快看张同学
2026-04-17 09:47:38
第二波警告!美不准中国船只通行,否则严厉制裁,五角大楼已增兵

第二波警告!美不准中国船只通行,否则严厉制裁,五角大楼已增兵

触摸史迹
2026-04-17 09:49:17
民进党,极有可能在下一届台湾地区选举后,成为长期一家独大政党

民进党,极有可能在下一届台湾地区选举后,成为长期一家独大政党

李橑在北漂
2026-04-02 10:22:26
外滩、武康大楼揽拍大军退潮!上海野生摄影师转战新晋地标,价格已经低到五元一张

外滩、武康大楼揽拍大军退潮!上海野生摄影师转战新晋地标,价格已经低到五元一张

新闻晨报随申Hi
2026-04-15 17:08:11
15岁就成父亲,为养家闯荡NBA,47顺位逆袭成全明星

15岁就成父亲,为养家闯荡NBA,47顺位逆袭成全明星

体坛热评
2026-04-16 14:38:52
“我女儿敢这样,腿给砸断”,宝妈晒2个女儿出门,装束让人怒了

“我女儿敢这样,腿给砸断”,宝妈晒2个女儿出门,装束让人怒了

番外行
2026-04-15 10:13:21
世体:皇马去年夏天引援失误,4名球员只有阿诺德在安联首发

世体:皇马去年夏天引援失误,4名球员只有阿诺德在安联首发

懂球帝
2026-04-16 20:54:07
名记:勇士骑士愿用中产或底薪签詹姆斯

名记:勇士骑士愿用中产或底薪签詹姆斯

体坛周报
2026-04-17 09:40:15
拒绝7000万年薪,追求4.2亿顶薪!率队12连胜,强势冲击第二冠

拒绝7000万年薪,追求4.2亿顶薪!率队12连胜,强势冲击第二冠

鸣哥说体育
2026-04-17 09:49:53
本田中国关厂:燃油车产能砍掉20%背后

本田中国关厂:燃油车产能砍掉20%背后

全栈遛狗员
2026-04-17 09:36:15
鸿山寺方丈法云法师去世,终年61岁,3天前还好好的,弟子曝原因

鸿山寺方丈法云法师去世,终年61岁,3天前还好好的,弟子曝原因

卷史
2026-04-17 02:08:15
50岁左右的女人,裙子尽量别穿短裙、碎花裙,换成这三条会更优雅

50岁左右的女人,裙子尽量别穿短裙、碎花裙,换成这三条会更优雅

时尚穿搭生活馆
2026-04-17 09:58:20
伊朗这回开窍了!他们不炸军营,不炸核设施,专门炸这几个大工厂

伊朗这回开窍了!他们不炸军营,不炸核设施,专门炸这几个大工厂

鉴史录
2026-04-07 00:10:03
王楚:中国球员的通病是不够专注;我不接受青训教练打骂孩子

王楚:中国球员的通病是不够专注;我不接受青训教练打骂孩子

懂球帝
2026-04-16 23:34:05
炸裂!王曼昱空降上海!5万薪酬引爆争议,马琳力挺藏多大局?

炸裂!王曼昱空降上海!5万薪酬引爆争议,马琳力挺藏多大局?

好乒乓
2026-04-16 12:15:25
1599元!小米新机突然上架,真复古!

1599元!小米新机突然上架,真复古!

科技堡垒
2026-04-16 11:27:05
“太恶心了”!四川成都,30岁的王女士,花了329元,泡全裸私汤

“太恶心了”!四川成都,30岁的王女士,花了329元,泡全裸私汤

小蜜情感说
2026-04-17 09:56:57
2026-04-17 10:32:49
FreeBuf
FreeBuf
互联网安全新媒体
5548文章数 1757关注度
往期回顾 全部

头条要闻

小伙曾花80万开店失败被离婚:妻子觉得我很难翻身

头条要闻

小伙曾花80万开店失败被离婚:妻子觉得我很难翻身

体育要闻

皇马拜仁踢出名局,但最抢镜的还是他

娱乐要闻

丝芭传媒创始人王子杰去世,享年63岁

财经要闻

海尔与医美女王互撕 换血抗衰谁的生意?

科技要闻

Anthropic推出Opus 4.7,坦言依不及Mythos

汽车要闻

空间大五个乘客都满意?体验岚图泰山X8

态度原创

数码
游戏
健康
公开课
军事航空

数码要闻

AOC推出两款27" QHD 210Hz Fast IPS显示器,支持圆偏光护眼

《地铁2039》已上架Steam!全新概念图公开

干细胞抗衰4大误区,90%的人都中招

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

美宣布黎以停火10天 以方称不会撤军

无障碍浏览 进入关怀版