CN108985014A - 一种导出保护游戏中的Python字节码文件的方法及装置 - Google Patents
一种导出保护游戏中的Python字节码文件的方法及装置 Download PDFInfo
- Publication number
- CN108985014A CN108985014A CN201810608277.0A CN201810608277A CN108985014A CN 108985014 A CN108985014 A CN 108985014A CN 201810608277 A CN201810608277 A CN 201810608277A CN 108985014 A CN108985014 A CN 108985014A
- Authority
- CN
- China
- Prior art keywords
- python
- game
- byte
- code files
- file
- 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 82
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 230000003068 static effect Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000002452 interceptive effect Effects 0.000 claims description 11
- 238000009434 installation Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Pinball Game Machines (AREA)
Abstract
一种导出保护游戏中的Python字节码文件的方法,包括以下步骤:A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;C、在游戏加载Python模块之前,在游戏进程注入所述动态链接库,利用所述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。本发明还提出一种导出保护游戏中的Python字节码文件的装置。本发明的有益效果为:提出通过监测Python虚拟机引擎,从而确认手机游戏是否被破解。
Description
技术领域
本发明涉及到软件开发领域,尤其涉及一种导出保护游戏中的Python字节码文件的方法及装置。
背景技术
随着手机应用程序的开发技术日渐完善,市场上出现种类丰富、玩法多样的手机游戏激烈竞争。游戏开发公司为了尽早占领市场,常常希望尽量压缩手机游戏的开发周期和测试周期,从而让手机游戏提早上架应用商店。为此,基于实际开发环境的考虑,手机游戏常常会使用解释型的脚本语言来开发,以省略应用程序的编译过程。其中,Python由于其自身的高效特点,被许多游戏开发公司用作主要的开发语言。
然而,从手机应用程序自身的安全角度来看,这也可能成为一个潜在的隐患。因为作为解释型语言,手机游戏的Python字节码文件(.pyc或.pyo)是不能被加密的,这意味着发布手机应用程序同时,源代码也一并对外公布。事实上,现有大量的工具反编译Python字节码文件,例如开源网站GitHub上的Mysterie/uncompyle2工具,其可反编译版本号为2.5至2.7之间的Python字节码文件。因此,黑客理论上可以通过破解手机游戏而获取手机应用程序的源代码。通过对上述源代码进行分析,其可针对性地开发手机游戏的外挂,从而使得手机游戏的外挂横行,影响正常用户的用户体验。
发明内容
本发明提供一种导出保护游戏中的Python字节码文件的方法及装置,通过监测Python虚拟机引擎,从而确认手机游戏是否被破解的技术效果。
首先,本发明的技术方案第一方面为一种导出保护游戏中的Python字节码文件的方法,上述方法包括以下步骤:A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;C、在游戏加载Python模块之前,在游戏进程注入上述动态链接库,利用上述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
在本发明的一个或多个方法实施例中,上述步骤A还包括以下子步骤:读取Python项目的源码中的r_object函数的定义文件,确定r_object函数的索引字段;通过交互式反汇编器(Interactive Disassembler,简称为IDA),预先打开游戏的可执行文件,在交互式反汇编器的当前字符串表中检索r_object函数的索引字段;记录r_object函数对应的偏移地址。
在本发明的一个或多个方法实施例中,上述步骤B还包括以下子步骤:在上述动态链接库中提供划分Python字节内容的字节位置的句柄,用于划分Python字节内容中的魔数部分、时间戳部分和字节码对象部分,其中使字节码对象部分作为输出内容保存为pyc或pyo格式的字节码文件。
在本发明的一个或多个方法实施例中,上述步骤C还包括以下子步骤:通过Windows的API函数SetWindowsHookEx将上述动态链接库注入到游戏进程,使得启动游戏时导出Python字节码文件。
在本发明的一个或多个方法实施例中,上述方法包括以下步骤:D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
进一步地,在本发明的上述方法实施例中,对导出的Python字节码文件进行备份和加密。
其次,本发明的技术方案第二方面为一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,上述处理器执行程序时实现以下步骤:A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;C、在游戏加载Python模块之前,在游戏进程注入上述动态链接库,利用上述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
在本发明的一个或多个方法实施例中,处理器执行上述程序时实现的步骤A还包括以下子步骤:读取Python项目的源码中的r_object函数的定义文件,确定r_object函数的索引字段;通过交互式反汇编器(Interactive Disassembler,简称为IDA),预先打开游戏的可执行文件,在交互式反汇编器的当前字符串表中检索r_object函数的索引字段;记录r_object函数对应的偏移地址。
在本发明的一个或多个方法实施例中,处理器执行上述程序时实现的步骤B还包括以下子步骤:在上述动态链接库中提供划分Python字节内容的字节位置的句柄,用于划分Python字节内容中的魔数部分、时间戳部分和字节码对象部分,其中使字节码对象部分作为输出内容保存为pyc或pyo格式的字节码文件。
在本发明的一个或多个方法实施例中,处理器执行上述程序时实现的步骤C还包括以下子步骤:通过Windows的API函数SetWindowsHookEx将上述动态链接库注入到游戏进程,使得启动游戏时导出Python字节码文件。
在本发明的一个或多个方法实施例中,处理器执行上述程序时实现的步骤还包括:D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
最后,本发明的技术方案第三方面为一种计算机可读存储介质,其上储存有计算机程序,上述计算机程序被处理器执行时实现以下步骤:A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;C、在游戏加载Python模块之前,在游戏进程注入上述动态链接库,利用上述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
在本发明的一个或多个方法实施例中,计算机程序被处理器执行时实现的步骤A还包括以下子步骤:读取Python项目的源码中的r_object函数的定义文件,确定r_object函数的索引字段;通过交互式反汇编器(Interactive Disassembler,简称为IDA),预先打开游戏的可执行文件,在交互式反汇编器的当前字符串表中检索r_object函数的索引字段;记录r_object函数对应的偏移地址。
在本发明的一个或多个方法实施例中,计算机程序被处理器执行时实现步骤B还包括以下子步骤:在上述动态链接库中提供划分Python字节内容的字节位置的句柄,用于划分Python字节内容中的魔数部分、时间戳部分和字节码对象部分,其中使字节码对象部分作为输出内容保存为pyc或pyo格式的字节码文件。
在本发明的一个或多个方法实施例中,计算机程序被处理器执行时实现的步骤C还包括以下子步骤:通过Windows的API函数SetWindowsHookEx将上述动态链接库注入到游戏进程,使得启动游戏时导出Python字节码文件。
在本发明的一个或多个方法实施例中,计算机程序被处理器执行时实现的步骤还包括:D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
本发明的有益效果为:克服了现有技术问题,提出通过监测Python虚拟机引擎,从而确认手机游戏是否被破解。
附图说明
图1所示为根据本发明的应用场景示意图;
图2所示为一个字节码对象的结构示意图;
图3所示为根据本发明的方法的总体流程图;
图4所示为根据本发明的一个实施例的子方法流程图;
图5所示为根据本发明的细节实施例中获取偏移地址的示意图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
本发明适用于Python开发的游戏进行字码文件提取。那么游戏中必然会嵌入Python虚拟机,如图1所示。当游戏开始运行时,相关的Python模块会被Python虚拟机加载。
一个.pyc(或.pyo)文件就是一个python模块。简单来说,.pyc文件是一个二进制文件,它由3个部分组成(如图2所示):
1.头4字节存储的是魔数;
2.次4字节存储的是时间戳;
3.余下的部分是code object(字节码对象)的二进制表示,它们属于PyCodeObject结构。
当加载PY_SOURCE类型的模块时,主要的函数调用过程如下:
1.load_module;
2.load_source_module;
3.read_compiled_module;
4.PyMarshal_ReadLastObjectFromFile;
5.r_object。
Python模块加载过程的最后,会调用到r_object函数。
r_object函数的作用是去读取第3部分的code object。为了便于理解,举个例子:a.py文件是源码文件,编译后的生成了a.pyc或a.pyo,r_object实际上加载的就是a.pyc或a.pyo(去掉头8个字节的魔数和时间戳)。
Python有这样一个特点,如果我们拿到a.pyc,我们可以将它反编译成a.py,从而得到可读的脚本文件。同样,如果游戏的pyc文件被劫持和破解,那么游戏的源码将泄露。
基于以上对Python虚拟机加载模块的过程分析,本文给出了一种获取游戏中.pyc文件的方案,技术流程参考图3,即根据本发明的方法的总体流程图,上述方法主要包括以下3个步骤:
A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;
B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;
C、在游戏加载Python模块之前,在游戏进程注入上述动态链接库,利用上述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
可选地,在一个或多个实施例中还可以包括如图4所示的子步骤:D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
下面进一步描述上述步骤的细节。
第一步:通过对可执行文件静态分析,得到r_object函数的偏移。
从Python项目的源码中,可以在Python\marshal.c文件中找到r_object函数的定义,它是一个很大的函数,引用了许多字符串。
使用IDA打开游戏的可执行文件,执行以下操作来定位r_object函数:
1.在IDA的字符串表中检索”recursion limit exceeded”;
2.该字符串被r_object引用,通过查看引用关系定位到r_object函数;
3.记录下r_object的偏移(此处为0x00E8A2A0),参照图5。
第二步:编写动态库,它实现了Hook r_object函数以及导出pyc的功能。
主要代码如下
在此步骤中采用的钩子(Hook)是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
第三步:将动态库注入到游戏进程。
在Windows上,注入的方法有许多种,这里使用SetWindowsHookEx来实现注入。
HHOOK handle=SetWindowsHookEx(WH_GETMESSAGE,addr,dll,0);
完成以上步骤后,启动游戏,即可实现导出.pyc或.pyo文件。
以上技术流程揭示了一种从游戏中导出pyc或pyo文件的过程,并证实了它的可行性。从游戏安全角度来看,这是游戏开发人员需要去关注的一个问题,了解并针对性的防护对于游戏安全是非常必要的。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。上述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。上述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,上述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文上述步骤的指令或程序时,本文上述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明上述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文上述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (10)
1.一种导出保护游戏中的Python字节码文件的方法,其特征在于,所述方法包括以下步骤:
A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;
B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;
C、在游戏加载Python模块之前,在游戏进程注入所述动态链接库,利用所述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括:
读取Python项目的源码中的r_object函数的定义文件,确定r_object函数的索引字段;
通过交互式反汇编器,预先打开游戏的可执行文件,在交互式反汇编器的当前字符串表中检索r_object函数的索引字段;
记录r_object函数对应的偏移地址。
3.根据权利要求1所述的方法,其特征在于,所述步骤B包括:
在所述动态链接库中提供划分Python字节内容的字节位置的句柄,用于划分Python字节内容中的魔数部分、时间戳部分和字节码对象部分,其中使字节码对象部分作为输出内容保存为pyc或pyo格式的字节码文件。
4.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
通过Windows的API函数SetWindowsHookEx将所述动态链接库注入到游戏进程,使得启动游戏时导出Python字节码文件。
5.根据权利要求1所述的方法,其特征在于,还包括以下步骤:
D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
6.根据权利要求5所述的方法,其特征在于,所述步骤D包括:
对导出的Python字节码文件进行备份和加密。
7.一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;
B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;
C、在游戏加载Python模块之前,在游戏进程注入所述动态链接库,利用所述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
8.根据权利要求7所述的计算机装置,其特征在于,所述处理器执行所述程序时实现的步骤还包括:
D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
9.一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
A、通过对可执行文件进行静态分析,得到r_object函数的偏移地址;
B、创建一动态链接库,该动态链接库包含对r_object函数的钩子句柄、记录字节定位句柄和字节码文件储存路径;
C、在游戏加载Python模块之前,在游戏进程注入所述动态链接库,利用所述偏移地址,导出Python模块的给定字节部分的文件内容,并且以pyc或pyo格式的文件保存到指定的储存路径。
10.根据权利要求9所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现的步骤还包括:
D、监控游戏的异常玩家客户端进程,如果监控到异常进程对Python模块的破解成功,则推送安全信息,以通告上位机根据Python字节码文件修改Python虚拟机引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810608277.0A CN108985014A (zh) | 2018-06-13 | 2018-06-13 | 一种导出保护游戏中的Python字节码文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810608277.0A CN108985014A (zh) | 2018-06-13 | 2018-06-13 | 一种导出保护游戏中的Python字节码文件的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108985014A true CN108985014A (zh) | 2018-12-11 |
Family
ID=64540300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810608277.0A Pending CN108985014A (zh) | 2018-06-13 | 2018-06-13 | 一种导出保护游戏中的Python字节码文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108985014A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857650A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏性能监听方法及系统 |
CN112199158A (zh) * | 2020-10-16 | 2021-01-08 | 常熟理工学院 | 虚拟机保护的解释例程识别方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326113A (zh) * | 2016-08-16 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 一种游戏数据监控方法和装置 |
CN106599628A (zh) * | 2016-12-08 | 2017-04-26 | 合肥康捷信息科技有限公司 | 一种基于模块钩子的Python字节码文件保护方法 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
-
2018
- 2018-06-13 CN CN201810608277.0A patent/CN108985014A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326113A (zh) * | 2016-08-16 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 一种游戏数据监控方法和装置 |
CN106599628A (zh) * | 2016-12-08 | 2017-04-26 | 合肥康捷信息科技有限公司 | 一种基于模块钩子的Python字节码文件保护方法 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
Non-Patent Citations (2)
Title |
---|
王海军: "网络游戏中外挂防御技术的研究与设计", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
陈悟 等: "一种有效的Python字节码保护方法", 《电子技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857650A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏性能监听方法及系统 |
CN112199158A (zh) * | 2020-10-16 | 2021-01-08 | 常熟理工学院 | 虚拟机保护的解释例程识别方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190005239A1 (en) | Electronic device for analyzing malicious code and method therefor | |
JP7250178B2 (ja) | ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム | |
CN104781785B (zh) | 为应用从中间语言代码生成本机代码 | |
US9697108B2 (en) | System, method, and apparatus for automatic recording and replaying of application executions | |
CN105653432B (zh) | 一种崩溃数据的处理方法和装置 | |
CN105683990A (zh) | 用于保护动态库的方法和装置 | |
CN107480476B (zh) | 一种基于ELF感染的Android本地层指令编译虚拟化加壳方法 | |
US20160300044A1 (en) | Anti-debugging method | |
CN106055341A (zh) | 应用程序安装包的校验方法及装置 | |
CN111400757B (zh) | 防止安卓第三方库中native代码泄露用户隐私的方法 | |
CN104050161B (zh) | 应用和数据服务器的动态桥接 | |
US20190095181A1 (en) | Easy-To-Use Type Of Compile-Time Dependency Injection Method And Device In The Java Platform | |
CN110334028A (zh) | 一种安卓模拟器检测方法、计算机设备及存储介质 | |
US20210042150A1 (en) | Method-call-chain tracking method, electronic device, and computer readable storage medium | |
CN108985014A (zh) | 一种导出保护游戏中的Python字节码文件的方法及装置 | |
CN110597496B (zh) | 应用程序的字节码文件获取方法及装置 | |
US20140096258A1 (en) | Correcting workflow security vulnerabilities via static analysis and virtual patching | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
CN106126225B (zh) | 一种基于程序演进模型的目标代码逆向工程方法 | |
CN104732123A (zh) | 一种基于json格式的功能操作权限控制方法 | |
US9064042B2 (en) | Instrumenting computer program code by merging template and target code methods | |
CN104239112A (zh) | 一种设备驱动程序安装方法及装置 | |
US11615338B2 (en) | System and method for generating a file execution record of address tuples | |
CN107209815A (zh) | 用于使用返回导向编程的代码混淆的方法 | |
CN112817652B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |