一种辅助分析恶意代码的方法及系统技术方案

技术编号:13768231 阅读:570 留言:0更新日期:2016-09-29 02:44
本发明专利技术公开了一种辅助分析恶意代码的方法及系统,本方法是通过输入参数进行解密并输出解密结果的方式进行辅助分析恶意代码。通过输入配置信息,生成配置文件,运行加载待解密so的进程,对加载待解密so的进程进行注入并对待Hook函数进行Hook,获取解密数据。通过本方法解决了恶意代码放入动态链接库中增加检出难度并增加人工分析难度的问题。

【技术实现步骤摘要】

本专利技术涉及移动网络安全
,尤其涉及一种辅助分析恶意代码的方法及系统
技术介绍
随着移动技术的发展,移动安全问题日益突出,针对移动终端的病毒、恶意行为越来越多,且呈现增长趋势。现如今,由于Java代码较容易被反编译,导致越来越多的恶意代码将其关键恶意代码放入动态链接库中以逃避安全软件的检测,增加检出难度,同时也增加了恶意代码的人工分析难度。
技术实现思路
针对上述技术问题,本专利技术提供了一种辅助分析恶意代码的方法及系统,该方法通过对加载待解密so的进程进行注入并且对加载待解密so的进程中待Hook函数进行Hook来实现对动态链接库中关键代码的注入和Hook,并通过输出解密结果来辅助恶意代码的人工分析。一种辅助分析恶意代码的方法,包括:输入配置信息,生成配置文件;运行加载待解密so的进程;对加载待解密so的进程进行注入;判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;对加载待解密so的进程中待Hook函数进行Hook;输出解密结果。进一步的,所述配置信息包括待解密的动态链接库名称、待Hook函数的名称、待Hook函数的参数个数、待Hook函数的参数类型、函数返回值类型和是否需要dump文件。进一步的,所述对加载待解密so的进程进行注入,具体为:对Android系统中的Zygote进行注入,在Zygote运行过程中动态加载一个自定义的动态链接库。进一步的,所述对加载待解密so的进程中待Hook函数进行Hook,具体为:在动态链接库中读取dlopen函数进行Hook,并使其调用自定义dlopen_redefine函数。进一步的,所述调用自定义dlopen_redefine函数具体操作为:读取保存在系统/data/local/tmp下的配置文件,进行指定动态链接库的指定函数的Hook并调用自定义替换函数。一种辅助分析恶意代码的系统,包括:配置模块:用于输入配置信息,生成配置文件;运行模块:用于运行加载待解密so的进程;注入模块:用于对加载待解密so的进程进行注入;判断模块:用于判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;Hook模块:用于对加载待解密so的进程中待Hook函数进行Hook;输出模块:用于输出解密结果。进一步的,所述配置信息包括待解密的动态链接库名称、待Hook函数的名称、待Hook函数的参数个数、待Hook函数的参数类型、函数返回值类型和是否需要dump文件。进一步的,所述注入模块,具体用于:对Android系统中的Zygote进行注入,在Zygote运行过程中动态加载一个自定义的动态链接库。进一步的,所述Hook模块,具体用于:在动态链接库中读取dlopen函数进行Hook,并使其调用自定义dlopen_redefine函数。进一步的,所述调用自定义dlopen_redefine函数具体操作为:读取保存在系统/data/local/tmp下的配置文件,进行指定动态链接库的指定函数的Hook并调用自定义替换函数。本专利技术涉及一种辅助分析恶意代码的方法,本方法基于注入和Hook技术,通过运行加载待解密so的进程,并对加载待解密so的进程进行注入,读取配置文件中的配置信息,对加载待解密so的进程中待Hook函数进行Hook,输出解密结果,从而为人工分析提供需要的数据。本方法克服了恶意代码逃避安全检测,增加恶意代码人工分析难度的问题,进而提高了人员检测恶意代码的效率。附图说明为了更清楚地说明本专利技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种辅助分析恶意代码的方法实施例流程图;图2为本专利技术提供的一种辅助分析恶意代码的系统实施例结构图。具体实施方式本专利技术给出了一种辅助分析恶意代码的方法及系统,为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术中技术方案作进一步详细的说明:本专利技术首先提供了一种辅助分析恶意代码的方法,如图1所示,包括:S101输入配置信息,生成配置文件;所述配置信息包括待解密的动态链接库名称、待Hook函数的名称、待Hook函数的参数个数、待Hook函数的参数类型、函数返回值类型和是否需要dump文件;S102运行加载待解密so的进程;S103对加载待解密so的进程进行注入;所述对加载待解密so的进程进行注入,具体为:对Android系统中的Zygote进行注入,在Zygote运行过程中动态加载一个自定义的动态链接库;注入的基本原理是利用ptrace()函数attach到一个进程上,然后在其调用序列中插入一个调用dlopen()函数的步骤,将一个事先预备好的.so文件加载到要hook的进程中,最终由这个加载的.so文件在初始化函数中hook指定的函数;S104判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;S105对加载待解密so的进程中待Hook函数进行Hook;所述对加载待解密so的进程中待Hook函数进行Hook,具体为:在动态链接库中读取dlopen函数进行Hook,并使其调用自定义dlopen_redefine函数;所述调用自定义dlopen_redefine函数具体操作为:读取保存在系统/data/local/tmp下的配置文件,进行指定动态链接库的指定函数的Hook并调用自定义替换函数;Hook的基本原理是获取进程内存信息,找到待解密动态链接库首地址,并通过解析动态链接库符号表,找到待Hook的函数地址,修改函数指令信息让其执行待Hook的函数,并在待Hook的函数中调用原始函数并输出其返回值;S106输出解密结果。本专利技术还提供了一种辅助分析恶意代码的系统,如图2所示,包括:配置模块201,用于输入配置信息,生成配置文件;其中,所述配置模块用于存储用户输入的配置信息;运行模块202,用于运行加载待解密so的进程;注入模块203,用于对加载待解密so的进程进行注入;其中,所述注入模块用于提供对加载待解密so的进程的注入功能;判断模块204,用于判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;Hook模块205,用于对加载待解密so的进程中待Hook函数进行Hook;其中,所述Hook模块用于提供对加载待解密so的进程中待Hook函数的Hook功能;输出模块206,用于输出解密结果。综上所述,本专利技术涉及一种辅助分析恶意代码的方法,本方法是通过输入参数进行解密并输出解密结果的方式进行辅助分析恶意代码。通过输入配置信息,生成配置文件,运行加载待解密so的进程,对加载待解密so的进程进行注入并对待Hook函数进行Hook,获取解密数据。由于Java代码容易被反编译,导致越来越多的恶意代码放入动态链接库中以逃避安全软件的检测,增加检出难度,同时也增加人工分析难度,本方法基于注入和Hook的技术实现动态链接库关键代码的注入和Hook,简单方便的配置其需要分析的动态链接库中的关键函数,并从中获取其想要的分析数据。以上实施例用以说明本文档来自技高网
...

