首页 手机游戏 手机软件 新闻 攻略 手游合集 手游专区 排行榜

深化认识Lua剧本加密技艺,给游玩代码加上“紧箍咒”

时间:2020-10-14

小编:杨杰

阅读:

在手机上看
手机扫描阅读
51游玩网

没有少安闲大众暗示,在互联网上落空对代码的限度,就像把银行的设想图接给夺劫犯一律。

Lua是一种被宽泛用于游玩设备中的算计机措辞,利便设备者定制己方所需的功用。此中,红遍寰球的《义愤的小鸟》即是由Lua措辞用Wax设备的。其余,幻想西游、事迹热热、高兴消消乐、睡眠奇兵、最强蜗牛等手游也选用了Lua措辞入行编写。

连年来,Lua剧本在游玩行业永恒盛行,但Lua剧本吐露事情以怪为常见怪未怪司空见惯少见多怪,其安闲性也惹起关心。行恶份子议定开私服、开外挂等路径,完成对游玩代码的贸易变现,这给游玩设备者形成硕大经济缺失,也危及游玩玩家含有账号、物件在里的虚构财富安闲。

本文将聚焦Lua剧本加密,深化发挥Lua习见的三种加密格局,并寻觅怎么入一步的爱惜Lua代码。

1、靠山

“Lua”在葡萄牙语中是“玉轮”的有趣,1993年由巴西的Pontifical Catholic University设备。

动作精炼的解说性措辞,Lua拥有简朴、轻度、易爱护的特色,且能够依照本身的特质来模仿面向标的目的方向宗旨,所以其被嵌进到愈来愈多的答用中,特殊是游玩中,为游玩设备带来了很年夜的便利性。比如,Cocos引擎的合流游玩、U3D游玩中的热更框架xlua城市用到Lua措辞。

同时,因为Lua措辞本身的这些特质,Lua代码我方其实不安闲,良多时分袭击者能够获得Lua源码入行浏览,叙述,盗用和点窜等,而后入一步的重打包,给游玩我方带来了很年夜的安闲隐患。

2、Lua现有的爱惜

看待这类剧本解说性措辞,从代码爱惜的角量跟它本身所再现的形势是密弗成不成分的,看待Lua而言,当今市道市情动手游包中能够瞧到的重要是lua源码,luac,luajit三种的再现形势,交上去会具体的先容每种形势和本身现有的爱惜和所暴漏出来的优瑕疵。

2.1Lua源码

当今市道市情上用到Lua源码我方在游玩中闪现的其实不是良多,然而在极少热更下发中会比照多;所以从源码爱惜的思绪会很轻易的推测针对Lua源码我方入行混杂爱惜的提案;当今市道市情上针对Lua源码入行混杂的厂家重要有以下这多少家:

XFuscator:

Luraph:

Syanpse Xen:

Ironbrew:

Verdict:

看待这类鉴于源码的混杂,长处是是Lua经由办理以还加强的庞大化了,扩张了袭击者入行叙述的利润跟难量;因为攻防晋级,看待上头的混杂也有绝对的反混杂办理格局。同时混杂除己方混杂我方所再现出来的兼容性题目之外,看待设备者也有以下这多少个题目:

1.统一段代码的混杂在分歧工夫入行混杂,所失却的混杂成果是分歧的:

因为混杂器为了扩张混杂的水准跟难量,内部会有随机的代码要入行热更,热更的时分会入行比照,云云没方法入行热更办理;

2.针对Lua语法混杂的兼容性题目:

因为Lua语法的变化性,所以往混杂办理的兼容性题目比照多;

3.设备者交进题目:

看待设备者而言入行交进和映现题目跟第三方入行勾通处置的利润比照年夜;

2.2luac的形势

luac是动作己方的措辞的字节码版式,与其余剧本措辞python等虚构机中所再现的出来是一律的,等Lua加载到里存中以还,虚构时机加载对答的字节码,因为lua重要有5.1、5.2、5.3三个板本,所以也会有对答的三个版式的luac板本,当今在手游中合流是5.2的板本;

