CN118133271A - 一种防止游戏代码泄露变成私服的防护方法 - Google Patents
一种防止游戏代码泄露变成私服的防护方法 Download PDFInfo
- Publication number
- CN118133271A CN118133271A CN202410546691.9A CN202410546691A CN118133271A CN 118133271 A CN118133271 A CN 118133271A CN 202410546691 A CN202410546691 A CN 202410546691A CN 118133271 A CN118133271 A CN 118133271A
- Authority
- CN
- China
- Prior art keywords
- verification
- server
- hash value
- sha256
- sha256 hash
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012795 verification Methods 0.000 claims abstract description 90
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 14
- 238000013475 authorization Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006854 communication Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001915 proofreading effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明属于信息安全技术领域,具体涉及一种防止游戏代码泄露变成私服的防护方法,包括:服务端启动,获取各硬件的字符串内容;服务端对获取的硬件字符串内容进行SHA256的计算处理,得到最终的SHA256哈希值;服务端检查本地/tmp目录下是否存在特定的文件;文件内容与最终计算的SHA256哈希值进行对比;反之,服务端把对硬件字符串内容计算的SHA256哈希值发送到验证端进行验证。本发明通过服务端和验证端的双重验证,可以准确地检测出游戏代码或二进制程序是否发生泄露,以及在发生代码泄露时,可以及时丢弃所有游戏数据,从而有效地防止了私服的运行。
Description
技术领域
本发明涉及信息安全技术领域,特别涉及一种防止游戏代码泄露变成私服的防护方法。
背景技术
随着互联网技术的发展,研发型公司对源代码日常管理的技术方式也发生巨大的变化,防止源代码泄露已成为网络开发安全的重要一环。在游戏开发运行过程中,可能会发生游戏代码泄露或二进制程序泄露;那么,当发生泄露情况时,再结合发生的所有游戏数据,就可能会诞生私服,这就大大地损害了公司的利益,更严重的是,会影响整个游戏的稳定运行。因此,如何检测是否发生代码泄露以及在发生游戏代码泄露时防止私服的诞生是目前亟待解决的问题。
发明内容
本发明的目的是为了解决背景技术存在的技术问题,为此,提供了一种防止游戏代码泄露变成私服的防护方法。
为了实现上述目的,本发明所采用的技术方案如下:
一种防止游戏代码泄露变成私服的防护方法,所述方法包括:
服务端启动,获取运行环境下的多个硬件信息,从而获取各硬件相对应的字符串内容;
服务端对获取的硬件字符串内容进行SHA256的计算处理,得到最终的SHA256哈希值;
服务端检查本地/tmp目录下是否存在特定的文件,该文件用于存储先前验证的SHA256哈希值;
若文件存在,服务端解密文件内容;
若解密成功,服务端将解密后的文件内容与最终计算的SHA256哈希值进行对比;
若对比一致,说明环境未被篡改、代码未泄露,服务端继续正常执行;
若文件不存在、解密失败或对比不一致,服务端把对硬件字符串内容计算的SHA256哈希值发送到验证端进行验证;
若验证端验证通过,服务端继续正常执行;
若验证端验证失败,服务端丢弃所有游戏数据。
以下为本发明进一步限定的技术方案,服务端启动,随机获取运行环境下的CPU、硬盘、网卡、内网IP地址四个硬件信息中的三个,从而获取三个硬件信息相对应的字符串内容。
以下为本发明进一步限定的技术方案,在对获取的硬件字符串内容进行SHA256的计算处理过程中,包括:
对获取的硬件字符串内容分别计算SHA256哈希值,并将计算出的SHA256哈希值进行字符串拼接;
对拼接后的字符串内容再计算SHA256哈希值,得到最终的SHA256哈希值。
以下为本发明进一步限定的技术方案,在服务端解密文件内容的过程中,使用最终计算的SHA256哈希值后32位作为AES密钥解密文件。
以下为本发明进一步限定的技术方案,当服务端获取的硬件信息不包含内网IP地址时,则服务端重新获取内网IP地址,并将内网IP地址与SHA256哈希值组成IP:SHA256格式发送到验证端进行验证;
当服务端获取的硬件信息包含内网IP地址时,服务端把SHA256哈希值发送到验证端进行验证。
以下为本发明进一步限定的技术方案,验证端收到来自服务端的验证请求时,进行3轮校对验证:
第一轮:验证发送请求的服务端远程IP地址是否属于已知的资产IP范围内;若在范围内,则第一轮校对验证通过;
第二轮:解密服务端发送过来的数据,解密后,数据内容中的内网IP地址与验证端的数据库中储存的值进行对比,验证是否相对应;若相对应,则第二轮校对验证通过;
第三轮:解密后数据内容中的CPU ID、硬盘ID或网卡ID的SHA256哈希值分别与验证端的数据库中储存的值进行对比,验证是否一一对应;若完全对应,则第三轮校对验证通过。
以下为本发明进一步限定的技术方案,若3轮校对验证全部通过,则表示验证端验证通过,服务端继续正常执行,并同时将SHA256哈希值储存到/tmp目录下特定的文件内;反之,则表示验证端验证失败,服务端不退出,但将所有游戏数据进行丢弃。
以下为本发明进一步限定的技术方案,验证端的数据库用于采集服务端环境数据。
相对于现有技术,本发明具有如下技术效果:
本发明通过服务端和验证端的双重验证,可以准确地检测出游戏代码或二进制程序是否发生泄露,以及在发生代码泄露时,可以及时丢弃所有游戏数据,从而有效地防止了私服的运行;再通过验证端的数据库更新及验证,可以保障授权用户在更新硬件后的正常运行。
下面结合附图与实施例,对本发明进一步说明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。
如图1所示,本实施例提供一种防止游戏代码泄露变成私服的防护方法,为了应对可能发生的代码泄露或二进制程序泄露,确保每一个二进制运行后,进行启动授权,授权通过的服务端将会正常运行并且不影响二进制对应功能,对于授权不通过的,二进制进程不退出,但对所有游戏数据进行丢弃处理,实现了发生泄露情况时真正防止私服的诞生。
上述方法的实现逻辑包括:
服务端主要步骤包括:
a.服务端启动:
服务端程序启动后,首先进行一个随机时间的等待(5-15分钟),这个等待是为了确保所有的***资源已经加载完毕,运行环境稳定。
b.获取硬件信息:
当前运行环境稳定后,随机获取硬件信息中的三个,其中,硬件信息包括:CPU、硬盘、网卡(MAC地址)、内网IP地址。需要说明的是,本实施例中硬件信息的数量不局限于以上四种,服务端具有识别特征的硬件信息均在本发明获取硬件信息的范围之内。采用3个数据信息可以大大地减少数据处理量,加快数据处理速率,同时,利用随机数学的随机概率方式保证了获取的数据的有效性。
基于服务端获取的三个硬件信息,从而获取三个硬件信息相对应的字符串内容。
c.SHA256计算及合成:
对获取的硬件字符串内容分别计算SHA256哈希值,并将这三个计算出的SHA256哈希值进行字符串拼接;
对拼接后的字符串内容再计算SHA256哈希值,得到最终的SHA256哈希值。
为了使得本领域技术人员更加清楚的理解,本实施例对SHA256的计算原理作进一步的说明:SHA-256是一种密码哈希函数,用于将任意长度的输入数据映射为固定长度的输出。SHA代表安全哈希算法(Secure Hash Algorithm),256表示输出的位数为256位(32字节)。SHA-256的计算过程基本上是通过对输入数据进行一系列复杂的数学运算来生成一个唯一的、固定长度的输出,即哈希值。这个过程包括了位操作、加法、旋转等步骤,以确保生成的哈希值具有以下特性:固定长度输出、唯一性、抗碰撞性、不可逆性。
d.检查本地文件:
服务端检查本地/tmp目录下是否存在特定的文件,该文件用于存储先前验证的SHA256哈希值。
e.解密文件:
若文件存在,使用最终计算的SHA256哈希值后32位作为AES密钥解密文件。
f.对比SHA256:
若解密成功,服务端读取解密后的文件内容,并将其与最终计算的SHA256哈希值进行对比。
g.数据对比一致并继续正常执行:
若对比一致,说明环境未被篡改、代码未泄露,服务端继续正常执行。需要说明的是,在服务端全部通过步骤d、e、f的SHA256哈希值,说明本地/tmp目录下的特定文件内含有步骤c计算的SHA256哈希值,步骤c计算的SHA256哈希值就无需储存到/tmp/xxx文件内。
h.异常情况:
若文件不存在、解密失败或对比不一致,则服务端把对硬件字符串内容计算的SHA256哈希值发送到验证端进行验证。
由于步骤b的硬件信息是随机获取的,且验证端必须验证内网IP地址的数据,因此,在这个过程中,分为两种情况:
1)、当服务端获取的硬件信息不包含内网IP地址时,则服务端重新获取内网IP地址,并将内网IP地址与SHA256哈希值组成IP:SHA256格式发送到验证端进行验证;
2)、当服务端获取的硬件信息包含内网IP地址时,服务端把SHA256哈希值发送到验证端进行验证。
需要注意的是,在服务端到验证端的通信过程中,需要注意HTTPS证书错误处理:
具体地,如果服务端忽略了HTTPS证书错误,将会使整个验证过程变得不安全,因为这可能导致服务端接收到伪造的验证结果。正确的处理方式是:一旦检测到HTTPS证书错误,服务端应立即停止与验证端的通信,并按照安全策略处理,比如丢弃所有接收到的游戏数据,避免可能的私服问题。
基于上述注意事项,进行举例:如开发人员编写的代码没有按照提示进行了忽略HTTPS证书验证,那么将导致验证端被伪造的成功性,如以下C++代码将会导致验证端被伪造:
C++
1 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); // 忽略证书验证;
2 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); // 忽略主机名验证;
正确的做法时,不能够忽略远程验证端的HTTPS证书错误报错。
验证端主要步骤包括:
A.数据库的建立:
信息安全中心事先对内RO服务端环境数据进行采集,并存入后端数据库。
B.数据接收:
验证端收到RO服务端发送的数据。
C.验证远程IP地址:
核实发送请求的服务端远程IP地址是否属于合法已知的资产IP范围内。
D.验证内网IP地址:
验证服务端发送的内网IP地址是否与数据库中的数据相对应。
E.验证核心数据:
验证服务端发送的核心数据(CPU ID、硬盘ID或网卡ID的SHA256哈希值)是否与数据库中的数据相对应。
需要说明的是,若服务端发送过来的内网IP地址和核心数据,在发送到验证端之前,使用AES加密算法,采用最终计算的SHA256哈希值后32位作为约定密钥进行加密;则在验证端的过程中,需要对其进行AES解密,一般采用最终计算的SHA256哈希值后32位作为AES密钥解密文件。
若服务端发送过来的内网IP地址和核心数据,在发送到验证端之前,未使用AES加密,则在验证端的过程中,无需解密。
在本实施例中,优选在服务端使用AES加密算法,约定的密钥进行加密后,发送给验证端进行验证服务。
F.验证通过:
若步骤C、D、E全部验证通过,验证端返回ture给服务端。
服务端在接收验证端数据为True后继续执行游戏数据的处理,并同时将SHA256哈希值写入到/tmp目录下xxx文件,并用AES加密算法,SHA256哈希值后32位作为密钥进行加密存储。
G.验证失败:
若步骤C、D、E有任一项验证失败,验证端返回false给服务端。
服务端在接收验证端数据为false后不退出,但将所有游戏数据进行丢弃。
本实施例举出一个未授权且已经发生代码泄露的案例:非授权用户尝试使用泄露的二进制文件启动服务端。由于他们的硬件信息与信息安全中心的数据库记录不符,验证端返回False,服务端进程继续运行,但不处理任何游戏数据(即丢弃所有游戏数据),从而有效地防止了私服的运行。
本实施例再举出一个授权的案例:正规合作服务提供商(授权用户)在升级硬件后忘记了更新信息安全中心的数据库。启动后,由于SHA256哈希值不匹配,服务端无法通过验证。这一情况促使合作服务提供商(授权用户)及时与信息安全中心沟通,更新了数据库,保障了服务的正常运行。这也体现了该防护机制能够有效地控制服务端的运行环境,并防止未经授权的变更。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。故凡是未脱离本发明技术方案的内容,依据本发明之形状、构造及原理所作的等效变化,均应涵盖于本发明的保护范围内。
Claims (8)
1.一种防止游戏代码泄露变成私服的防护方法,其特征在于,所述方法包括:
服务端启动,获取运行环境下的多个硬件信息,从而获取各硬件相对应的字符串内容;
服务端对获取的硬件字符串内容进行SHA256的计算处理,得到最终的SHA256哈希值;
服务端检查本地/tmp目录下是否存在特定的文件,该文件用于存储先前验证的SHA256哈希值;
若文件存在,服务端解密文件内容;
若解密成功,服务端将解密后的文件内容与最终计算的SHA256哈希值进行对比;
若对比一致,说明环境未被篡改、代码未泄露,服务端继续正常执行;
若文件不存在、解密失败或对比不一致,服务端把对硬件字符串内容计算的SHA256哈希值发送到验证端进行验证;
若验证端验证通过,服务端继续正常执行;
若验证端验证失败,服务端丢弃所有游戏数据。
2.如权利要求1所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,服务端启动,随机获取运行环境下的CPU、硬盘、网卡、内网IP地址四个硬件信息中的三个,从而获取三个硬件信息相对应的字符串内容。
3.如权利要求2所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,在对获取的硬件字符串内容进行SHA256的计算处理过程中,包括:
对获取的硬件字符串内容分别计算SHA256哈希值,并将计算出的SHA256哈希值进行字符串拼接;
对拼接后的字符串内容再计算SHA256哈希值,得到最终的SHA256哈希值。
4.如权利要求3所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,在服务端解密文件内容的过程中,使用最终计算的SHA256哈希值后32位作为AES密钥解密文件。
5.如权利要求2所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,当服务端获取的硬件信息不包含内网IP地址时,则服务端重新获取内网IP地址,并将内网IP地址与SHA256哈希值组成IP:SHA256格式发送到验证端进行验证;
当服务端获取的硬件信息包含内网IP地址时,服务端把SHA256哈希值发送到验证端进行验证。
6.如权利要求5所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,验证端收到来自服务端的验证请求时,进行3轮校对验证:
第一轮:验证发送请求的服务端远程IP地址是否属于已知的资产IP范围内;若在范围内,则第一轮校对验证通过;
第二轮:解密服务端发送过来的数据,解密后,数据内容中的内网IP地址与验证端的数据库中储存的值进行对比,验证是否相对应;若相对应,则第二轮校对验证通过;
第三轮:解密后数据内容中的CPU ID、硬盘ID或网卡ID的SHA256哈希值分别与验证端的数据库中储存的值进行对比,验证是否一一对应;若完全对应,则第三轮校对验证通过。
7.如权利要求6所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,若3轮校对验证全部通过,则表示验证端验证通过,服务端继续正常执行,并同时将SHA256哈希值储存到/tmp目录下特定的文件内;反之,则表示验证端验证失败,服务端不退出,但将所有游戏数据进行丢弃。
8.如权利要求6所述的一种防止游戏代码泄露变成私服的防护方法,其特征在于,验证端的数据库用于采集服务端环境数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410546691.9A CN118133271A (zh) | 2024-05-06 | 2024-05-06 | 一种防止游戏代码泄露变成私服的防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410546691.9A CN118133271A (zh) | 2024-05-06 | 2024-05-06 | 一种防止游戏代码泄露变成私服的防护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118133271A true CN118133271A (zh) | 2024-06-04 |
Family
ID=91246042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410546691.9A Pending CN118133271A (zh) | 2024-05-06 | 2024-05-06 | 一种防止游戏代码泄露变成私服的防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118133271A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577666A (zh) * | 2015-12-25 | 2016-05-11 | 北京像素软件科技股份有限公司 | 一种验证网络服务器的方法和*** |
CN107508682A (zh) * | 2017-08-16 | 2017-12-22 | 努比亚技术有限公司 | 浏览器证书认证方法及移动终端 |
-
2024
- 2024-05-06 CN CN202410546691.9A patent/CN118133271A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577666A (zh) * | 2015-12-25 | 2016-05-11 | 北京像素软件科技股份有限公司 | 一种验证网络服务器的方法和*** |
CN107508682A (zh) * | 2017-08-16 | 2017-12-22 | 努比亚技术有限公司 | 浏览器证书认证方法及移动终端 |
Non-Patent Citations (2)
Title |
---|
周奕明: "私服防御***的设计与实现", 《中国优秀硕士论文全文数据库》, 15 June 2008 (2008-06-15), pages 53 - 60 * |
杨珂: "多人同时在线网络游戏安全性和性能评估", 中国优秀硕士学位论文全文数据库, no. 03, 15 March 2015 (2015-03-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102665929B1 (ko) | 물리적으로 복제 불가능한 기능의 원격 재등록 | |
CN110493197B (zh) | 一种登录处理方法及相关设备 | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
US6950523B1 (en) | Secure storage of private keys | |
CN110519309B (zh) | 数据传输方法、装置、终端、服务器及存储介质 | |
CN100512201C (zh) | 用于处理分组业务的接入-请求消息的方法 | |
US10880298B2 (en) | Method for generating a key and access control method | |
US20060005046A1 (en) | Secure firmware update procedure for programmable security devices | |
KR100702499B1 (ko) | 메시지 무결성 보증 시스템, 방법 및 기록 매체 | |
CN115396121B (zh) | 安全芯片ota数据包的安全认证方法及安全芯片装置 | |
KR20120053929A (ko) | 전자서명키 이중 암호화를 이용한 전자서명 대행 시스템과 웹 저장소에 저장을 특징으로 하는 그 방법 | |
CN111143808B (zh) | ***安全认证方法、装置及计算设备、存储介质 | |
CN107548542B (zh) | 经强化完整性及安全性的用户认证方法 | |
CN114741704A (zh) | 一种基于婚恋交友的隐私保护方法、装置、设备及介质 | |
CN108376212B (zh) | 执行代码安全保护方法、装置及电子装置 | |
CN114448794B (zh) | 一种基于芯片可信根对固件进行安全升级的方法及装置 | |
CN115766192A (zh) | 基于ukey的离线安全认证方法、装置、设备及介质 | |
CN118133271A (zh) | 一种防止游戏代码泄露变成私服的防护方法 | |
CN116781265A (zh) | 一种数据加密的方法和装置 | |
CN117857060B (zh) | 一种二维码离线核验方法、***及存储介质 | |
CN116629871B (zh) | 一种订单线上支付***及支付方法 | |
CN114650175B (zh) | 一种验证方法及装置 | |
CN112580109B (zh) | 一种借鉴区块链签名技术的软件业务流程合法性设计方法 | |
CN114697119B (zh) | 数据检验方法、装置、计算机可读存储介质及电子设备 | |
CN114745192B (zh) | 通讯方法、***、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |