本发明专利技术公开了一种基于NX安全保护的检测方法、终端及存储介质,所述方法包括:获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息;判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。本发明专利技术通过判断程序是否开启NX安全保护,在程序未开启NX安全保护时提醒用户开启NX安全保护,如果程序开启了NX安全保护的话,执行shellcode的时就会触发异常,从而保护了程序,如果无NX安全保护,恶意程序就会执行,大大提高了程序的安全性。
【技术实现步骤摘要】
一种基于NX安全保护的检测方法、终端及存储介质
本专利技术涉及计算机安全
,尤其涉及一种基于NX安全保护的检测方法、终端及存储介质。
技术介绍
NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode(shellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名,shellcode常常使用机器语言编写,可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令)时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。如果程序没有开启NX安全保护的话,恶意程序就会执行,无法保护程序的安全。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术的主要目的在于提供一种基于NX安全保护的检测方法、终端及存储介质,旨在解决现有技术中未开启NX安全保护时恶意程序就会执行,无法保护程序的安全的问题。为实现上述目的,本专利技术提供一种基于NX安全保护的检测方法,所述基于NX安全保护的检测方法包括如下步骤:获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息;判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。所述的基于NX安全保护的检测方法,其中,所述判断所述ELF符号表信息中是否存在预设标识,之后还包括:如果判断出所述ELF符号表信息中不存在所述预设标识,则表示所述程序未开启NX安全保护。所述的基于NX安全保护的检测方法,其中,所述基于NX安全保护的检测方法还包括:如果所述程序未开启NX安全保护,则提示用户开启NX安全保护。所述的基于NX安全保护的检测方法,其中,所述第一命令为readelf–l。所述的基于NX安全保护的检测方法,其中,所述预设标识为:GNU_STACK类型。此外,为实现上述目的,本专利技术还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于NX安全保护的检测程序,所述基于NX安全保护的检测程序被所述处理器执行时实现如上所述的基于NX安全保护的检测方法的步骤。此外,为实现上述目的,本专利技术还提供一种存储介质,其中,所述存储介质存储有基于NX安全保护的检测程序,所述基于NX安全保护的检测程序被处理器执行时实现如上所述的基于NX安全保护的检测方法的步骤。本专利技术通过获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息;判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。本专利技术通过判断程序是否开启NX安全保护,在程序未开启NX安全保护时提醒用户开启NX安全保护,如果程序开启了NX安全保护的话,执行shellcode的时就会触发异常,从而保护了程序,如果无NX安全保护,恶意程序就会执行,大大提高了程序的安全性。附图说明图1是本专利技术基于NX安全保护的检测方法的较佳实施例的流程图;图2为本专利技术终端的较佳实施例的运行环境示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术较佳实施例所述的基于NX安全保护的检测方法,如图1所示,所述基于NX安全保护的检测方法包括以下步骤:步骤S10、获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息。在计算机科学中,ELF文件是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。具体地,ELF文件由4部分组成,分别是ELF头(ELFheader,即文件头)、程序头表(Programheadertable)、节(Section)和节头表(Sectionheadertable)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。在获取程序的ELF文件后,通过分析ELF文件的第一命令(所述第一命令为readelf–l)查看所述ELF文件的ELF符号表信息。其中,readelf命令是Linux下的分析ELF文件的命令,readelf用来显示ELF格式目标文件的信息.可通过参数选项来控制显示哪些特定信息,这个命令在分析ELF文件格式时非常有用。步骤S20、判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。在计算机领域,堆栈是一个不容忽视的概念,堆栈(STACK)是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶)对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈是计算机科学领域重要的数据结构,它被用于多种数值计算领域。表达式求值是编译程序中较为常见的操作,在算术表达式求值的过程中,需要使用堆栈来保存表达式的中间值和运算符,堆栈使得表达式的中间运算过程的结果访问具有了一定的自动管理能力。大部分编译型程序设计语言具有程序递归特性,递归能够增强语言的表达能力和降低程序设计难度。递归程序的递归深度通常是不确定的,需要将子程序执行的返回地址保存到堆栈这种先进后出式的结构中,以保证子程序的返回地址的正确使用顺序。函数式程序设计语言中,不同子函数的参数的种类和个数是不相同的,编译器也是使用堆栈来存储子程序的参数。其中,所述预设标识为:GNU_STACK类型。为了实现mainstream机器的硬件栈保护(比如amd64平台上的NXbit),开发者需要在软件包上做正确的栈设置,所有的平台都有栈保护的课题,它的目的是在软件包故障时进行修复,重点关注GNU_STACKELF的标志。ELF是executableandlinkingformat的缩写,意思是可执行的连接格式,ELF是一种所有Linux发行版普遍使用的文件格式,一个ELF可以是一个可执行文件或者库文件,而GNU_STACK是一个程序头,告诉系统当ELF被载入内存的时候如何来控制栈。GNU栈分为可执行栈与不可执行栈。以可执行栈标识为结尾的ELF文件分下面三种情形:1.由GCC生成的使用可执行栈的代码。2.由汇编源码生成的目标文件包含了一个向连接器指明需要可执行栈的标识(即为了设置为可执行栈的GNU_STACK记号)。3.由汇编源码生成的目标文件没有GNU_STACK记号,这对于某些将在多种平台上使用的代码来说经常会发生这种情况。由GCC生成栈上执行代码的情况发生在要实现一个trampoline嵌套函数的时本文档来自技高网...
【技术保护点】
1.一种基于NX安全保护的检测方法,其特征在于,所述基于NX安全保护的检测方法包括:/n获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息;/n判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。/n
【技术特征摘要】
1.一种基于NX安全保护的检测方法,其特征在于,所述基于NX安全保护的检测方法包括:
获取程序的ELF文件,通过分析ELF文件的第一命令查看所述ELF文件的ELF程序头信息;
判断所述ELF程序头信息中是否存在预设标识,如是则表示所述程序已开启NX安全保护。
2.根据权利要求1所述的基于NX安全保护的检测方法,其特征在于,所述判断所述ELF符号表信息中是否存在预设标识,之后还包括:
如果判断出所述ELF符号表信息中不存在所述预设标识,则表示所述程序未开启NX安全保护。
3.根据权利要求2所述的基于NX安全保护的检测方法,其特征在于,所述基于NX安全保护的检测方法还包括:
如果所述程序未开启NX安全保护,则提示用户开启NX安全保护。
<...
【专利技术属性】
技术研发人员:余少高,严智慧,
申请(专利权)人:北京智游网安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。