CN108509795A - 一种监控elf文件调用系统函数的方法、装置及存储介质 - Google Patents

一种监控elf文件调用系统函数的方法、装置及存储介质 Download PDF

Info

Publication number
CN108509795A
CN108509795A CN201810377593.1A CN201810377593A CN108509795A CN 108509795 A CN108509795 A CN 108509795A CN 201810377593 A CN201810377593 A CN 201810377593A CN 108509795 A CN108509795 A CN 108509795A
Authority
CN
China
Prior art keywords
call
calling
function
pid
communication equipment
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
Application number
CN201810377593.1A
Other languages
English (en)
Other versions
CN108509795B (zh
Inventor
刘星
魏丽珍
林贵淇
梁煜麓
罗佳
杨心恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Anscen Network Technology Co Ltd
Original Assignee
Xiamen Anscen Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Anscen Network Technology Co Ltd filed Critical Xiamen Anscen Network Technology Co Ltd
Priority to CN201810377593.1A priority Critical patent/CN108509795B/zh
Publication of CN108509795A publication Critical patent/CN108509795A/zh
Application granted granted Critical
Publication of CN108509795B publication Critical patent/CN108509795B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种监控ELF文件调用系统函数的方法、装置及存储介质,该方法包括:内核编译步骤,基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;调用系统函数监控步骤,启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。本发明通过在用户空间创建了通信设备,并修改安卓内核代码插入监测函数后重新编译生成安卓内核,通过构建的通信设备的相关功能函数将监测到的ELF文件调用系统函数的操作行为返回并展示,从而可以确定ELF文件调用行为是否异常,进而判断ELF文件是否为恶意程序,从而提高系统的安全性。

Description

一种监控ELF文件调用系统函数的方法、装置及存储介质
技术领域
本发明涉及系统安全检测技术领域,特别是一种监控ELF文件调用系统函数的方法、装置及存储介质。
背景技术
目前,随着Android系统的普及和发展,Android平台的恶意软件和安全厂商之间的博弈愈演愈烈。在Android发展初期,恶意软件基本都是java语言开发,由于java语言逆向分析简单的特点,恶意软件很容易被安全厂商逆向分析、检测并查杀。随着时间推移,现在的很多恶意程序将恶意代码由java层转移到了native层,由android ndk开发编译成ELF文件,再加上o-llvm(一种基于llvm的混淆编译工具)的普遍使用,给native代码的静态分析造成了很大困难。因此,能快速检测出ELF文件的系统调用行为,对于及时有效查杀恶意软件至关重要。
现有检测方法有如通过hook系统调用的函数以及通过strace等工具获取系统调用的信息。这些检测检测方法经常会失效,比如当ELF文件使用静态编译、有防注入功能、自己实现系统调用等情况下,会导致行为信息无法获取以及获取的系统调用信息不全,无法展示调用系统函数的流程,更不能实现调用系统函数的动态检测。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种监控ELF文件调用系统函数的方法,该方法包括:
内核编译步骤,基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控步骤,启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
更进一步地,所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
更进一步地,所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数;
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
更进一步地,所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。
更进一步地,在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。
更进一步地,在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
更进一步地,所述调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间以和返回值。
更进一步地,该方法还包括:
ELF文件调用系统函数展示步骤,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。
本发明还提出了一种监控ELF文件调用系统函数的装置,其特征在于,该装置包括:
内核编译单元,用于基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控单元,用于启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
更进一步地,所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
更进一步地,所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数;
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
更进一步地,所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。
更进一步地,在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。
更进一步地,在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
更进一步地,所述调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间以和返回值。
更进一步地,该装置还包括:
ELF文件调用系统函数展示单元,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。
本发明的技术效果为:本发明通过在用户空间创建了通信设备,并修改安卓内核代码插入监测函数后重新编译生成安卓内核,通过构建的通信设备的相关功能函数将监测到的ELF文件调用系统函数的操作行为返回并展示,从而可以确定ELF文件调用行为是否异常,进而判断ELF文件是否为恶意程序,从而提高系统的安全性。
附图说明
图1是根据本发明的实施例的一种监控ELF文件调用系统函数的方法的流程图。
图2是根据本发明的实施例的一种监控ELF文件调用系统函数的装置的结构图。
具体实施方式
下面结合附图1-2进行具体说明。
“ELF”的全称是:Executable and Linking Format.大意为可执行,可关联的文件格式,扩展名为elf.因此把这一类型的文件简称为“ELF”。ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Sectionheader table)。实际上,一个文件中不一定包含全部内容,而且他们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。
在安卓(android)系统中,现在的很多恶意程序将恶意代码由java层转移到了native层,由android ndk开发编译成ELF文件,对系统安全造成危害,因此,非常有必要开发出监控ELF文件调用系统函数的行为的方法,以提高系统的安全性。
图1示出了本发明的一种监控ELF文件调用系统函数的方法,该方法包括:
内核编译步骤S1,基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控步骤S2,启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
使用misc_register函数创建的通信设备是作为杂项设备出现在内核中的,它是一种特殊的字符设备,可自动生成设备节点。安卓系统内核维护一个misc_list链表,misc设备在misc_register注册的时候链接到这个链表,设备使用完毕后在misc_deregister中解除链接。
本发明的关键发明点是修改了安卓系统的内核代码,通过对内核代码的修改可以实时、动态地监控ELF文件调用的系统函数的操作信息,并可以将该操作信息进行展示,帮助确定该ELF文件调用是否异常,确保系统安全。所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数。
一般来说,sys_call_table是系统内核的一块区间,用来将调用号和服务连接起来,系统调用某一个进程时,就会通过sys_call_table,来查找到该程序,sys_call_table可以用一个数组实现,或者其他合适的数据结构实现,如链表等等。compat_sys_call_table是兼容的调用表,结构与sys_call_table类似。
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序。TID(线程控制符)英文全称为THREADIdentifier,TID就是线程的身份标识,进程一运行系统就会自动分配给各线程独一无二的TID。
对于一些特殊的系统函数,本发明中进行特殊处理,这些特殊的函数是execve、exit和fork函数,具体处理方式如下:在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
通过通信设备的read功能函数可以获取到调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间以和返回值。在获取该操作信息之前,一般需要使用ioctl设置过滤条件,过滤条件可以是进程PID或ELF文件路径。系统中一些没办法归类的函数就统一放在ioctl这个函数操作中,通过指定的命令来实现对应的操作,因此,ioctl函数里面都实现了多个的对硬件的操作,通过应用层传入的命令来调用相应的操作。通过对这些信息分析,可以确定调用是否异常,进而判断ELF文件是否为恶意程序。
如图1所示,本发明的方法还包括:ELF文件调用系统函数展示步骤S3,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。可以通过树形图、调用关系树或其他形式进行展示。
本发明的方法是通过在用户空间创建了通信设备,并修改安卓内核代码插入监测函数后重新编译生成安卓内核,通过构建的通信设备的相关功能函数将监测到的ELF文件调用系统函数的操作行为返回并展示,从而可以实时、动态地确定调用是否异常,进而判断ELF文件是否为恶意程序。
图2示出了本发明的一种监控ELF文件调用系统函数的装置,其特征在于,该装置包括:
内核编译单元21,用于基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控单元22,用于启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
使用misc_register函数创建的通信设备是作为杂项设备出现在内核中的,它是一种特殊的字符设备,可自动生成设备节点。安卓系统内核维护一个misc_list链表,misc设备在misc_register注册的时候链接到这个链表,设备使用完毕后在misc_deregister中解除链接。
本发明的关键发明点是修改了安卓系统的内核代码,通过对内核代码的修改可以实时、动态地监控ELF文件调用的系统函数的操作信息,并可以将该操作信息进行展示,帮助确定该ELF文件调用是否异常,确保系统安全。所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数。
一般来说,sys_call_table是系统内核的一块区间,用来将调用号和服务连接起来,系统调用某一个进程时,就会通过sys_call_table,来查找到该程序,sys_call_table可以用一个数组实现,或者其他合适的数据结构实现,如链表等等。compat_sys_call_table是兼容的调用表,结构与sys_call_table类似。
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序。TID(线程控制符)英文全称为THREADIdentifier,TID就是线程的身份标识,进程一运行系统就会自动分配给各线程独一无二的TID。
对于一些特殊的系统函数,本发明中进行特殊处理,这些特殊的函数是execve、exit和fork函数,具体处理方式如下:在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
通过通信设备的read功能函数可以获取到调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间以和返回值。在获取该操作信息之前,一般需要使用ioctl设置过滤条件,过滤条件可以是进程PID或ELF文件路径。系统中一些没办法归类的函数就统一放在ioctl这个函数操作中,通过指定的命令来实现对应的操作,因此,ioctl函数里面都实现了多个的对硬件的操作,通过应用层传入的命令来调用相应的操作。通过对这些信息分析,可以确定调用是否异常,进而判断ELF文件是否为恶意程序。
如图2所示,本发明的装置还包括:ELF文件调用系统函数展示单元23,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。可以通过树形图、调用关系树或其他形式进行展示。
本发明的装置是通过在用户空间创建了通信设备,并修改安卓内核代码插入监测函数后重新编译生成安卓内核,通过构建的通信设备的相关功能函数将监测到的ELF文件调用系统函数的操作行为返回并展示,从而可以实时、动态地确定调用是否异常,进而判断ELF文件是否为恶意程序。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (17)