尽管说luac没有会以源码的形势映现,然而因为Lua字节码的推行和版式能够依照在Lua源码中入行探知到,好比luadec反编译用具,所以luac形势仍旧担心全的。当今市道市情上看待这类爱惜重要有三个形势:

2.2.1:Luac的加密

从Lua的虚构机源码处能够得悉在luaL_loadbuffer函数会加载Lua,所以有安闲认识的厂家会对Lua入行加密。篡改这个源码,在真确的推行挺进行解密;

然而因为虚构机的推行流程是开源的,而且因为cocos工程编译办理需求静态链交对答的引擎库,云云对答的引擎so文献是有标志的,所以看待袭击者来讲,在luaL_loadbuffer函数处能够入行里存的DUMP失却寻常的字节码,而后运用反编译用具入行办理,入前进一步的篡改;

1602558157826390.png

2.2.2:篡改Lua虚构机中opcode的程序

看待Lua这类解说性措辞,岂论非论不管是虚构机,仍旧对答反编译用具都是有一个牢固的opcode的程序,蓄意识的安闲厂商会议定篡改对答的opcode的程序入行爱惜,以下图所示:右边是寻常opcode的程序,左边是入行随机化以还的opcode的;

1602558142502658.png

云云再行编译办理完以还的luac能够瞧到以下图所示:对答的opcode是纷歧样的;

1602558189341005.png

opcode纷歧样和对答的解说程序是以下:

1602558194188447.png

当今看待这类自界说篡改opcode的办理格局,当今袭击者能够依照议定指标虚构机加载Lua文献跟寻常虚构机编译的luac入行比照“吐出”对答的照射表,而后入一步的借助于反编译用具入行反编译办理入一步的办理;

恐怕因为Lua本身的opcode没有是良多,如上图所示能够很轻易的定位到寻常的推行程序;所以这类办理格局也没有是很安闲。

2.2.3:看待Lua的虚构机推行流程入行爱惜

能够瞧到有的游玩厂商对Lua虚构机入行安闲编译办理,也即是庞大化完全虚构机的解说历程,这类做法本来“治本没有治标”。

相仿以下图所示:尊驾是不异功用的一个函数,仅仅左边是经由安闲编译器办理的:

IMG_260

看待上头这类办理格局长存的两个题目:

一是因为Lua我方是开源的,经由安闲编译办理完以还,对答的标志仍旧长存;袭击者很轻易的定位;

二是看待袭击者而言本来不消太关怀中央的虚构弥合释推行流程,所以从完全爱惜的角量来说,本质性功用没有年夜。

2.2.4小结:

当今的以luac为重要再现形势的游玩厂商重要是看待上头三种爱惜的归纳运用,然而经由叙述能够瞧到从基础底细真相底细上他国起到一个好的功用,只可禁绝部门低级的袭击者,看待真确的袭击点的爱惜他国把着。

2.3luajit的形势

因为探讨到Lua的推行效力题目,luajit降生了,从名字上能够瞧出,luajit是Lua的立即编译器天生的,一个用手写汇编完成的Lua解说器跟一个能够直交天生机械代码的JIT编译器;依照dynasm动静天生buildvm_xxx.h的文献,入一步的解说推行;

当今良多的游玩厂家,为了入一步的爱惜游玩中的剧本,将Lua办理为luajit的版式,看待luajit而言,也有对答的反编译用具,ljd恐怕luajit-lang-toolkit恐怕luajit-decomp,所以入而极少游玩厂商在经由luajit形势以还会入行加密办理;

借助于cocos自带的加密,年夜部门的厂商会议定以下建设己方独有的key跟sign值;

1602558241308963.png

和挪用对答的XXTEA的加密算法,能够瞧到经由加密以还失却以下的luajit的编码形势:

1602558245168500.png

正视上头这类加密的办理格局,解密也特别的简朴:

一是能够运用HOOK在要害的函数处入行里存DUMP;

二是也能够议定反编译代码,以下图所示为某出名游玩对答的key跟sign值,而后挪用XXTEA入行解密能够失却尺度的luajit的形势;而后连络反编译器入行反编译篡改等等;

1602558262695541.png

3、Lua爱惜的巩固

议定上头看待lua、luac、和luajit的爱惜和逆向的角量来瞧,要想真确的往爱惜Lua游玩,能够从以下多少个角量开拔:

