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任一项所述的应用程序核心模块的隐藏系统,其特征在于,所述核心模块节点确定模块的具体工作流程为:在终端设备的内嵌汇编代码中确定进程环境模块的地址,根据进程环境模块的地址确定核心模块的模块链表,在模块链表中确定链表头指针和链表结尾指针;
在链表头指针和链表结尾指针之间所有节点中,判断是否存在加载地址与上述起始地址获取模块中的起始地址相同的节点,若是,将该节点作为与核心模块对应的节点,向核心模块节点删除模块发送核心模块节点删除信号,否则返回错误。