1.一种监控ELF文件调用系统函数的方法,其特征在于,该方法包括:
内核编译步骤,基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控步骤,启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
2.根据权利要求1所述的方法,其特征在于,所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
3.根据权利要求1所述的方法,其特征在于,所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数;
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
4.根据权利要求3所述的方法,其特征在于,所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。
5.根据权利要求4的方法,其特征在于,在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。
6.根据权利要求4的方法,其特征在于,在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
7.根据权利要求1的方法,其特征在于,所述调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间和返回值。
8.根据权利要求7的方法,其特征在于,该方法还包括:
ELF文件调用系统函数展示步骤,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。
9.一种监控ELF文件调用系统函数的装置,其特征在于,该装置包括:
内核编译单元,用于基于安卓内核源代码创建用户空间的通信设备并修改系统调用中断函数,然后编译生成安卓内核;
调用系统函数监控单元,用于启动所述安卓内核后,在用户空间打开所述通信设备并使用read读取ELF文件调用的系统函数的操作信息。
10.根据权利要求9所述的装置,其特征在于,所述通信设备是使用misc_register创建的,并实现所述通信设备的open、read、compat_ioctl、poll和release功能,其中:open用于打开通信设备,read用于从所述通信设备中读取内核获取到的系统函数的操作信息,compat_ioctl用于通过进程PID或者ELF路径设置被监控进程信息,poll用于以轮训方式检测文件描述符是否有数据可读,release用于关闭由open打开的文件描述符。
11.根据权利要求9所述的装置,其特征在于,所述修改系统调用中断函数为在中断处理函数调用表sys_call_table和/或compat_sys_call_table中对应的中断函数前后分别增加before_call和after_call两个自定义函数;
其中,在before_call中,根据PID把调用前数据包写入所述通信设备的缓冲区中;在after_call中,根据PID监控条件把调用后数据包写入所述通信设备的缓冲区中。
12.根据权利要求11所述的装置,其特征在于,所述调用前数据包由系统调用的序号、参数、当前的系统时间、当前进程的PID、线程TID和当前ELF文件的信息组成,所述调用后数据包由系统调用序号、参数、当前的系统时间、当前进程的PID、线程TID、系统函数返回值和当前ELF文件的信息组成。
13.根据权利要求12的装置,其特征在于,在before_call中,判断调用的系统函数是否为execve函数,如果是,则将监控信息中的ELF路径转换成对应的PID并将该PID加入到监控队列;判断调用的系统函数是否为exit函数,如果是,则将当前PID从监控队列移除。
14.根据权利要求12的装置,其特征在于,在after_call中,判断调用的系统函数是否为fork函数,如果是,则将新创建的进程PID加入到监控对列。
15.根据权利要求9的装置,其特征在于,所述调用的系统函数的操作信息包括调用参数、调用进程的PID、调用线程的TID、调用时间以和返回值。
16.根据权利要求15的装置,其特征在于,该装置还包括:
ELF文件调用系统函数展示单元,通过对所述操作信息中的调用进程的PID、调用线程的TID、系统调用参数、返回值和调用时间进行处理,展示所述ELF文件调用系统函数的过程。
17.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行权利要求1-8之任一的方法。
CN201810377593.1A 2018-04-25 2018-04-25 一种监控elf文件调用系统函数的方法、装置及存储介质 Active CN108509795B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810377593.1A CN108509795B (zh) 2018-04-25 2018-04-25 一种监控elf文件调用系统函数的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810377593.1A CN108509795B (zh) 2018-04-25 2018-04-25 一种监控elf文件调用系统函数的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN108509795A true CN108509795A (zh) 2018-09-07
CN108509795B CN108509795B (zh) 2020-08-04