运用剧本的爱惜的算法的挑拣?

看待虚构解说器中的标志如何入一步的消退失落?

如何让路发者尽量的交进利便?

看待爱惜的强量上俺们应当如何入一步的探讨烦忙

3.1算法的挑拣性

当今良多的游玩厂商议定Quick-Cocos2dx恐怕cocos自带的算法,以XXTEA这类为代表入行加密办理,含有看待剧本和zip包等等加密,云云使得袭击者也可以轻意的往使用这些算法实行解密等操纵;所以算法的设想越”独有化“越好,云云能够在第一个层面上做到注意袭击者入行静态的恢复剧本。

3.2消退虚构解说器中的标志

议定上头能够瞧到岂论非论不管是自界说opcode解说器仍旧运用安闲编译器办理Lua虚构机,这此中长存一个题目,因为静态链交的题目,标志表是暴漏的,标志表的长存为袭击者供给了强壮的叙述端倪 ,所以能够对Lua的虚构机解说引擎入行加壳办理,不只仅可以爱惜上头的独有弥合密算法,同时标志的消退使得袭击者很困难入一步往叙述。做到了第二个层面上的爱惜,同时有了壳以还会对游玩四周的蹊跷境况入行检测,好比上头提到的HOOK等。

3.3让路发者尽量的交进利便

好比上头提到的看待Lua在混杂办理的时分,尽量的探讨到设备者的功用开业,是游玩的逻辑开业仍旧热更?不然像上头提到的鉴于源码的混杂,每次的随机化会招致事倍功半。

3.4爱惜的强量上应当如何入一步的探讨

从上头的叙述流程能够瞧到这边面俺们从以下这多少个角量入行强量上的巩固:

在对Lua源码混杂办理的时分,能够对luac和luajit对答的反编译用具入行对坑,因为部门袭击者没有是很懂反编译的道理,巩固使得袭击者不及反编译;

因为Lua本身语法的变化性,能够看待Lua我方的版式入行自界说化,同时篡改对答的解说器部门,云云袭击者就没有得没有叙述自界说的版式和对答的解说器部门,加年夜叙述的难量。

综上所述,以下图所示:

1602558304131860.png

4、概括

在游玩设备周围,Lua与C++、C#的搭配带来了特别强盛的功用,但也未免长存被破译的危急。

安闲袭击经常以代码为指标,抵达破译软件的手段。在招致吐露的收集安闲“短板”中,代码安闲是最本体、最里面的题目。

弗成不成狡赖的是,在数字经济时期,看待科技企业而言,代码既是版权的一部门,也是里面贸易秘要之一。里面代码一朝吐露,招致软件的里面技艺外流,这看待企业险些是致命的袭击。

黑宾在砸壳、逆向以后,“裸奔”的代码就直面总共败事的危急,增多加密算法特别有需要。

网易易盾游玩反外挂,瓜分前沿技艺学问及趋向,帮衬企业闪避浸染开业健全发达的安闲危急。连络网易多年游玩安闲实战堆积,易盾环绕游玩行业习见安闲危急,供给一站式全人命时间手游安闲处置提案。

新闻内容推荐

上一篇:陈少杰年夜幅减持,斗鱼将成虎牙子公司:游玩直播过往即序章

下一篇:返回列表

相关阅读 更多

火爆手游

更多

领取礼包

更多
  • 星月命运之轮进阶礼包 星月命运之轮进阶礼包
    星月命运之轮进阶礼包
    剩余礼包:84

    截止日期:2022-07-23

    查看
  • 闪击骑士团新手礼包 闪击骑士团新手礼包
    闪击骑士团新手礼包
    剩余礼包:97

    截止日期:2021-02-05

    查看
  • 山海异闻录星耀版新手礼包 山海异闻录星耀版新手礼包
    山海异闻录星耀版新手礼包
    剩余礼包:98

    截止日期:2030-01-01

    查看
  • 魔剑侠缘预约礼包 魔剑侠缘预约礼包
    魔剑侠缘预约礼包
    剩余礼包:97

    截止日期:2020-03-27

    查看
  • 手游开测

    更多