【技术保护点】
一种辅助分析恶意代码的方法,其特征在于:输入配置信息,生成配置文件;运行加载待解密so的进程;对加载待解密so的进程进行注入;判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;对加载待解密so的进程中待Hook函数进行Hook;输出解密结果。

【技术特征摘要】
1.一种辅助分析恶意代码的方法,其特征在于:输入配置信息,生成配置文件;运行加载待解密so的进程;对加载待解密so的进程进行注入;判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;对加载待解密so的进程中待Hook函数进行Hook;输出解密结果。2.如权利要求1所述的方法,其特征在于,所述配置信息包括待解密的动态链接库名称、待Hook函数的名称、待Hook函数的参数个数、待Hook函数的参数类型、函数返回值类型和是否需要dump文件。3.如权利要求1所述的方法,其特征在于,所述对加载待解密so的进程进行注入,具体为:对Android系统中的Zygote进行注入,在Zygote运行过程中动态加载一个自定义的动态链接库。4.如权利要求1所述的方法,其特征在于,所述对加载待解密so的进程中待Hook函数进行Hook,具体为:在动态链接库中读取dlopen函数进行Hook,并使其调用自定义dlopen_redefine函数。5.如权利要求4所述的方法,其特征在于,所述调用自定义dlopen_redefine函数具体操作为:读取保存在系统/data/local/tmp下的配置文件,进行指定动态链接库的指定函数的Hook并调用自定义替换函数。6.一种辅助分析恶意代码的...

【专利技术属性】
技术研发人员:冯泽乔伟
申请(专利权)人:武汉安天信息技术有限责任公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1