Family

ID=63383230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810377593.1A Active CN108509795B (zh) 2018-04-25 2018-04-25 一种监控elf文件调用系统函数的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN108509795B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344028A (zh) * 2018-09-13 2019-02-15 西安交通大学 一种免超级用户权限的进程行为监控装置与方法
CN111914250A (zh) * 2020-08-18 2020-11-10 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN113064601A (zh) * 2019-12-30 2021-07-02 Oppo广东移动通信有限公司 动态加载文件的确定方法、装置、终端及存储介质
CN116828243A (zh) * 2023-06-05 2023-09-29 启朔(深圳)科技有限公司 硬件编解码方法、移动终端、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100413A1 (en) * 2007-10-15 2009-04-16 Brian Nash Stack Walking Enhancements Using Sensorpoints
CN103927485A (zh) * 2014-04-24 2014-07-16 东南大学 基于动态监控的Android应用程序风险评估方法
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN104809397A (zh) * 2015-05-12 2015-07-29 上海斐讯数据通信技术有限公司 一种基于动态监控的Android恶意软件的检测方法及系统
CN104885092A (zh) * 2012-11-13 2015-09-02 奥克兰服务有限公司 用于操作系统的安全系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100413A1 (en) * 2007-10-15 2009-04-16 Brian Nash Stack Walking Enhancements Using Sensorpoints
CN104885092A (zh) * 2012-11-13 2015-09-02 奥克兰服务有限公司 用于操作系统的安全系统和方法
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN103927485A (zh) * 2014-04-24 2014-07-16 东南大学 基于动态监控的Android应用程序风险评估方法
CN104809397A (zh) * 2015-05-12 2015-07-29 上海斐讯数据通信技术有限公司 一种基于动态监控的Android恶意软件的检测方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344028A (zh) * 2018-09-13 2019-02-15 西安交通大学 一种免超级用户权限的进程行为监控装置与方法
CN113064601A (zh) * 2019-12-30 2021-07-02 Oppo广东移动通信有限公司 动态加载文件的确定方法、装置、终端及存储介质
CN111914250A (zh) * 2020-08-18 2020-11-10 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN111914250B (zh) * 2020-08-18 2022-05-17 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN116828243A (zh) * 2023-06-05 2023-09-29 启朔(深圳)科技有限公司 硬件编解码方法、移动终端、计算机设备和存储介质

