CN105975859A - 一种辅助分析恶意代码的方法及系统 - Google Patents

一种辅助分析恶意代码的方法及系统 Download PDF

Info

Publication number
CN105975859A
CN105975859A CN201511004603.XA CN201511004603A CN105975859A CN 105975859 A CN105975859 A CN 105975859A CN 201511004603 A CN201511004603 A CN 201511004603A CN 105975859 A CN105975859 A CN 105975859A
Authority
CN
China
Prior art keywords
function
hook
decrypted
link library
dynamic link
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
CN201511004603.XA
Other languages
English (en)
Other versions
CN105975859B (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.)
Wuhan Antian Information Technology Co Ltd
Original Assignee
Wuhan Antian Information 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 Wuhan Antian Information Technology Co Ltd filed Critical Wuhan Antian Information Technology Co Ltd
Priority to CN201511004603.XA priority Critical patent/CN105975859B/zh
Publication of CN105975859A publication Critical patent/CN105975859A/zh
Application granted granted Critical
Publication of CN105975859B publication Critical patent/CN105975859B/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

Abstract

本发明公开了一种辅助分析恶意代码的方法及系统,本方法是通过输入参数进行解密并输出解密结果的方式进行辅助分析恶意代码。通过输入配置信息,生成配置文件,运行加载待解密so的进程,对加载待解密so的进程进行注入并对待Hook函数进行Hook,获取解密数据。通过本方法解决了恶意代码放入动态链接库中增加检出难度并增加人工分析难度的问题。

Description

一种辅助分析恶意代码的方法及系统
技术领域
本发明涉及移动网络安全技术领域,尤其涉及一种辅助分析恶意代码的方法及系统。
背景技术
随着移动技术的发展,移动安全问题日益突出,针对移动终端的病毒、恶意行为越来越多,且呈现增长趋势。现如今,由于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,简单方便的配置其需要分析的动态链接库中的关键函数,并从中获取其想要的分析数据。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。

Claims (10)

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.一种辅助分析恶意代码的系统,其特征在于,包括:
配置模块:用于输入配置信息,生成配置文件;
运行模块:用于运行加载待解密so的进程;
注入模块:用于对加载待解密so的进程进行注入;
判断模块:用于判断是否为待解密的动态链接库,如果是则读取配置文件中的配置信息;
Hook模块:用于对加载待解密so的进程中待Hook函数进行Hook;
输出模块:用于输出解密结果。
7.如权利要求6所述的系统,其特征在于,所述配置模块中的配置信息包括待解密的动态链接库名称、待Hook函数的名称、待Hook函数的参数个数、待Hook函数的参数类型、函数返回值类型和是否需要dump文件。
8.如权利要求6所述的系统,其特征在于,所述注入模块,具体用于:对Android系统中的Zygote进行注入,在Zygote运行过程中动态加载一个自定义的动态链接库。
9.如权利要求6所述的系统,其特征在于,所述Hook模块,具体用于:在动态链接库中读取dlopen函数进行Hook,并使其调用自定义dlopen_redefine函数。
10.如权利要求9所述的系统,其特征在于,所述调用自定义dlopen_redefine函数具体操作为:读取保存在系统/data/local/tmp下的配置文件,进行指定动态链接库的指定函数的Hook并调用自定义替换函数。
CN201511004603.XA 2015-12-29 2015-12-29 一种辅助分析恶意代码的方法及系统 Active CN105975859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511004603.XA CN105975859B (zh) 2015-12-29 2015-12-29 一种辅助分析恶意代码的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511004603.XA CN105975859B (zh) 2015-12-29 2015-12-29 一种辅助分析恶意代码的方法及系统

Publications (2)

Publication Number Publication Date
CN105975859A true CN105975859A (zh) 2016-09-28
CN105975859B CN105975859B (zh) 2019-04-16

Family

ID=56988206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511004603.XA Active CN105975859B (zh) 2015-12-29 2015-12-29 一种辅助分析恶意代码的方法及系统

Country Status (1)

