一种信息处理方法和系统的制作方法_2

文档序号:9615032阅读:来源:国知局
述关联的监控模块对所述系统调用进行监控。
[0038]进一步优选地,在监控模块与应用程序活动进程的调用指令关联时具体可以通过特定的钩子函数进行关联,所述监控模块可以利用所述特定的钩子函数对相关调用指令的入口点进行监视,截获系统调用。
[0039]在本实施例的另一优选方案中,可以通过第一函数对系统调用进行监控。其中,所述监控模块中携带有所述第一函数,所述第一函数用于提供父进程观察和控制其他进程执行的机制。
[0040]例如,所述第一函数具体可以是ptrace ()函数。ptrace ()函数提供父进程观察和控制另一个进程执行的机制,同时提供查询和修改另一进程的核心影像与寄存器的能力。主要用于执行断点调试和系统调用跟踪。父进程可通过调用fork()函数,接着指定所产生的子进程的PTRACE_TRACEME行为,最后使用exec等操作来初始化一个进程跟踪。当子进程被跟踪时,每次接收到信号都会停止执行,即使不对信号进行处理。父进程下次执行调用时,会接收到核心的通告,并检查和修改已停止的子进程。父进程使子进程继续执行,并有可能忽略接收到的信号。
[0041]步骤206,在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息。
[0042]在本实施例中,钩子函数可以用于接管应用程序运行时的系统调用,以获取系统调用对应的参数信息。
[0043]优选地,在本实施例中,可以通过钩子函数关联第二函数,以通过所述第二函数获取所述系统调用对应的参数信息。其中,所述第二函数用于装入并运行其它程序。
[0044]例如,所述第二函数具体可以是execvO函数。可以通过与execv()函数的钩子函数监控并获取execvO函数的返回消息,便可实现对系统调用对应的参数信息的获取。
[0045]步骤208,根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。
[0046]在本实施例中,所述调用信息包括但不仅限于如下信息中的至少一种:所述应用程序在执行过程中对应执行的命令信息、和调用的动态链接库信息。
[0047]以so文件(so文件是1 inux的动态链接库)为例进行说明,在某些加固APK(Android Package,Android安装包)中,会对加固APK中的so文件进行变形,或对so文件的某些代码节区进行加密。在本实施例中,通过对所述参数信息的分析,可以获取应用程序执行过程中对应的原始so文件。此外,进一步地,还可以获取应用程序在执行过程中对应执行的命令信,以及参数传递过程和环境变量等信息,本实施例对此不作限制。
[0048]综上所述,本实施例所述的信息处理方法,可以预先在目标可执行文件中注入钩子函数;在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。可见,在本实施例中,可以获取应用程序在执行过程中涉及的调用信息,以根据所述调用信息对应用程序进行分析,确定应用程序的安全性。
[0049]其次,由于可以通过钩子函数直接获取到系统调用对应的参数信息,该参数信息是原始参数信息,因此,本实施例所述的信息处理方法不受应用程序的加固影响,无论调用的文件是否发生变形或加密,均可获取到原始的调用信息,保证了对应用程序分析的准确性,提高了应用程序使用的安全性。
[0050]需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
[0051]实施例三
[0052]基于与上述方法实施例同一发明构思,参照图3,示出了本发明实施例三中一种信息处理系统的结构框图。
[0053]在本实施例中,所述信息处理系统包括:
[0054]注入模块302,用于预先在目标可执行文件中注入钩子函数。
[0055]获取模块304,用于在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息。
[0056]优选地,所述获取模块304在通过所述钩子函数获取所述系统调用对应的参数信息时,具体可以包括:通过钩子函数关联第二函数;通过所述第二函数获取所述系统调用对应的参数信息。其中,所述第二函数用于装入并运行其它程序。
[0057]分析模块306,用于根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。
[0058]在本实施例中,优选地,所述调用信息包括如下信息中的至少一种:所述应用程序在执行过程中对应执行的命令信息、和调用的动态链接库信息。
[0059]参照图4,示出了本发明实施例三中一种优选的信息处理系统的结构框图。
[0060]优选地,在本实施例中,所述信息处理系统还可以包括:监控模块308,用于对所述系统调用进行监控。具体地,所述监控模块308可以被注册为服务进程,并与应用程序活动进程的调用指令关联,以对所述系统调用进行监控。
[0061]在本实施例中,监控模块308中携带有第一函数;其中,所述第一函数用于提供父进程观察和控制其他进程执行的机制。也即,所述监控模块308可以通过所述第一函数对所述系统调用进行监控。
[0062]参照图4,优选地,所述注入模块302可以包括:获取子模块3022,用于从系统的用户界面中获取所述目标可执行文件;复制子模块3024,用于复制所述目标可执行文件的可执行代码;注入子模块3026,用于向所述可执行代码中注入所述钩子函数。
[0063]需要说明的是,在本实施例中,所述目标可执行文件可以是所述系统的用户界面中的ELF文件。
[0064]综上所述,本实施例所述的信息处理系统,可以预先在目标可执行文件中注入钩子函数;在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。可见,在本实施例中,可以获取应用程序在执行过程中涉及的调用信息,以根据所述调用信息对应用程序进行分析,确定应用程序的安全性。
[0065]其次,由于可以通过钩子函数直接获取到系统调用对应的参数信息,该参数信息是原始参数信息,因此,本实施例所述的信息处理系统不受应用程序的加固影响,无论调用的文件是否发生变形或加密,均可获取到原始的调用信息,保证了对应用程序分析的准确性,提高了应用程序使用的安全性。
[0066]对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0067]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0068]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0069]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0070]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1