Also Published As

Publication number Publication date
CN108509795B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN108509795A (zh) 一种监控elf文件调用系统函数的方法、装置及存储介质
CN108133139B (zh) 一种基于多运行环境行为比对的安卓恶意应用检测系统
EP3471008B1 (en) De-obfuscating scripted language for network intrusion detection using a regular expression signature
US9230106B2 (en) System and method for detecting malicious software using malware trigger scenarios in a modified computer environment
CN105303112B (zh) 组件调用漏洞的检测方法及装置
CN103500308A (zh) 用于对抗由恶意软件对仿真的检测的系统和方法
CN104866734B (zh) 一种dex文件的保护方法及装置
CN107480029A (zh) 一种函数调用时间的监控方法及装置
CN103559446A (zh) 一种基于安卓系统的设备的动态病毒检测方法和装置
CN104252594B (zh) 病毒检测方法和装置
CN105631312B (zh) 恶意程序的处理方法及系统
CN108595953A (zh) 对手机应用进行风险评估的方法
De Andrade et al. Malware automatic analysis
CN105550581A (zh) 一种恶意代码检测方法及装置
CN108268773B (zh) Android应用升级包本地存储安全性检测方法
CN110298173A (zh) 检测由软件程序的延迟循环隐藏的恶意软件
CN107239698A (zh) 一种基于信号处理机制的反调试方法和装置
CN109800569A (zh) 程序鉴别方法及装置
CN104915594B (zh) 应用程序运行方法及装置
CN111259382A (zh) 恶意行为识别方法、装置、系统和存储介质
CN110532776B (zh) 基于运行时数据分析的Android恶意软件高效检测方法、系统及介质
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
CN110210216A (zh) 一种病毒检测的方法以及相关装置
CN105453104A (zh) 系统保护用文件安全管理装置和管理方法
KR102102577B1 (ko) 악성 앱 탐지 장치 및 그 방법

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
GR01 Patent grant
GR01 Patent grant