Country Link
CN (1) CN105975859B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273745A (zh) * 2017-04-21 2017-10-20 中国科学院软件研究所 一种动态链接库形式的恶意代码的动态分析方法
CN108573142A (zh) * 2017-03-10 2018-09-25 中移(杭州)信息技术有限公司 一种实现hook的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455337A (zh) * 2013-09-12 2013-12-18 四川长虹电器股份有限公司 在安卓开发环境下使用动态库的方法
CN103647784A (zh) * 2013-12-20 2014-03-19 北京奇虎科技有限公司 一种公私隔离的方法和装置
US20140157411A1 (en) * 2012-12-03 2014-06-05 Institute For Information Industry Safety protection method and safety protection device
CN104517060A (zh) * 2015-01-08 2015-04-15 南京创和信息技术有限公司 基于Android平台的文件访问指令截取系统及方法
CN105095741A (zh) * 2014-05-13 2015-11-25 北京奇虎测腾科技有限公司 一种应用程序的行为监测方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157411A1 (en) * 2012-12-03 2014-06-05 Institute For Information Industry Safety protection method and safety protection device
CN103455337A (zh) * 2013-09-12 2013-12-18 四川长虹电器股份有限公司 在安卓开发环境下使用动态库的方法
CN103647784A (zh) * 2013-12-20 2014-03-19 北京奇虎科技有限公司 一种公私隔离的方法和装置
CN105095741A (zh) * 2014-05-13 2015-11-25 北京奇虎测腾科技有限公司 一种应用程序的行为监测方法和系统
CN104517060A (zh) * 2015-01-08 2015-04-15 南京创和信息技术有限公司 基于Android平台的文件访问指令截取系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573142A (zh) * 2017-03-10 2018-09-25 中移(杭州)信息技术有限公司 一种实现hook的方法及装置
CN108573142B (zh) * 2017-03-10 2020-06-09 中移(杭州)信息技术有限公司 一种实现hook的方法及装置
CN107273745A (zh) * 2017-04-21 2017-10-20 中国科学院软件研究所 一种动态链接库形式的恶意代码的动态分析方法
CN107273745B (zh) * 2017-04-21 2020-08-21 中国科学院软件研究所 一种动态链接库形式的恶意代码的动态分析方法

Also Published As

Publication number Publication date
CN105975859B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
US8464230B2 (en) Methods and systems to implement non-ABI conforming features across unseen interfaces
CN105303073B (zh) 软件代码保护方法
CN108399319B (zh) 源代码保护方法、应用服务器及计算机可读存储介质
CN109255209A (zh) 一种数据处理方法、装置、设备和存储介质
CN105205142A (zh) 保存日志文件的方法、装置和移动终端
CN109101815A (zh) 一种恶意软件检测方法及相关设备
CN106055375A (zh) 应用程序安装方法及装置
CN107832059A (zh) 一种基于Makefile的代码静态分析方法和装置
CN105975859A (zh) 一种辅助分析恶意代码的方法及系统
WO2023035751A1 (zh) 移动端应用的智能混淆
CN104252594A (zh) 病毒检测方法和装置
CN104915594B (zh) 应用程序运行方法及装置
CN103544298A (zh) 组件的日志分析方法和分析装置
JP2016170783A (ja) 署名に基づく静的解析を用いた悪質ソフトウェアの動作の検出
CN103309741B (zh) 调用插件功能的方法和装置
KR101710796B1 (ko) 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법
CN105701429A (zh) 一种rfid射频卡的自定义适配方法及系统
CN111045686A (zh) 一种提高应用反编译速度的方法、智能终端及存储介质
CN102736924B (zh) 软件安装的方法和装置
CN112463402A (zh) 一种基于macOS操作系统的剪切板控制方法和系统
CN104077528A (zh) 病毒检测方法、装置以及终端
CN106919812B (zh) 一种应用进程权限管理方法和装置
CN111880507A (zh) 一种交流故障穿越特性在线调试方法、装置及存储介质
CN114510723B (zh) 一种智能合约权限管理漏洞检测方法及装置
CN106899774B (zh) 终端modem软件的动态适配方法及动态适配装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 430076 No. 8 Huacheng Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province

Applicant after: Wuhan Antian Information Technology Co., Ltd.

Address before: 430000 Hubei Wuhan East Lake New Technology Development Zone Software Park East Road 1 software industry 4.1 phase B4 building 12 stories 01 rooms.

Applicant before: Wuhan Antian Information Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant