CN111544893B - 一种基于游戏中防止代码流程伪造的加固方法及其*** - Google Patents

一种基于游戏中防止代码流程伪造的加固方法及其*** Download PDF

Info

Publication number
CN111544893B
CN111544893B CN202010367596.4A CN202010367596A CN111544893B CN 111544893 B CN111544893 B CN 111544893B CN 202010367596 A CN202010367596 A CN 202010367596A CN 111544893 B CN111544893 B CN 111544893B
Authority
CN
China
Prior art keywords
game
code
reinforcement
function
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010367596.4A
Other languages
English (en)
Other versions
CN111544893A (zh
Inventor
刘德建
韦铭
陈宏展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianqing Online Interactive Technology Co Ltd
Original Assignee
Fujian Tianqing Online Interactive Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Tianqing Online Interactive Technology Co Ltd filed Critical Fujian Tianqing Online Interactive Technology Co Ltd
Priority to CN202010367596.4A priority Critical patent/CN111544893B/zh
Publication of CN111544893A publication Critical patent/CN111544893A/zh
Application granted granted Critical
Publication of CN111544893B publication Critical patent/CN111544893B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于游戏中防止代码流程伪造的加固方法,所述加固方法为:步骤S1、游戏客户端触发进行加固操作时生成加固码,游戏模块中每个函数都对应生成一客户端函数运算码;步骤S2、加固操作执行结束时,会将所有执行过的客户端函数运算码按位与操作生成一授权码上传到游戏认证服务端;步骤S3、游戏认证服务端获取游戏客户端数据包,通过加固码生成多个的服务端函数运算码;步骤S4、接着将所有服务端函数运算码按位与操作生成一预授权码;步骤S5、游戏认证服务端将授权码和预授权码进行匹配操作,如果授权码和预授权码相同游戏继续运行,如果授权码和预授权码不相同,游戏终止运行;能够保证游戏外挂不能够模拟游戏客户端的行为。

Description

一种基于游戏中防止代码流程伪造的加固方法及其***
技术领域
本发明涉及一种基于游戏中防止代码流程伪造的加固方法及其***,尤其可应用于各类型移动端游戏和PC端游戏,能够保证游戏外挂不能够模拟游戏客户端的行为。
背景技术
游戏外挂破解是很多游戏开发者必须面对的一个问题,而游戏如何防破解,通常的做法是对代码加入混淆干扰以增加破解难度。但即便如此,混淆操作之后的java代码仍然可以被各种方法进行破解。
目前游戏中防止代码流程伪造的加固,常用的方法就是将函数单独进行保护,当被保护的函数被执行时会生成一个校对码,游戏服务端通过比较该校对码来判断函数是否被恶意伪造或篡改。
现有技术的保护函数的方案的缺点在于:被保护的函数对象太单一,不具备很强的黏性;在游戏代码中函数与函数之间是存在关联的,单一函数保护很容易被找到突破点进行伪造或篡改;而本方案是将游戏中的代码流程进行加固,在启动加固后加固模块中的任意一个函数都不允许被单独调用、伪造和篡改;脱机外挂作者必须还原出所有游戏流程中的代码才能正常使用。
发明内容
为克服上述问题,本发明的目的是提供一种基于游戏中防止代码流程伪造的加固方法,能够保证游戏外挂不能够模拟游戏客户端的行为。
本发明采用以下方案实现:一种基于游戏中防止代码流程伪造的加固方法,所述加固方法包括如下步骤:
步骤S1、游戏客户端触发进行加固操作时生成加固码,游戏模块中每个函数都对应生成一客户端函数运算码;
步骤S2、加固操作执行结束时,会将所有执行过的客户端函数运算码按位与操作生成一授权码上传到游戏认证服务端;
步骤S3、游戏认证服务端获取游戏客户端数据包,通过加固码生成多个的服务端函数运算码;
步骤S4、接着将所有服务端函数运算码按位与操作生成一预授权码;
步骤S5、游戏认证服务端将授权码和预授权码进行匹配操作,如果授权码和预授权码相同游戏继续运行,如果授权码和预授权码不相同,游戏终止运行。
进一步的,所述步骤S1进一步具体为:被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;游戏客户端触发进行加固操作时生成加固码;当游戏执行一函数时,函数对应的函数标识码会与加固码加密生成客户端函数运算码,则多个函数均对应一客户端函数运算码。
进一步的,所述步骤S3进一步具体为:游戏认证服务端执行数据包解密工作;解密游戏客户端发送的数据得到所述加固码;将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码。
进一步的,所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
本发明还提供了一种基于游戏中防止代码流程伪造的加固***,所述加固***包括游戏客户端和游戏认证服务端,所述游戏认证服务端和游戏客户端存在网络通信交互的关系,所述游戏客户端和游戏认证服务端按以下方式执行操作:
游戏客户端:
步骤a1.1、被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;当游戏执行到加固模块中的一函数时,函数对应的函数标识码会与加固码加密生成一客户端函数运算码,则多个函数均对应一客户端函数运算码;
步骤a1.2、加固模块流程执行结束时,会将所有执行过的客户端函数运算码按位与操作生成授权码;
步骤a1.3、将授权码数据进行加密,发送数据包消息到游戏认证服务器;
步骤a1.4、当收到游戏认证服务端下发的授权通过的指令时,游戏可继续运行;
步骤a1.5、当收到游戏认证服务端下方的授权不通过的指令时,游戏终止运行;
游戏认证服务端:
步骤a2.1、当游戏客户端发起授权验证时,游戏认证服务端接收并解密游戏客户端发送的数据包,解密得到所述加固码;
步骤a2.2、将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码;
步骤a2.3、接着将所有函数运算码按位与操作生成预授权码;
步骤a2.4、游戏认证服务端将授权码和预授权码进行匹配操作;
步骤a2.5、当授权码和预授权码相同时:下发授权通过的指令消息;
步骤a2.6、当授权码和预授权码不相同时:下发授权不通过的指令消息。
进一步的,所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
本发明的有益效果在于:在与脱机外挂的对抗中,防止游戏代码流程被伪造是至关重要的一个环节;本发明将游戏代码流程进行加固,被加固的游戏代码流程中的任意一个函数都无法被单独调用和伪造;当所有游戏代码流程加固后,外挂作者就无法通过伪造游戏流程来实现反脱机外挂;游戏代码流程加固能够有效帮助对抗脱机外挂并减少脱机外挂对游戏的破坏;保护游戏客户端代码流程不被恶意伪造或篡改,从而保障游戏不会出现脱机外挂。
附图说明
图1是本发明的方法流程示意图。
图2是本发明的***结构框图。
图3是本发明***中游戏客户端操作流程示意图。
图4是本发明***中游戏认证服务端操作流程示意图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图1所示,本发明的一种基于游戏中防止代码流程伪造的加固方法,所述加固方法包括如下步骤:
步骤S1、游戏客户端触发进行加固操作时生成加固码,游戏模块中每个函数都对应生成一客户端函数运算码;
所述步骤S1进一步具体为:被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;游戏客户端触发进行加固操作时生成加固码;当游戏执行一函数时,函数对应的函数标识码会与加固码加密生成客户端函数运算码,则多个函数均对应一客户端函数运算码;如函数A、函数B、函数C被执行,则函数A、函数B、函数C对应的函数标识码会与加固码加密生成客户端函数运算码A1,客户端函数运算码B1,客户端函数运算码C1;
步骤S2、加固操作执行结束时,会将所有执行过的客户端函数运算码(即客户端函数运算码A1,客户端函数运算码B1,客户端函数运算码C1)按位与操作生成一授权码上传到游戏认证服务端;
步骤S3、游戏认证服务端获取游戏客户端数据包,通过加固码生成多个的服务端函数运算码;所述步骤S3进一步具体为:游戏认证服务端执行数据包解密工作;解密游戏客户端发送的数据得到所述加固码;将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码。
步骤S4、接着将所有服务端函数运算码按位与操作生成一预授权码;
步骤S5、游戏认证服务端将授权码和预授权码进行匹配操作,如果授权码和预授权码相同游戏继续运行,如果授权码和预授权码不相同,游戏终止运行。其中,当授权码和预授权码相同时:下发授权通过的指令消息,游戏可继续运行;当授权码和预授权码不相同时:下发授权不通过的指令消息,游戏终止运行。
其中,所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
本发明的具体应用场景如:
玩家小米是游戏外挂作者,想要通过脱机的方式模拟玩家操作游戏,此时操作如下:
1、小米想通过制作外挂达到自动刷怪物的目的;
2、小米使用程序调试工具和反编译工具,对代码进行分析;
3、通过分析小米定位到自动刷怪物的数据包模块,通过发包工具自行构造数据包实现自动刷怪;
4、数据包发送到游戏认证服务端时,游戏认证服务端对小米发送的数据包执行数据包解密工作;解密游戏客户端发送的数据得到所述加固码;将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码。
步骤S4、接着将所有服务端函数运算码按位与操作生成一预授权码;
步骤S5、游戏认证服务端将授权码和预授权码进行匹配操作,发现小米的采用的加固码生产的预授权码与之前保存的授权码不一样,则下发授权不通过的指令消息,游戏终止运行;很快小米就被踢下线;
5、小米发现不对,使用程序发包接口发送刷怪物的数据包,很快小米又被踢下线;
6、小米几经周折后发现单独调用发包函数是不能满足需求,需要模拟出全部刷怪的游戏代码才能够正常游戏。
请参阅图2所示,本发明还提供了一种基于游戏中防止代码流程伪造的加固***,所述加固***包括游戏客户端和游戏认证服务端,所述游戏认证服务端和游戏客户端存在网络通信交互的关系,所述游戏客户端和游戏认证服务端按以下方式执行操作:
参见图3所示,游戏客户端:
步骤a1.1、被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;当游戏执行到加固模块中的一函数时,函数对应的函数标识码会与加固码加密生成一客户端函数运算码,则多个函数均对应一客户端函数运算码;如函数A、函数B、函数C被执行,则函数A、函数B、函数C对应的函数标识码会与加固码加密生成客户端函数运算码A1,客户端函数运算码B1,客户端函数运算码C1;
步骤a1.2、加固模块流程执行结束时,会将所有执行过的客户端函数运算码按位与操作生成授权码;
步骤a1.3、将授权码数据进行加密,发送数据包消息到游戏认证服务器;
步骤a1.4、当收到游戏认证服务端下发的授权通过的指令时,游戏可继续运行;
步骤a1.5、当收到游戏认证服务端下方的授权不通过的指令时,游戏终止运行;
参见图4所示,游戏认证服务端:
步骤a2.1、当游戏客户端发起授权验证时,游戏认证服务端接收并解密游戏客户端发送的数据包,解密得到所述加固码;
步骤a2.2、将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码;
步骤a2.3、接着将所有函数运算码按位与操作生成预授权码;
步骤a2.4、游戏认证服务端将授权码和预授权码进行匹配操作;
步骤a2.5、当授权码和预授权码相同时:下发授权通过的指令消息;
步骤a2.6、当授权码和预授权码不相同时:下发授权不通过的指令消息。
所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
总之,本发明将游戏代码流程进行加固,被加固的游戏代码流程中的任意一个函数都无法被单独调用和伪造;当所有游戏代码流程加固后,外挂作者就无法通过伪造游戏流程来实现反脱机外挂;游戏代码流程加固能够有效帮助对抗脱机外挂并减少脱机外挂对游戏的破坏;保护游戏客户端代码流程不被恶意伪造或篡改,从而保障游戏不会出现脱机外挂。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (5)

1.一种基于游戏中防止代码流程伪造的加固方法,其特征在于:所述加固方法包括如下步骤:
步骤S1、游戏客户端触发进行加固操作时生成加固码,游戏模块中每个函数都对应生成一客户端函数运算码;所述步骤S1进一步具体为:被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;游戏客户端触发进行加固操作时生成加固码;当游戏执行一函数时,函数对应的函数标识码会与加固码加密生成客户端函数运算码,则一个函数对应一客户端函数运算码,多个函数与多个的客户端函数运算码对应;
步骤S2、加固操作执行结束时,会将所有执行过的客户端函数运算码按位与操作生成一授权码上传到游戏认证服务端;
步骤S3、游戏认证服务端获取游戏客户端数据包,通过加固码生成多个的服务端函数运算码;
步骤S4、接着将所有服务端函数运算码按位与操作生成一预授权码;
步骤S5、游戏认证服务端将授权码和预授权码进行匹配操作,如果授权码和预授权码相同游戏继续运行,如果授权码和预授权码不相同,游戏终止运行。
2.根据权利要求1所述的一种基于游戏中防止代码流程伪造的加固方法,其特征在于:所述步骤S3进一步具体为:游戏认证服务端执行数据包解密工作;解密游戏客户端发送的数据得到所述加固码;将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码。
3.根据权利要求1所述的一种基于游戏中防止代码流程伪造的加固方法,其特征在于:所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
4.一种基于游戏中防止代码流程伪造的加固***,所述加固***包括游戏客户端和游戏认证服务端,其特征在于:所述游戏认证服务端和游戏客户端存在网络通信交互的关系,所述游戏客户端和游戏认证服务端按以下方式执行操作:游戏客户端:
步骤a1.1、被加固的游戏模块中每个函数对应存放一个固定值的函数标识码;当游戏执行到加固模块中的一函数时,函数对应的函数标识码会与加固码加密生成一客户端函数运算码,则一个函数对应一客户端函数运算码,多个函数与多个的客户端函数运算码对应;
步骤a1.2、加固模块流程执行结束时,会将所有执行过的客户端函数运算码按位与操作生成授权码;
步骤a1.3、将授权码数据进行加密,发送数据包消息到游戏认证服务器;
步骤a1.4、当收到游戏认证服务端下发的授权通过的指令时,游戏可继续运行;
步骤a1.5、当收到游戏认证服务端下方的授权不通过的指令时,游戏终止运行;
游戏认证服务端:
步骤a2.1、当游戏客户端发起授权验证时,游戏认证服务端接收并解密游戏客户端发送的数据包,解密得到所述加固码;
步骤a2.2、将游戏认证服务端预先存储的多个预函数标识码与所述加固码加密生成多个的服务端函数运算码;
步骤a2.3、接着将所有函数运算码按位与操作生成预授权码;
步骤a2.4、游戏认证服务端将授权码和预授权码进行匹配操作;
步骤a2.5、当授权码和预授权码相同时:下发授权通过的指令消息;
步骤a2.6、当授权码和预授权码不相同时:下发授权不通过的指令消息。
5.根据权利要求4所述的一种基于游戏中防止代码流程伪造的加固***,其特征在于:所述加固码是通过玩家登录时的会话ID、玩家游戏ID、机器码、时间戳,进行加密生成。
CN202010367596.4A 2020-04-30 2020-04-30 一种基于游戏中防止代码流程伪造的加固方法及其*** Active CN111544893B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010367596.4A CN111544893B (zh) 2020-04-30 2020-04-30 一种基于游戏中防止代码流程伪造的加固方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010367596.4A CN111544893B (zh) 2020-04-30 2020-04-30 一种基于游戏中防止代码流程伪造的加固方法及其***

Publications (2)

Publication Number Publication Date
CN111544893A CN111544893A (zh) 2020-08-18
CN111544893B true CN111544893B (zh) 2023-09-01

Family

ID=71998284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010367596.4A Active CN111544893B (zh) 2020-04-30 2020-04-30 一种基于游戏中防止代码流程伪造的加固方法及其***

Country Status (1)

Country Link
CN (1) CN111544893B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462959A (zh) * 2014-12-04 2015-03-25 北京奇虎科技有限公司 一种安卓应用的加固保护方法、服务器和***
WO2016011739A1 (zh) * 2014-07-21 2016-01-28 小米科技有限责任公司 防伪验证方法、装置和***
WO2017000726A1 (zh) * 2015-07-02 2017-01-05 中兴通讯股份有限公司 一种密钥变换方法、装置及终端
CN107153786A (zh) * 2017-05-26 2017-09-12 北京奇点数聚科技有限公司 一种人机识别方法、***及终端设备、可读存储介质
CN107391973A (zh) * 2017-07-17 2017-11-24 北京深思数盾科技股份有限公司 一种函数保护方法及装置
CN108270791A (zh) * 2018-01-30 2018-07-10 飞天诚信科技股份有限公司 一种安全运行可执行文件的方法及***
CN109891415A (zh) * 2016-11-28 2019-06-14 国际商业机器公司 针对未经授权的客户端应用程序保护Web服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016011739A1 (zh) * 2014-07-21 2016-01-28 小米科技有限责任公司 防伪验证方法、装置和***
CN104462959A (zh) * 2014-12-04 2015-03-25 北京奇虎科技有限公司 一种安卓应用的加固保护方法、服务器和***
WO2017000726A1 (zh) * 2015-07-02 2017-01-05 中兴通讯股份有限公司 一种密钥变换方法、装置及终端
CN109891415A (zh) * 2016-11-28 2019-06-14 国际商业机器公司 针对未经授权的客户端应用程序保护Web服务器
CN107153786A (zh) * 2017-05-26 2017-09-12 北京奇点数聚科技有限公司 一种人机识别方法、***及终端设备、可读存储介质
CN107391973A (zh) * 2017-07-17 2017-11-24 北京深思数盾科技股份有限公司 一种函数保护方法及装置
CN108270791A (zh) * 2018-01-30 2018-07-10 飞天诚信科技股份有限公司 一种安全运行可执行文件的方法及***

Also Published As

Publication number Publication date
CN111544893A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN104573516B (zh) 一种基于安全芯片的工控***可信环境管控方法和平台
McMillan et al. Formal specification and testing of QUIC
CN101166091B (zh) 一种动态密码认证的方法及服务端***
CN102479304B (zh) 软件权限控制方法、客户端及***
CN110866226B (zh) 一种基于加密技术的java应用软件版权保护方法
CN102334140B (zh) 用于防止欺诈的方法、装置和***
US20090260084A1 (en) Method for verifying conformity of the logical content of a computer appliance with a reference content
CN109347625B (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
CN102982257A (zh) 在re和te间执行平台完整性和drm软件完整性检查的方法
CN102567685B (zh) 基于非对称公钥密码体系的软件版权保护方法
CN103023657B (zh) 一种基于分布式的网络交易安全验证***
CN109598104B (zh) 基于时间戳和秘密鉴权文件的软件授权保护***及其方法
CN104199654A (zh) 开放平台的调用方法及装置
CN103500202B (zh) 一种轻量级数据库的安全保护方法及***
CN108900479A (zh) 短信验证码获取方法及装置
CN110061967A (zh) 业务数据提供方法、装置、设备及计算机可读存储介质
CN106372497B (zh) 一种应用编程接口api保护方法和保护装置
CN104199657A (zh) 开放平台的调用方法及装置
CN112019548A (zh) 防止恶意攻击的自定义接口签名方法、服务器及***
CN111585995A (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
CN111544893B (zh) 一种基于游戏中防止代码流程伪造的加固方法及其***
CN116361833A (zh) 校验方法、装置及终端设备
WO2007074992A1 (en) Method for detecting malicious code changes from hacking of program loaded and executed on memory through network
CN114449504B (zh) 一种nfc标签的验证方法、电子设备及存储介质
CN109905395A (zh) 一种验证客户端可信的方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant