一种应用程序核心模块的隐藏方法及系统技术方案

技术编号:14371782 阅读:71 留言:0更新日期:2017-01-09 17:40
本发明专利技术公开了一种应用程序核心模块的隐藏方法及系统,涉及应用程序文件的设置领域。该方法的步骤为:S1:保存核心模块加载至内存的起始地址;S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0;S3:根据进程环境模块的地址,确定当前核心模块的模块链表,若在模块链表中存在与当前核心模块对应的节点,删除与当前核心模块对应的节点、并将删除节点的前节点和和后节点进行关联,结束。本发明专利技术能够显著增大核心模块的查找难度,进而提高核心模块对应的应用程序的安全,保证了应用程序开发商的利益。

【技术实现步骤摘要】

本专利技术涉及应用程序文件的设置领域,具体涉及一种应用程序核心模块的隐藏方法及系统
技术介绍
随着网络技术的进步,网络应用程序越来越多,为了保证应用程序开发商的利益,进一步推动网络应用程序的专利技术创造;网络应用程序已经由免费逐渐的变为收费。但是,现有的网络应用程序的核心模块往往容易被盗用者(骇客或者第三方程序)进行修改,进而使得核心模块的功能失效,由此达到盗用者的目的。例如:网络应用程序的付费模块被盗用者修改之后,能够达到使用该应用程序的同时不支付使用费用,进而极大的损害了应用程序开发商的利益。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:显著增大核心模块的查找难度,本专利技术能够提高核心模块对应的应用程序的安全,保证了应用程序开发商的利益。为达到以上目的,本专利技术提供的应用程序核心模块的隐藏方法,包括以下步骤:S1:保存核心模块加载至内存的起始地址,转到S2;S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0,转到S3;S3:根据进程环境模块的地址,确定当前核心模块的模块链表,在模块链表中判断是否存在与当前核心模块对应的节点,若是,转到S4,否则返回错误,结束;S4:将S3中所述节点的前节点和和后节点进行关联后,将S3中所述节点删除,结束。本专利技术提供的实现上述方法的应用程序核心模块的隐藏系统,包括起始地址获取模块、头部字段清除模块、核心模块节点确定模块和核心模块节点删除模块;起始地址获取模块用于:保存核心模块加载至内存的起始地址,向头部字段清除模块发送头部字段清除信号;头部字段清除模块用于:收到头部字段清除信号后,将核心模块头部信息的DOS头部字段和NT头部字段的值清0,向核心模块节点确定模块发送核心模块节点确定信号;核心模块节点确定模块用于:收到核心模块节点确定信号后,根据进程环境模块的地址,确定核心模块的模块链表,在模块链表中判断是否存在与核心模块对应的节点,若是,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误;核心模块节点删除模块用于:收到核心模块节点删除信号后,将所述对应的节点的前节点和和后节点进行关联后,将所述对应的节点删除。与现有技术相比,本专利技术的优点在于:本专利技术事先将核心模块的头部信息去掉(将DOS头部字段和NT头部字段清0),使得盗用者无法在内存中从头部信息得知核心模块。进一步本专利技术还通过对应用程序进程加载的模块链表进行修改,将核心模块从链表中删除,进而使得盗用者无法通过Windows的API(ApplicationProgrammingInterface,应用程序编程接口)函数来查找核心模块。有鉴于此,本专利技术通过对核心模块的头部信息和模块链表的修改,使得盗用者非常难以查找到核心模块,进而显著提高了核心模块对应的应用程序的安全,保证了应用程序开发商的利益。附图说明图1为本专利技术实施例中应用程序核心模块的隐藏方法的流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例中的应用程序核心模块的隐藏方法,包括以下步骤:S1:终端设备(例如个人计算机、平板电脑等)的Windows应用程序根据核心模块的头部信息,将核心模块加载至内存,保存核心模块加载至内存的起始地址BaseAddr;具体的操作为:HMODULEWINAPILoadLibrary(LPCTSTRlpFileName),其中返回值是核心模块加载到内存的起始地址,lpFileName是需要加载的核心模块名称,转到S2。S2:将核心模块的DOS头部字段(磁盘操作头部字段)和NT头部字段(新技术头部字段)的值清0,转到S3。S2的具体流程为:S201:获取DOS头部字段,具体的操作为:PIMAGE_DOS_HEADERpDosHeader=(PIMAGE_DOS_HEADER)BaseAddr;其中PIMAGE_DOS_HEADER为DOS头部字段;获取NT头部字段,具体的操作为:PIMAGE_NT_HEADERSpNtHeader=(PIMAGE_NT_HEADERS)(BaseAddr+pMemDosHeader->e_lfanew);其中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头部字段的内存属性,均由可写恢复为可读。核心模块节点确定模块用于:收到核心模块节点确定信号后,根据进程环境模块的地址,确定核心模块的模块链表,在模块链表中判断是否存在与核心模块对应的节点,若是,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。核心模块节点确定模块的具体工作流程为:在终端设备的内嵌汇编代码中确定进程环境模块的地址,根据进程环境模块的地址确定核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针;在链表头指针和链表结尾指针之间所有节点中,判断是否存在加载地址与所述起始地址获取模块中的起始地址相同的节点,若是,将该节点作为与核心模块对应的节点,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。核心模块节点删除模块用于:收到核心模块节点删除信号后,将所述对应的节点的前节点和和后节点进行关联后,将所述对应的节点删除。本专利技术不局限于上述实施方式,对于本
的普通技术人员来说,在不脱离本专利技术原理本文档来自技高网
...
一种应用程序核心模块的隐藏方法及系统

【技术保护点】
一种应用程序核心模块的隐藏方法,其特征在于,该方法包括以下步骤:S1:保存核心模块加载至内存的起始地址,转到S2;S2:将核心模块头部信息的DOS头部字段和NT头部字段的值清0,转到S3;S3:根据进程环境模块的地址,确定当前核心模块的模块链表,在模块链表中判断是否存在与当前核心模块对应的节点,若是,转到S4,否则返回错误,结束;S4:将S3中所述节点的前节点和和后节点进行关联后,将S3中所述节点删除,结束。

【技术特征摘要】
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任一项所述方法的应用程序核心模块的隐藏系统,其特征在于,该系统包括起始地址获取模块、头部字段清除模块、核心模块节点确定模块和核心模块节点删除模块;起始地址获取模块用于:保...

【专利技术属性】
技术研发人员:周志刚
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1