一种信息处理方法和系统的制作方法【
技术领域:
】[0001]本发明涉及安全
技术领域:
,特别是涉及一种信息处理方法和系统。【
背景技术:
】[0002]安卓(Android)平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,同时基于其中的软件应用数目也十分巨大,与其他移动终端操作系统相比,安卓系统为应用开发者提供了更多的功能接口,其中很多系统底层接口,提高了系统的可扩展性,但同时也为恶意软件提供了便利,针对安卓系统的木马等恶意软件也更容易被实现,目前已有的针对安卓系统的恶意软件可以通过伪装的方式,骗取用户安装并授予一定的权限,之后滥用这些权限在后台执行一些特定行为,包括窃取用户隐私骗取资费等行为。然而与之并生的安全问题却始终没有得到良好的解决,安全威胁越来越多,且威胁程度也在逐步加深,无论对开发者还是用户都带来了不良的影响。[0003]而且对于一些正常的安卓系统应用,也存在通过非法拷贝、逆向工程、反编译、调试、破解、二次打包、内存截取等手段来威胁安卓系统的安全,不仅危害了使用用户,也给正常应用开发者造成严重的损害。[0004]基于以上问题,现有技术中出现了多种安卓应用的安全加固方法,通过对安卓应用进行加密、防反编译、防代码混淆等加固措施。然而加固过程会导致原文件的变形,特别是携带有病毒代码的应用程序,在加固之后,技术人员难以获取到原文件,进而导致无法准确判断出所述应用程序中携带有病毒代码,存在严重的安全隐患。【
发明内容】[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种信息处理方法和系统。[0006]依据本发明的一个方面,提供了一种信息处理方法,包括:[0007]预先在目标可执行文件中注入钩子函数;[0008]在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;[0009]根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。[0010]依据本发明的另一个方面,提供了一种信息处理系统,包括:[0011]注入模块,用于预先在目标可执行文件中注入钩子函数;[0012]获取模块,用于在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;[0013]分析模块,用于根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。[0014]本发明实施例公开了一种信息处理方案,可以预先在目标可执行文件中注入钩子函数;在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。可见,在本发明实施例中,可以获取应用程序在执行过程中涉及的调用信息,以根据所述调用信息对应用程序进行分析,确定应用程序的安全性。其次,由于可以通过钩子函数直接获取到系统调用对应的参数信息,该参数信息是原始参数信息,因此,本发明实施例所述的信息处理方案不受应用程序的加固影响,无论调用的文件是否发生变形或加密,均可获取到原始的调用信息,保证了对应用程序分析的准确性,提高了应用程序使用的安全性。[0015]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。【附图说明】[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0017]图1是本发明实施例一中一种信息处理方法的步骤流程图;[0018]图2是本发明实施例二中一种信息处理方法的步骤流程图;[0019]图3是本发明实施例三中一种信息处理系统的结构框图;[0020]图4是本发明实施例三中一种优选的信息处理系统的结构框图。【具体实施方式】[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。[0022]实施例一[0023]参照图1,示出了本发明实施例一中一种信息处理方法的步骤流程图。在本实施例中,所述信息处理方法包括:[0024]步骤102,预先在目标可执行文件中注入钩子函数。[0025]术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作系统、应用程序、或其他软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子函数。钩子函数通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截系统调用(systemcall),以监视或修改应用程序或其他组件的功能等等。本实施例即可采用钩子函数接管应用程序运行时的系统调用。[0026]步骤104,在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息。[0027]步骤106,根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。[0028]综上所述,本实施例所述的信息处理方法,可以预先在目标可执行文件中注入钩子函数;在监控到应用程序对应的系统调用时,通过所述钩子函数获取所述系统调用对应的参数信息;根据对所述参数信息的分析,得到所述应用程序在执行过程中的调用信息。可见,在本实施例中,可以获取应用程序在执行过程中涉及的调用信息,以根据所述调用信息对应用程序进行分析,确定应用程序的安全性。[0029]其次,由于可以通过钩子函数直接获取到系统调用对应的参数信息,该参数信息是原始参数信息,因此,本实施例所述的信息处理方法不受应用程序的加固影响,无论调用的文件是否发生变形或加密,均可获取到原始的调用信息,保证了对应用程序分析的准确性,提高了应用程序使用的安全性。[0030]实施例二[0031]参照图2,示出了本发明实施例二中一种信息处理方法的步骤流程图。在本实施例中,所述信息处理方法包括:[0032]步骤202,预先在目标可执行文件中注入钩子函数。[0033]目前,移动终端系统对于Root权限的管理较为严格,通常情况下多数应用或程序都不具备Root权限,因此对于某些需要具备Root权限的操作就无法执行,例如安装或卸载应用等操作。其中,Root权限是指Unix类操作系统(包括Linux、Android)的系统管理员权限,类似于Windows(视窗)系统中的Administrator(管理员)权限;Root权限可以访问和修改用户的移动设备中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。[0034]在本实施例中,为了保证钩子函数的成功注入,可以通过如下方式获取Root权限:通过调用系统内置的SU(SuperUser,超级用户)命令获取Root权限,或者通过获取具有Root权限的shell获取Root权限并在shell中启动进程。其中,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。换而言之,用户输入的命令一般是通过Shell来执行。[0035]在本实施例中,可以基于Linux可执行文件ELF(ExecutableLinkingFormat,是Linux中的可执行文件,用于存放可执行代码)的感染接触原理来实现所述钩子函数的注入。也即,所述可执行文件具体可以是Shell中的ELF文件。具体地:可以从系统的用户界面Shell中获取目标可执行文件(ELF文件);复制所述目标可执行文件的可执行代码;向所述可执行代码中注入所述钩子函数。进一步优选地,在必要时,还可以加入用于实现对钩子函数进行自校验的校验代码。[0036]步骤204,对所述系统调用进行监控。[0037]在本实施例中,可以通过监控模块对系统调用进行监控。具体地,可以将所述监控模块注册为服务进程,与应用程序活动进程的调用指令关联;通过所当前第1页1 2 3