CN102831361A - 服务器防泄漏系统 - Google Patents
服务器防泄漏系统 Download PDFInfo
- Publication number
- CN102831361A CN102831361A CN2012102884313A CN201210288431A CN102831361A CN 102831361 A CN102831361 A CN 102831361A CN 2012102884313 A CN2012102884313 A CN 2012102884313A CN 201210288431 A CN201210288431 A CN 201210288431A CN 102831361 A CN102831361 A CN 102831361A
- Authority
- CN
- China
- Prior art keywords
- image
- file
- address
- headers
- header
- 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.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了服务器防泄漏系统,其特征是包括分离代码段和还原原始PE段。分离代码段步骤:获取PE文件的IMAGE_DOS_HEADER结构,再获取IMAGE_DOS_HEADER、IMAGE_NT_HEADERS、MAGE_OPTIONAL_HEADER、IMAGE_SECTION_HEADE结构,生成MPE文件。还原原始PE文件步骤:创建MPE进程;下载及解密MPE代码段数据;打开进程句柄;修改内存属性;将代码段数据写入目标空间;还原目标进程地址空间的页属性;运行MPE进程,完成启动。本发明可防止源程序被盗,不影响源程序使用,同时做到源程序完全不会被破解,可以有效防止私服产生。
Description
技术领域
本发明属于计算机系统领域,具体地说,涉及一种服务器防泄漏系统。
背景技术
“私服”是一种未经版权拥有者授权,以不正当手段获得游戏服务器端安装程序之后设立的网络服务器,它属于网络盗版的一种,是侵害著作权的行为。私服”在客观上分流了大量的游戏玩家,不但使游戏企业的经营受到影响,更主要的是它扰乱了网络文化市场。
私服运营者在损害了游戏运营商和游戏制作方的经济利益的同时,也侵犯了知识产权。为了加速其非法获利,势必会采取一些例如贩卖角色信息、游戏装备、金币等破坏游戏平衡的手段,除了会造成用户分流,为运营商和游戏制作商带来不可估量的经济损失外,也会影响正常游戏玩家的体验。同时私服损害了中国保护知识产权的国际声誉,而且妨碍了文化创意产业的对外交流合作与贸易。
私服脱离了政府有关部门的监管,对游戏内的舆论环境无法控制。使用本程序,可以有效的防止服务器程序泄密,避免因私服中出现的血腥暴力、黄色言语而对游戏用户产生的不良影响,从而净化信息,使网游用户能够在绿色环境中进行游戏,培养正确的价值观。
私服还可能成为其他违法犯罪的温床。本程序可以有效遏制通过私服非法获利的黑色产业链,以及预防可能发生的网络犯罪行为,同时可以维护游戏厂商的正当利益及用户的隐私权。如今的网络犯罪已经组织化、规模化、公开化,形成了一个非常完善的产业链。除了经营私服的非法收入外,私服中常见的木马程序还会盗取游戏用户的个人信息、账号、游戏装备、私人照片、私人视频、和个人财产信息。私服经营者或木马程序制造者除贩卖这些私人信息获取非法利益外,甚至还会盗用用户的银行账户实行经济犯罪。
私服还严重恶化文化创意产业、网络游戏产业的发展环境,阻碍产业健康发展,是一种侵犯游戏版权的盗窃行为。
目前我国网游私服已经形成了一条完整的地下产业链,从私服开发、代理、经营以及广告发布、提供支付平台等,分工明确,获利丰厚。也就是说,从小作坊式的私服运营中获利后,这个群体甚至在走向“有序化”。但纠其根源,私服产生的源头是由于游戏服务器源程序的泄漏造成的,源程序的泄漏主要产生的三个环节:(1)开发商管理不善导致源程序流出。(2)运营商运维环节管理不善导致程序流出。(3)运营商需在各地架设服务器,机房管理环节导致的程序流出。
从以上三点可以看出,由于网络游戏开发和运营的特殊性,不得不面临源程序多人经手导致了私服屡禁不止的现状。
发明内容
为了克服以上所述的不足,本发明提供了一种在不影响游戏运营的基础上防止源程序被盗且不影响源程序使用,同时做到即使源程序泄露,也完全不会被破解的服务器防泄漏系统。
为解决上述问题,本发明所采用的技术方案是:
服务器防泄漏系统,其特征在于:包含分离代码段部分和还原原始PE段部分。
进一步地说:
所述分离代码段部分的具体步骤如下:
1)、首先获取PE文件的IMAGE_DOS_HEADER结构;
PE文件在内存中的首地址即为:IMAGE_DOS_HEADER结构的起始地址,其中,e_lfanew字段指向的就是IMAGE_NT_HEADERS结构的偏移地址;
2)、通过IMAGE_DOS_HEADER结构获取IMAGE_NT_HEADERS结构;
通过IMAGE_DOS_HEADER结构的e_lfanew字段就可获得IMAGE_NT_HEADERS结构的首地址信息;
通过IMAGE_NT_HEADERS结构获取IMAGE_FILE_HEADER结构;
通过IMAGE_NT_HEADERS结构的FileHeader字段就可获得IMAGE_FILE_HEADER结构的偏移地址;再通过IMAGE_FILE_HEADER的NumberOfSections字段就可获得PE文件的节数量;
4)、通过IMAGE_NT_HEADERS结构获取IMAGE_OPTIONAL_HEADER结构;
通过IMAGE_NT_HEADERS结构的OptionalHeader字段就可以获得IMAGE_OPTIONAL_HEADER结构的偏移地址;
5)、通过IMAGE_NT_HEADERS结构获取IMAGE_SECTION_HEADER结构;
通过IMAGE_FIRST_SECTION宏可以从IMAGE_NT_HEADERS结构中分离出第一个IMAGE_SECTION_HEADER结构的首地址偏移;
6)、遍历PE文件的所有IMAGE_SECTION_HEADE结构,找出所有的属性为IMAGE_SCN_CNT_CODE的节,我们把这些节称之为:代码段;
7)、将原始PE文件的代码段全部复制到一个缓冲区,并将原始文件的这些代码段用0x00填充并保存;
8)、将复制出的代码段加密并上传到专用的安全服务器保存;
至此,PE文件的代码段分离工作完成,被分离了代码段的PE文件,简称为MPE文件。
更进一步地说:
所述在内存中还原原始PE文件并运行的具体步骤如下:
1)、利用CreateProcess函数创建MPE文件进程并挂起进程;
2)、在内存里下载及解密该MPE文件对应的代码段数据;
3)、打开MPE文件进程句柄;
4)、利用VirtualProtectEx函数修改对应地址的内存属性,改为可写状态;
5)、利用WriteProcessMemory函数,将解密还原的代码段数据依次写入目标进程地址空间;
6)、利用VirtualProtectEx函数还原目标进程地址空间的页属性;
7)、运行MPE进程,完成启动过程。
更进一步地说:
所述首地址为基地址加上e_lfanew的值。
由于采用了上述技术方案,与现有技术相比,本发明分析Windows的PE文件格式,采用自动分析的方式来将可运行程序的代码部分分离并加密,使原始的可运行程序无法直接运行,从而达到使非法者即使获取了可运行程序依然无法运行,并且由于该程序已经没有可运行的代码了,所以即使采用一些逆向工程手段和反编译手段也无法获得原始程序,进而保证了该可运行程序的安全。该方法比传统的给程序加壳的方式要安全很多,因为加壳方式是可以通过一些技术手段完成脱壳,从而获得原始程序。
本发明中采用C/S结构,共包含三个程序:运营商工具MPEServer,开发商工具MPEMaker及通用工具MPEStarter。此三个程序可以为游戏源程序自动生成保护壳,防止源程序被盗,不影响源程序使用,同时做到即使源程序泄露,也完全不会被破解。本发明通过此原理,可以有效防止私服产生。
具体实施方式
下面结合实例对本发明作进一步说明:
实施例:
在本发明中,服务器防泄漏系统包含分离代码段部分和还原原始PE段部分这两部分。这两部分一般采用的是顺寻工作的方式工作。
第一阶段是分离代码段部分,其具体步骤如下:
1)、首先获取PE文件的IMAGE_DOS_HEADER结构。
PE文件在内存中的首地址即为:IMAGE_DOS_HEADER结构的起始地址,其中,e_lfanew字段指向的就是IMAGE_NT_HEADERS结构的偏移地址。
2)、通过IMAGE_DOS_HEADER结构获取IMAGE_NT_HEADERS结构。
通过IMAGE_DOS_HEADER结构的e_lfanew字段就可获得IMAGE_NT_HEADERS结构的首地址信息。在本步骤中,首地址为基地址加上e_lfanew的值。
通过IMAGE_NT_HEADERS结构获取IMAGE_FILE_HEADER结构。
通过IMAGE_NT_HEADERS结构的FileHeader字段就可获得IMAGE_FILE_HEADER结构的偏移地址;再通过IMAGE_FILE_HEADER的NumberOfSections字段就可获得PE文件的节数量。
4)、通过IMAGE_NT_HEADERS结构获取IMAGE_OPTIONAL_HEADER结构。
通过IMAGE_NT_HEADERS结构的OptionalHeader字段就可以获得IMAGE_OPTIONAL_HEADER结构的偏移地址。
5)、通过IMAGE_NT_HEADERS结构获取IMAGE_SECTION_HEADER结构。
通过IMAGE_FIRST_SECTION宏可以从IMAGE_NT_HEADERS结构中分离出第一个IMAGE_SECTION_HEADER结构的首地址偏移。
6)、遍历PE文件的所有IMAGE_SECTION_HEADE结构,找出所有的属性为IMAGE_SCN_CNT_CODE的节,我们把这些节称之为:代码段。
7)、将原始PE文件的代码段全部复制到一个缓冲区,并将原始文件的这些代码段用0x00填充并保存。
8)、将复制出的代码段加密并上传到专用的安全服务器保存;
至此,PE文件的代码段分离工作完成,被分离了代码段的PE文件,简称为MPE文件。
第一阶段是在内存中还原原始PE文件并运行,其具体步骤如下:
1)、利用CreateProcess函数创建MPE文件进程并挂起进程。
2)、在内存里下载及解密该MPE文件对应的代码段数据。
3)、打开MPE文件进程句柄。
4)、利用VirtualProtectEx函数修改对应地址的内存属性,改为可写状态。
5)、利用WriteProcessMemory函数,将解密还原的代码段数据依次写入目标进程地址空间。
6)、利用VirtualProtectEx函数还原目标进程地址空间的页属性。
7)、运行MPE进程,完成启动过程,对服务器进行防泄漏保护。
本发明分析Windows的PE文件格式,采用自动分析的方式来将可运行程序的代码部分分离并加密,使原始的可运行程序无法直接运行,从而达到使非法者即使获取了可运行程序依然无法运行,并且由于该程序已经没有可运行的代码了,所以即使采用一些逆向工程手段和反编译手段也无法获得原始程序,进而保证了该可运行程序的安全。该方法比传统的给程序加壳的方式要安全很多,因为加壳方式是可以通过一些技术手段完成脱壳,从而获得原始程序。
本发明中采用C/S结构,共包含三个程序:运营商工具MPEServer,开发商工具MPEMaker及通用工具MPEStarter。此三个程序可以为游戏源程序自动生成保护壳,防止源程序被盗,不影响源程序使用,同时做到即使源程序泄露,也完全不会被破解。本发明通过此原理,可以有效防止私服产生。最后应当说明的是,以上内容仅用以说明本发明的技术方案,而非对本发明保护范围的限制,本领域的普通技术人员对本发明的技术方案进行的简单修改或者等同替换,均不脱离本发明技术方案的实质和范围。
Claims (4)
1.服务器防泄漏系统,其特征在于:包含分离代码段部分和还原原始PE段部分。
2.根据权利要求1中所述的服务器防泄漏系统,其特征在于:所述分离代码段部分的具体步骤如下:
1)、首先获取PE文件的IMAGE_DOS_HEADER结构;
PE文件在内存中的首地址即为:IMAGE_DOS_HEADER结构的起始地址,其中,e_lfanew字段指向的就是IMAGE_NT_HEADERS结构的偏移地址;
2)、通过IMAGE_DOS_HEADER结构获取IMAGE_NT_HEADERS结构;
通过IMAGE_DOS_HEADER结构的e_lfanew字段就可获得IMAGE_NT_HEADERS结构的首地址信息;
通过IMAGE_NT_HEADERS结构获取IMAGE_FILE_HEADER结构;
通过IMAGE_NT_HEADERS结构的FileHeader字段就可获得IMAGE_FILE_HEADER结构的偏移地址;再通过IMAGE_FILE_HEADER的NumberOfSections字段就可获得PE文件的节数量;
4)、通过IMAGE_NT_HEADERS结构获取IMAGE_OPTIONAL_HEADER结构;
通过IMAGE_NT_HEADERS结构的OptionalHeader字段就可以获得IMAGE_OPTIONAL_HEADER结构的偏移地址;
5)、通过IMAGE_NT_HEADERS结构获取IMAGE_SECTION_HEADER结构;
通过IMAGE_FIRST_SECTION宏可以从IMAGE_NT_HEADERS结构中分离出第一个IMAGE_SECTION_HEADER结构的首地址偏移;
6)、遍历PE文件的所有IMAGE_SECTION_HEADE结构,找出所有的属性为IMAGE_SCN_CNT_CODE的节,我们把这些节称之为:代码段;
7)、将原始PE文件的代码段全部复制到一个缓冲区,并将原始文件的这些代码段用0x00填充并保存;
8)、将复制出的代码段加密并上传到专用的安全服务器保存;
至此,PE文件的代码段分离工作完成,被分离了代码段的PE文件,简称为MPE文件。
3.根据权利要求2中所述的服务器防泄漏系统,其特征在于:所述在内存中还原原始PE文件并运行的具体步骤如下:
1)、利用CreateProcess函数创建MPE文件进程并挂起进程;
2)、在内存里下载及解密该MPE文件对应的代码段数据;
3)、打开MPE文件进程句柄;
4)、利用VirtualProtectEx函数修改对应地址的内存属性,改为可写状态;
5)、利用WriteProcessMemory函数,将解密还原的代码段数据依次写入目标进程地址空间;
6)、利用VirtualProtectEx函数还原目标进程地址空间的页属性;
7)、运行MPE进程,完成启动过程。
4.根据权利要求2中所述的服务器防泄漏系统,其特征在于:所述首地址为基地址加上e_lfanew的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210288431.3A CN102831361B (zh) | 2012-08-14 | 2012-08-14 | 服务器防泄漏系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210288431.3A CN102831361B (zh) | 2012-08-14 | 2012-08-14 | 服务器防泄漏系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102831361A true CN102831361A (zh) | 2012-12-19 |
CN102831361B CN102831361B (zh) | 2015-04-08 |
Family
ID=47334494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210288431.3A Active CN102831361B (zh) | 2012-08-14 | 2012-08-14 | 服务器防泄漏系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831361B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392151A (zh) * | 2014-11-27 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN109558745A (zh) * | 2017-09-25 | 2019-04-02 | 赖育承 | 对电子档进行保护的方法及其电脑程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060156397A1 (en) * | 2005-01-13 | 2006-07-13 | Steven Dai | A New Anti-spy method without using scan |
CN101236590A (zh) * | 2008-03-07 | 2008-08-06 | 北京邮电大学 | 一种基于门限密码体制的软件分割保护的实现方法 |
CN101980160A (zh) * | 2010-10-28 | 2011-02-23 | 北京飞天诚信科技有限公司 | 一种.net程序加密后的执行方法 |
CN102592103A (zh) * | 2011-01-17 | 2012-07-18 | 中国电信股份有限公司 | 文件安全处理方法、设备及系统 |
-
2012
- 2012-08-14 CN CN201210288431.3A patent/CN102831361B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060156397A1 (en) * | 2005-01-13 | 2006-07-13 | Steven Dai | A New Anti-spy method without using scan |
CN101236590A (zh) * | 2008-03-07 | 2008-08-06 | 北京邮电大学 | 一种基于门限密码体制的软件分割保护的实现方法 |
CN101980160A (zh) * | 2010-10-28 | 2011-02-23 | 北京飞天诚信科技有限公司 | 一种.net程序加密后的执行方法 |
CN102592103A (zh) * | 2011-01-17 | 2012-07-18 | 中国电信股份有限公司 | 文件安全处理方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
段钢: "《加密与解密(第三版)》", 31 December 2008, 电子工业出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392151A (zh) * | 2014-11-27 | 2015-03-04 | 北京深思数盾科技有限公司 | 一种软件保护方法及系统 |
CN109558745A (zh) * | 2017-09-25 | 2019-04-02 | 赖育承 | 对电子档进行保护的方法及其电脑程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN102831361B (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698986B2 (en) | Method and apparatus for embedding and extracting text watermark | |
Bos et al. | Differential computation analysis: Hiding your white-box designs is not enough | |
Bechtold | Digital rights management in the United States and Europe | |
US7464269B2 (en) | Secure method and system for handling and distributing digital media | |
US9485089B2 (en) | Stego key management | |
CN106506159A (zh) | 用于密钥安全的加密方法和设备 | |
CN106650327A (zh) | 基于动态恢复so文件的Android应用加固方法 | |
Kocher et al. | Self-protecting digital content | |
CN101261666B (zh) | 一种通过加密可执行程序文件实现软件版权保护的方法 | |
CN107273724A (zh) | 为白盒实施方案的输入和输出加水印 | |
Koops et al. | Cybercrime and jurisdiction | |
CN102831361B (zh) | 服务器防泄漏系统 | |
CN103544443B (zh) | 一种ntfs文件系统下应用层文件隐藏方法 | |
US20170098089A1 (en) | Method of protecting secret data when used in a cryptographic algorithm | |
CN113051357B (zh) | 一种基于博弈论的矢量地图最优化局部脱敏方法 | |
CN113821770A (zh) | 一种针对共享数据保护的定向对抗下毒攻击方法 | |
US12007908B2 (en) | Method and apparatus to dynamically encode data at runtime | |
Wang et al. | Field experience with obfuscating million‐user iOS apps in large enterprise mobile development | |
Kumar et al. | An Evaluation of Dynamic Java Bytecode Software Watermarking Algorithms | |
US11152034B2 (en) | Chain-of-manipulation tracking of audio-video content | |
Myles | Using software watermarking to discourage piracy | |
Campbell | The Legal Implications of Sony's Cyberhack | |
Sun et al. | Introducing code assets of a new white-box security modeling language | |
Du et al. | Intellectual Property Protection of Image Processing Models with Watermarking | |
Atallah | Battening down the digital hatches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |