CN106295260A - 一种应用程序核心模块的隐藏方法及系统 - Google Patents
一种应用程序核心模块的隐藏方法及系统 Download PDFInfo
- Publication number
- CN106295260A CN106295260A CN201610639552.6A CN201610639552A CN106295260A CN 106295260 A CN106295260 A CN 106295260A CN 201610639552 A CN201610639552 A CN 201610639552A CN 106295260 A CN106295260 A CN 106295260A
- Authority
- CN
- China
- Prior art keywords
- module
- header fields
- nucleus
- nucleus module
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000012217 deletion Methods 0.000 abstract description 2
- 230000037430 deletion Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007547 defect 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
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/128—Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
-
- 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/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
- G06F21/1015—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to users
Abstract
本发明公开了一种应用程序核心模块的隐藏方法及系统,涉及应用程序文件的设置领域。该方法的步骤为:S1:保存核心模块加载至内存的起始地址;S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0;S3:根据进程环境模块的地址,确定当前核心模块的模块链表,若在模块链表中存在与当前核心模块对应的节点,删除与当前核心模块对应的节点、并将删除节点的前节点和和后节点进行关联,结束。本发明能够显著增大核心模块的查找难度,进而提高核心模块对应的应用程序的安全,保证了应用程序开发商的利益。
Description
技术领域
本发明涉及应用程序文件的设置领域,具体涉及一种应用程序核心模块的隐藏方法及系统。
背景技术
随着网络技术的进步,网络应用程序越来越多,为了保证应用程序开发商的利益,进一步推动网络应用程序的发明创造;网络应用程序已经由免费逐渐的变为收费。
但是,现有的网络应用程序的核心模块往往容易被盗用者(骇客或者第三方程序)进行修改,进而使得核心模块的功能失效,由此达到盗用者的目的。例如:网络应用程序的付费模块被盗用者修改之后,能够达到使用该应用程序的同时不支付使用费用,进而极大的损害了应用程序开发商的利益。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:显著增大核心模块的查找难度,本发明能够提高核心模块对应的应用程序的安全,保证了应用程序开发商的利益。
为达到以上目的,本发明提供的应用程序核心模块的隐藏方法,包括以下步骤:
S1:保存核心模块加载至内存的起始地址,转到S2;
S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0,转到S3;
S3:根据进程环境模块的地址,确定当前核心模块的模块链表,在模块链表中判断是否存在与当前核心模块对应的节点,若是,转到S4,否则返回错误,结束;
S4:将S3中所述节点的前节点和和后节点进行关联后,将S3中所述节点删除,结束。
本发明提供的实现上述方法的应用程序核心模块的隐藏系统,包括起始地址获取模块、头部字段清除模块、核心模块节点确定模块和核心模块节点删除模块;
起始地址获取模块用于:保存核心模块加载至内存的起始地址,向头部字段清除模块发送头部字段清除信号;
头部字段清除模块用于:收到头部字段清除信号后,将核心模块头部信息的DOS头部字段和NT头部字段的值清0,向核心模块节点确定模块发送核心模块节点确定信号;
核心模块节点确定模块用于:收到核心模块节点确定信号后,根据进程环境模块的地址,确定核心模块的模块链表,在模块链表中判断是否存在与核心模块对应的节点,若是,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误;
核心模块节点删除模块用于:收到核心模块节点删除信号后,将所述对应的节点的前节点和和后节点进行关联后,将所述对应的节点删除。
与现有技术相比,本发明的优点在于:
本发明事先将核心模块的头部信息去掉(将DOS头部字段和NT头部字段清0),使得盗用者无法在内存中从头部信息得知核心模块。进一步本发明还通过对应用程序进程加载的模块链表进行修改,将核心模块从链表中删除,进而使得盗用者无法通过Windows的API(Application Programming Interface,应用程序编程接口)函数来查找核心模块。
有鉴于此,本发明通过对核心模块的头部信息和模块链表的修改,使得盗用者非常难以查找到核心模块,进而显著提高了核心模块对应的应用程序的安全,保证了应用程序开发商的利益。
附图说明
图1为本发明实施例中应用程序核心模块的隐藏方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的应用程序核心模块的隐藏方法,包括以下步骤:
S1:终端设备(例如个人计算机、平板电脑等)的Windows应用程序根据核心模块的头部信息,将核心模块加载至内存,保存核心模块加载至内存的起始地址BaseAddr;具体的操作为:HMODULE WINAPI LoadLibrary(LPCTSTR lpFileName),其中返回值是核心模块加载到内存的起始地址,lpFileName是需要加载的核心模块名称,转到S2。
S2:将核心模块的DOS头部字段(磁盘操作头部字段)和NT头部字段(新技术头部字段)的值清0,转到S3。
S2的具体流程为:
S201:获取DOS头部字段,具体的操作为:
PIMAGE_DOS_HEADER pDosHeader=
(PIMAGE_DOS_HEADER)BaseAddr;
其中PIMAGE_DOS_HEADER为DOS头部字段;
获取NT头部字段,具体的操作为:
PIMAGE_NT_HEADERS pNtHeader=
(PIMAGE_NT_HEADERS)(BaseAddr+pMemDosHeader->e_lfane w);
其中PIMAGE_NT_HEADERS为NT头部字段。
S202:利用VirtualProtect(虚拟保护函数),将DOS头部字段和NT头部字段的内存属性均由可读修改为可写;将DOS头部字段和NT头部字段的值均清0后,将DOS头部字段和NT头部字段的内存属性均由可写恢复为可读,转到S3。
S3:根据PEB(进程环境模块)的地址确定当前核心模块的模块链表,在模块链表中判断是否存在与当前核心模块对应的节点,若是,转到S4,否则返回错误,结束。
S3的具体流程为:
S301:在终端设备的内嵌汇编代码中确定PEB的地址,根据PEB的地址确定当前核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针。具体操作为:首先找到内嵌汇编代码:
其中,fs:[edx+0x30]是获取PEB(进程环境模块)的地址,pLMFNode是链表头指针,pLMHNode是链表结尾指针。
S302:确定链表头指针和链表结尾指针之间所有节点的加载地址,判断是否存在加载地址与S1中所述起始地址相同的节点,若是,则将该节点作为与当前核心模块对应的节点,转到S4,否则返回错误,结束。
S4:将S3中所述节点的前节点和和后节点进行关联后,将所述节点删除(即双向链表删除操作),结束。
本发明提供的实现上述方法的应用程序核心模块的隐藏系统,包括核心模块加载模块、起始地址获取模块、头部字段清除模块、核心模块节点确定模块和核心模块节点删除模块。
核心模块加载模块用于:根据核心模块的头部信息,将核心模块加载至内存。
起始地址获取模块用于:保存核心模块加载至内存的起始地址,向头部字段清除模块发送头部字段清除信号。
头部字段清除模块用于:收到头部字段清除信号后,将核心模块头部信息的DOS头部字段和NT头部字段的值清0,向核心模块节点确定模块发送核心模块节点确定信号。
头部字段清除模块的具体工作流程为:
获取DOS头部字段和NT头部字段,将DOS头部字段和NT头部字段的内存属性,均由可读修改为可写;将DOS头部字段和NT头部字段的值均清0后,将DOS头部字段和NT头部字段的内存属性,均由可写恢复为可读。
核心模块节点确定模块用于:收到核心模块节点确定信号后,根据进程环境模块的地址,确定核心模块的模块链表,在模块链表中判断是否存在与核心模块对应的节点,若是,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。
核心模块节点确定模块的具体工作流程为:
在终端设备的内嵌汇编代码中确定进程环境模块的地址,根据进程环境模块的地址确定核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针;
在链表头指针和链表结尾指针之间所有节点中,判断是否存在加载地址与所述起始地址获取模块中的起始地址相同的节点,若是,将该节点作为与核心模块对应的节点,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。
核心模块节点删除模块用于:收到核心模块节点删除信号后,将所述对应的节点的前节点和和后节点进行关联后,将所述对应的节点删除。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (8)
1.一种应用程序核心模块的隐藏方法,其特征在于,该方法包括以下步骤:
S1:保存核心模块加载至内存的起始地址,转到S2;
S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0,转到S3;
S3:根据进程环境模块的地址,确定当前核心模块的模块链表,在模块链表中判断是否存在与当前核心模块对应的节点,若是,转到S4,否则返回错误,结束;
S4:将S3中所述节点的前节点和和后节点进行关联后,将S3中所述节点删除,结束。
2.如权利要求1所述的应用程序核心模块的隐藏方法,其特征在于,S1之前还包括以下步骤:应用程序根据核心模块的头部信息,将核心模块加载至内存。
3.如权利要求1所述的应用程序核心模块的隐藏方法,其特征在于,S2的具体流程为:获取DOS头部字段和NT头部字段,将DOS头部字段和NT头部字段的内存属性,均由可读修改为可写;将DOS头部字段和NT头部字段的值均清0后,将DOS头部字段和NT头部字段的内存属性,均由可写恢复为可读。
4.如权利要求1至3任一项所述的应用程序核心模块的隐藏方法,其特征在于,S3的具体流程为:
S301:在终端设备的内嵌汇编代码中确定进程环境模块的地址,根据进程环境模块的地址确定当前核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针,转到S302;
S302:在链表头指针和链表结尾指针之间所有节点中,判断是否存在加载地址与S1中所述起始地址相同的节点,若是,则将该节点作为与当前核心模块对应的节点,转到S4,否则返回错误,结束。
5.一种实现权利要求1至4任一项所述方法的应用程序核心模块的隐藏系统,其特征在于,该系统包括起始地址获取模块、头部字段清除模块、核心模块节点确定模块和核心模块节点删除模块;
起始地址获取模块用于:保存核心模块加载至内存的起始地址,向头部字段清除模块发送头部字段清除信号;
头部字段清除模块用于:收到头部字段清除信号后,将核心模块头部信息的DOS头部字段和NT头部字段的值清0,向核心模块节点确定模块发送核心模块节点确定信号;
核心模块节点确定模块用于:收到核心模块节点确定信号后,根据进程环境模块的地址,确定核心模块的模块链表,在模块链表中判断是否存在与核心模块对应的节点,若是,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误;
核心模块节点删除模块用于:收到核心模块节点删除信号后,将所述对应的节点的前节点和和后节点进行关联后,将所述对应的节点删除。
6.如权利要求5所述的应用程序核心模块的隐藏系统,其特征在于:该系统还包括核心模块加载模块,其用于:根据核心模块的头部信息,将核心模块加载至内存。
7.如权利要求5所述的应用程序核心模块的隐藏系统,其特征在于,所述头部字段清除模块的具体工作流程为:获取DOS头部字段和NT头部字段,将DOS头部字段和NT头部字段的内存属性,均由可读修改为可写;将DOS头部字段和NT头部字段的值均清0后,将DOS头部字段和NT头部字段的内存属性,均由可写恢复为可读。
8.如权利要求5至7任一项所述的应用程序核心模块的隐藏系统,其特征在于,所述核心模块节点确定模块的具体工作流程为:在终端设备的内嵌汇编代码中确定进程环境模块的地址,根据进程环境模块的地址确定核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针;
在链表头指针和链表结尾指针之间所有节点中,判断是否存在加载地址与上述起始地址获取模块中的起始地址相同的节点,若是,将该节点作为与核心模块对应的节点,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639552.6A CN106295260B (zh) | 2016-08-05 | 2016-08-05 | 一种应用程序核心模块的隐藏方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639552.6A CN106295260B (zh) | 2016-08-05 | 2016-08-05 | 一种应用程序核心模块的隐藏方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106295260A true CN106295260A (zh) | 2017-01-04 |
CN106295260B CN106295260B (zh) | 2019-04-05 |
Family
ID=57666161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610639552.6A Active CN106295260B (zh) | 2016-08-05 | 2016-08-05 | 一种应用程序核心模块的隐藏方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106295260B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196761A (zh) * | 2017-03-31 | 2017-09-22 | 武汉斗鱼网络科技有限公司 | 一种保护应用程序中的核心函数的方法 |
CN108052411A (zh) * | 2017-12-27 | 2018-05-18 | 杭州迪普科技股份有限公司 | 一种单向链表中断的修复方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938036A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | Windows动态链接库的分段双重加密及安全加载方法 |
CN103218575A (zh) * | 2013-04-17 | 2013-07-24 | 武汉元昊科技有限公司 | 一种主机文件安全监控方法 |
-
2016
- 2016-08-05 CN CN201610639552.6A patent/CN106295260B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938036A (zh) * | 2011-11-29 | 2013-02-20 | Ut斯达康通讯有限公司 | Windows动态链接库的分段双重加密及安全加载方法 |
CN103218575A (zh) * | 2013-04-17 | 2013-07-24 | 武汉元昊科技有限公司 | 一种主机文件安全监控方法 |
Non-Patent Citations (1)
Title |
---|
张二超: "《中国优秀硕士学位论文全文数据库 信息科技辑》", 15 November 2013 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196761A (zh) * | 2017-03-31 | 2017-09-22 | 武汉斗鱼网络科技有限公司 | 一种保护应用程序中的核心函数的方法 |
CN107196761B (zh) * | 2017-03-31 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 一种保护应用程序中的核心函数的方法 |
CN108052411A (zh) * | 2017-12-27 | 2018-05-18 | 杭州迪普科技股份有限公司 | 一种单向链表中断的修复方法和装置 |
CN108052411B (zh) * | 2017-12-27 | 2020-12-29 | 杭州迪普科技股份有限公司 | 一种单向链表中断的修复方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106295260B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509701B2 (en) | Performing data backups using snapshots | |
US20060053126A1 (en) | Creating a program module or script from selected actions of an action history record | |
CN105183902B (zh) | 一种文件清理方法、装置及终端 | |
CN104331343B (zh) | 文件备份方法和系统 | |
CN103559231B (zh) | 一种文件系统配额管理方法、装置及系统 | |
CN101242261B (zh) | 一种基于操作系统桌面的vpn连接分离方法 | |
CN104765576B (zh) | 一种数据存储方法和数据存储装置 | |
CN106445476B (zh) | 一种代码变更信息确定方法、装置及电子设备 | |
CN108804516A (zh) | 相似用户查找装置、方法及计算机可读存储介质 | |
CN105550068A (zh) | 一种移动终端的误操作撤回方法及系统 | |
US20090204648A1 (en) | Tracking metadata for files to automate selective backup of applications and their associated data | |
CN106201633A (zh) | 一种注入dll文件的方法及装置 | |
CN105989013A (zh) | 去除文字水印的方法及装置 | |
US8086769B2 (en) | Method for detecting circular buffer overrun | |
CN106295260A (zh) | 一种应用程序核心模块的隐藏方法及系统 | |
CN105955847A (zh) | 一种电子设备文件防误删的方法及系统 | |
CN100423002C (zh) | 删除fat卷中文件的方法 | |
CN108897859A (zh) | 一种元数据检索方法、装置、设备及计算机可读存储介质 | |
US20170357659A1 (en) | Systems and methods for managing snapshots of a file system volume | |
CN106169048A (zh) | 文件删除方法、装置及电子设备 | |
US20120331077A1 (en) | Information processing apparatus, method of controlling information processnig apparatus, program for control method, and recording medium for program | |
CN103369722B (zh) | 移动终端的控制方法及装置 | |
CN106502729A (zh) | 一种Flash播放器的资源加载方法及系统 | |
CN107643959B (zh) | 镜像文件处理方法和装置 | |
CN105095119B (zh) | 一种与adb设备进行通信的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |