CN103559446B - 一种基于安卓系统的设备的动态病毒检测方法和装置 - Google Patents
一种基于安卓系统的设备的动态病毒检测方法和装置 Download PDFInfo
- Publication number
- CN103559446B CN103559446B CN201310562160.0A CN201310562160A CN103559446B CN 103559446 B CN103559446 B CN 103559446B CN 201310562160 A CN201310562160 A CN 201310562160A CN 103559446 B CN103559446 B CN 103559446B
- Authority
- CN
- China
- Prior art keywords
- target process
- unit
- bootstrap
- function
- dynamic base
- 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.)
- Expired - Fee Related
Links
- 241000700605 Viruses Species 0.000 title claims abstract description 24
- 238000001514 detection method Methods 0.000 title abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 183
- 230000008569 process Effects 0.000 claims abstract description 116
- 230000006870 function Effects 0.000 claims description 109
- 230000000903 blocking effect Effects 0.000 claims description 18
- 230000006399 behavior Effects 0.000 claims description 17
- 230000003612 virological effect Effects 0.000 claims description 12
- 238000002347 injection Methods 0.000 claims description 11
- 239000007924 injection Substances 0.000 claims description 11
- 238000003745 diagnosis Methods 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 9
- KANJSNBRCNMZMV-ABRZTLGGSA-N fondaparinux Chemical group O[C@@H]1[C@@H](NS(O)(=O)=O)[C@@H](OC)O[C@H](COS(O)(=O)=O)[C@H]1O[C@H]1[C@H](OS(O)(=O)=O)[C@@H](O)[C@H](O[C@@H]2[C@@H]([C@@H](OS(O)(=O)=O)[C@H](O[C@H]3[C@@H]([C@@H](O)[C@H](O[C@@H]4[C@@H]([C@@H](O)[C@H](O)[C@@H](COS(O)(=O)=O)O4)NS(O)(=O)=O)[C@H](O3)C(O)=O)O)[C@@H](COS(O)(=O)=O)O2)NS(O)(=O)=O)[C@H](C(O)=O)O1 KANJSNBRCNMZMV-ABRZTLGGSA-N 0.000 claims description 4
- 229940104697 arixtra Drugs 0.000 claims description 3
- 238000004540 process dynamic Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 2
- 239000008186 active pharmaceutical agent Substances 0.000 claims 1
- 238000005520 cutting process Methods 0.000 claims 1
- 238000013024 troubleshooting Methods 0.000 abstract 1
- 230000003068 static effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010460 detection of virus Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- 241000702421 Dependoparvovirus Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及信息安全领域,提出了一种基于安卓系统的设备的动态病毒检测方法。该方法包括,获取需要进行病毒检测的正在运行的目标进程;将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;检测所述目标进程的可疑行为。本发明通过在Android底层库进行拦截排查,可以更有效地评估应用程序的更深层次的可疑行为,是一种便捷高效的病毒检测方法。
Description
技术领域
本发明涉及信息安全领域,特别地,涉及一种基于安卓系统的设备的动态病毒检测方法。
背景技术
目前,Android系统是移动终端领域最主流的操作系统,用户对系统的安全性要求越来越高。对恶意软件的检测方法,目前主要有两种,一种是静态检测,通过对APK(AndroidPackage)安装包反编译后的JAVA字节码与病毒的特征码比较进行分析,通过对应用程序申请的权限进行分析;另外一种是动态检测,在程序运行的时候检测程序是否有恶意的行为,主要是检测程序运行时是否释放了可疑的特征码,利用Android框架层的API(ApplicationProgram Interface)判断应用程序运行过程中是否申请了特定的权限。
恶意软件的静态检测方法主要是将APK安装包反编译出JAVA字节码,与病毒的特征码比较,匹配则认为程序被插入恶意代码,另外通过分析应用程序申请的权限内容来判定程序是否潜在可疑的行为。这种方法要求病毒的特征码的覆盖面要广,以便更有效的检测到病毒,但是实际应用中,病毒的繁衍速度往往比已提取的病毒库要快,而且大多的应用程序都会申请很多看上去并不需要的权限,静态申请了并不代表就会去使用,一刀切容易误判,如腾讯QQ申请了发短信的权限,实际上并不会发送短信或者只能在特定情况下发送短信,不能因此就判定腾讯QQ程序就是病毒。
恶意软件的动态检测方法主要是在应用程序运行过程中检测程序是否包括可疑的特征码,是否申请了不应申请的权限。相比静态检测,该方法能更有效检测到应用程序申请权限的行为,但是也依赖病毒库的特征码信息,并且基于Android框架层的API进行检测,有些病毒利用底层接口入侵,该方法根本无法检测到。
发明内容
为了有效地检测利用底层库接口入侵的病毒程序,我们提出一种基于安卓系统的设备的动态病毒检测方法,其特征在于,包括以下步骤:
获取需要进行病毒检测的正在运行的目标进程;
将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;
检测所述目标进程的可疑行为。
优选地,还包括:
将引导程序写入到所述目标进程的内存中,通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向。
优选地,所述通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向的步骤包括:
在所述目标进程空间中分配一块指定的内存,并置为可读写可执行;
将所述拦截程序编译的动态库加载到所述目标进程空间中;
调用所述拦截程序的入口函数来启动所述重定向。
优选地,
所述引导程序通过获取所述目标进程空间动态库的内存分配函数地址来在所述目标进程空间中分配所述指定的内存。
优选地,在所述将引导程序写入到所述目标进程的内存中的步骤之前,还包括:
调试所述目标进程;
保存所述目标进程运行环境;
在所述目标进程中分配一段内存空间为可读写。
优选地,所述重定向过程包括:
利用目标进程空间中dlopen函数打开所述目标进程空间指定的动态库,枚举动态库函数表,获取该动态库的指定的API函数地址;
利用目标进程空间中dlopen函数打开拦截程序的动态库,获取所述API函数地址对应的新API函数地址;
去掉所述指定的动态库所在的内存写保护;
将所述获取的API函数地址替换为所述新API函数地址。
优选地,通过PC将所述引导程序和拦截程序注入到所述设备中,并启动所述引导程序。
优选地,所述PC通过安卓调试连接桥将所述引导程序和拦截程序注入到所述设备中。
优选地,所述通过PC将所述引导程序和拦截程序注入到所述设备中的步骤,包括:
配置目标进程名称;
配置目标动态库路径;
配置拦截程序入口函数;
将用于所述设备的所述引导程序和拦截程序推送到所述设备。
优选地,所述引导程序为可执行程序,所述拦截程序为动态库。
优选地,还包括,检测到所述目标进程的可疑行为后,通知用户对该可疑行为进行处理。
优选地,检测到所述目标进程的可疑行为后,将该可疑行为记录到权限管理表,用户根据该权限管理表对该可疑行为进行处理。
本发明还提供了一种基于安卓系统的设备的动态病毒检测装置,其特征在于,包括以下单元:
获取单元,用于获取需要进行病毒检测的正在运行的目标进程;
重定向单元,用于将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;
检测单元,用于检测所述目标进程的可疑行为。
优选地,还包括:
引导单元,用于将引导程序写入到所述目标进程的内存中,通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向。
优选地,所述引导单元包括:
内存分配单元,用于在所述目标进程空间中分配一块指定的内存,并置为可读写可执行;
动态库加载单元,用于将所述拦截程序编译的动态库加载到所述目标进程空间中;
入口函数启动单元,用于调用所述拦截程序的入口函数来启动所述重定向。
优选地,
所述引导单元通过获取所述目标进程空间动态库的内存分配函数地址来在所述目标进程空间中分配所述指定的内存。
优选地,还包括:
调试单元,用于调试所述目标进程;
运行环境保存单元,用于保存所述目标进程运行环境;
内存空间分配单元,用于在所述目标进程中分配一段内存空间为可读写。
优选地,所述重定向单元包括:
目标进程动态库开启单元,用于利用目标进程空间中dlopen函数打开所述目标进程空间指定的动态库,枚举动态库函数表,获取该动态库的指定的API函数地址;
拦截程序动态库开启单元,用于利用目标进程空间中dlopen函数打开拦截程序的动态库,获取所述API函数地址对应的新API函数地址;
内存写保护去除单元,用于去掉所述指定的动态库所在的内存写保护;
替换单元,用于将所述获取的API函数地址替换为所述新API函数地址。
优选地,还包括:PC端注入单元,用于通过PC将所述引导程序和拦截程序注入到所述设备中,并启动所述引导程序。
优选地,所述PC端注入单元为安卓调试连接桥。
优选地,所述PC端注入单元包括:
名称配置单元,用于配置目标进程名称;
路径配置单元,用于配置目标动态库路径;
入口函数配置单元,用于配置拦截程序入口函数;
推送单元,用于将用于所述设备的所述引导程序和拦截程序推送到所述设备。
优选地,所述引导程序为可执行程序,所述拦截程序为动态库。
优选地,还包括,通知单元,用户当检测到所述目标进程的可疑行为后,通知用户对该可疑行为进行处理。
优选地,所述通知单元检测到所述目标进程的可疑行为后,将该可疑行为记录到权限管理表,用户根据该权限管理表对该可疑行为进行处理。
本发明提供的Android底层库代码的动态病毒检测方法,不完全依赖病毒库的特征码和用户权限检测,比之静待检测更快捷准确;另外,本发明通过在Android底层库进行拦截排查,比之普通动态检测方法的框架层检测,可以更有效地评估应用程序的可疑行为,尤其是更深层次的可疑行为,是一种便捷高效的病毒检测方法。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是Android手机端和PC端的功能架构图;
图2是目标进程动态病毒检测方法流程图;
图3是引导模块加载拦截模块的流程图;
图4是重定向过程流程图;
图5是检测过程流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供的基于安卓系统的设备的病毒动态检测方法,参见图1,检测过程主要由引导模块S101、拦截模块S102和权限管理模块S103来执行。引导模块S101编译成可执行程序,拦截模块S102编译成动态库,权限管理模块S103为上层应用APK。引导模块S101在不中断目标进程的前提下,将拦截模块S102导入到目标进程中,并启动拦截模块S102;拦截模块S102则动态地将目标进程所加载的动态库中指定的原始API重定向为拦截模块S102中的API,从而改变原有API流程并检测可疑行为;当拦截模块S102检测到了可疑行为,通过socket与权限管理模块S103通信;权限管理模块S103接收来自拦截模块S102的可疑行为通知后,可由用户进行授权或者拒绝授权。
上述动态病毒检测程序可以通过PC端注入,PC端适用于Windows系统和Linux系统,注入过程主要由配置模块S105和注入模块S104来执行,配置模块S105负责指定的目标进程名称、目标动态库路径、拦截模块入口函数;注入模块S104负责将Android端的引导模块S101编译的可执行程序、拦截模块S102编译的动态库以及权限管理模块S103的应用包推送到Android设备,可以使用Android Debug Bridge连接桥来实现模块的推送,将上述模块推送到Android设备后,启动Android端的引导模块S101来执行病毒的检测过程。
参见图2,图3和图4,病毒检测的具体处理过程如下:
S201、获取需要进行病毒检测的正在运行的目标进程;
在安卓系统出现异常,或者需要定期对系统进行病毒检测时,系统一般会获取一些敏感程序和函数进行主要排查。引导模块负责主要的加载工作,首先,系统需要获取需要进行病毒检测的目标进程,将正在运行的目标进程挂起并进行调试,保存其运行环境,以便将病毒检测程序加载到该目标进程中。
S202、将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;
目标进程挂起后,引导模块继续执行将执行重定向的拦截模块导入。参见图3,首先,引导模块获取目标进程空间动态库libc.so的mmap内存分配函数地址,然后在目标进程空间中分配一块指定的内存,并置为可读写可执行;获取目标进程空间可执行程序linker的dlopen,dlsym函数地址;将拦截模块编译的动态库加载到目标进程空间中;调用拦截模块中的入口函数以便实现API函数的重定向,之后,恢复目标进程运行。
在引导模块启动了拦截模块中的入口函数之后,拦截模块继续执行来实现API重定向,参见图4,具体过程如下:
1.利用目标进程空间中dlopen函数打开目标进程空间指定的动态库,枚举动态库函数表,获取该动态库的指定的函数地址;
2.利用目标进程空间中dlopen函数打开拦截模块的动态库,获取上述指定的函数地址对应的新API函数地址;
3.去掉上述指定的动态库所在的内存写保护;
4.将上述获取的函数地址替换为上述新的API函数地址。
S203、检测所述目标进程的可疑行为。
重定向实现后,拦截模块继续负责病毒的检测操作,病毒的检测主要依靠重定向过程中使用的新API函数,新API函数的功能可以设计为,先检测目标进程是否有操作后台数据库的异常动作,然后再重新调用原有函数。这样设计,可以在异常行为检测完后,不影响原函数的运行和函数功能的实现。
参见图5,当检测到目标进程的可疑行为时,通过socket通知权限管理模块,权限管理模块发消息通知用户,由用户来判断该行为是否是合法行为,如果用户确定该行为是用户自己的操作,或是其他人的合法操作,则可以选择允许该操作,此时,目标进程的检测操作结束,然后继续调用原函数,实现原函数的功能;如果用户确定该行为不是自己的发出的,或是其他非法的操作,则可以阻止该操作。
病毒的检测主要依靠重定向过程中使用的新API函数来实现,新的API函数可根据具体的检测方法和用途来编写,例如:如果需要检测目标进程是否有操作数据库的行为,包括读取短信、通话记录等,那么可以重定向动态库libsqlite.so中的原有API函数sqlite3_open为新API函数hook_sqlite3_open,重定向原有API函数sqlite3_exec为新API函数hook_sqlite3_exec。
原有sqlite3_open函数的功能是打开一个数据库,该函数原型为:
新API函数hook_sqlite3_open的功能可以设计为,先检测目标进程是否有操作后台数据库的异常动作,然后再重新调用原有sqlite3_open函数。
在检测过程中,可以判断该API函数的第一个参数filename名称,如果名称为“/data/data/com.android.providers.telephony/databases/mmssms.db”,则说明该进程有操作短信数据库的可疑行为;如果名称为“/data/data/com.android.providers.contacts/databases/contact2.db”,则说明该进程有操作联系人数据库的可疑行为。可以将该进程的可疑行为记录到权限管理表(后面的hook_sqlite3_exec使用)中,并通过socket发消息通知用户,由用户来判断该行为是否是合法行为,如果用户确定该行为是用户自己的操作,或是其他人的合法操作,可以选择允许该操作;如果用户确定该行为不是自己的发出的,或是其他非法的操作,则可以阻止该操作。
要检测更深入的数据库操作行为可再重定向sqlite3_exec函数。该函数的功能是在一个已打开的数据中执行指定的sql语句,包括查询、增加、删除、修改。
sqlite3_exec函数原型为:
新API函数hook_sqlite3_exec的功能可以设计为,检测对数据库的操作行为是否合法,然后调用原API函数继续实现原API函数功能。
在检测过程中,可以判断该API函数的第一个参数db是否在权限管理表中,且第二个参数zSql字符串是否包含“select”(查询行为)、“insert”(插入行为)、“update”(修改行为)、“delete”(删除行为);如果有可疑行为,则记录该进程的可疑行为到权限管理表中,通过socket发消息通知用户,由用户来判断该行为是否合法。
本发明实施例使用的API拦截方法,可以改变Android系统底层函数的调用流程,可用于Android木马动态检测,在系统受到可疑程序入侵时更有效的防范,大大提高了Android系统的安全性。该方案使用的API拦截注入装置,通用性较好,使用者不需考虑注入的过程和细节,只需配置好目标进程和动态库等参数,根据特定的用途完成拦截模块的API实现,就可以高效地进行Android木马检测及防范。
需要说明的是,本发明不针对任何特定编程语言。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络多媒体资源信息的处理、提供、加载设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。
Claims (20)
1.一种基于安卓系统的设备的动态病毒检测方法,其特征在于,包括以下步骤:
获取需要进行病毒检测的正在运行的目标进程;
将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;
将引导程序写入到所述目标进程的内存中,通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向;
检测所述目标进程的可疑行为;
所述通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向的步骤包括:
在所述目标进程空间中分配一块指定的内存,并置为可读写可执行;
将所述拦截程序编译的动态库加载到所述目标进程空间中;
调用所述拦截程序的入口函数来启动所述重定向。
2.根据权利要求1所述的方法,其特征在于:
所述引导程序通过获取所述目标进程空间动态库的内存分配函数地址来在所述目标进程空间中分配所述指定的内存。
3.根据权利要求1所述的方法,其特征在于:在所述将引导程序写入到所述目标进程的内存中的步骤之前,还包括:
调试所述目标进程;
保存所述目标进程运行环境;
在所述目标进程中分配一段内存空间为可读写。
4.根据权利要求1所述的方法,其特征在于:所述重定向过程包括:
利用目标进程空间中dlopen函数打开所述目标进程空间指定的动态库,枚举动态库函数表,获取该动态库的指定的API函数地址;
利用目标进程空间中dlopen函数打开拦截程序的动态库,获取所述API函数地址对应的新API函数地址;
去掉所述指定的动态库所在的内存写保护;
将所述获取的API函数地址替换为所述新API函数地址。
5.根据权利要求1所述的方法,其特征在于:通过PC将所述引导程序和拦截程序注入到所述设备中,并启动所述引导程序。
6.根据权利要求5所述的方法,其特征在于:所述PC通过安卓调试连接桥将所述引导程序和拦截程序注入到所述设备中。
7.根据权利要求5或6所述的方法,其特征在于:所述通过PC将所述引导程序和拦截程序注入到所述设备中的步骤,包括:
配置目标进程名称;
配置目标动态库路径;
配置拦截程序入口函数;
将用于所述设备的所述引导程序和拦截程序推送到所述设备。
8.根据权利要求1所述的方法,其特征在于:所述引导程序为可执行程序,所述拦截程序为动态库。
9.根据权利要求1所述的方法,其特征在于还包括,检测到所述目标进程的可疑行为后,通知用户对该可疑行为进行处理。
10.根据权利要求9所述的方法,其特征在于,检测到所述目标进程的可疑行为后,将该可疑行为记录到权限管理表,用户根据该权限管理表对该可疑行为进行处理。
11.一种基于安卓系统的设备的动态病毒检测装置,其特征在于,包括以下单元:
获取单元,用于获取需要进行病毒检测的正在运行的目标进程;
重定向单元,用于将所述目标进程所加载的动态库中指定的原始API函数重定向为拦截程序中的API函数;
引导单元,用于将引导程序写入到所述目标进程的内存中,通过所述引导程序来启动一拦截程序实现所述原始API函数的重定向;
检测单元,用于检测所述目标进程的可疑行为;
所述引导单元包括:
内存分配单元,用于在所述目标进程空间中分配一块指定的内存,并置为可读写可执行;
动态库加载单元,用于将所述拦截程序编译的动态库加载到所述目标进程空间中;
入口函数启动单元,用于调用所述拦截程序的入口函数来启动所述重定向。
12.根据权利要求11所述的装置,其特征在于:
所述引导单元通过获取所述目标进程空间动态库的内存分配函数地址来在所述目标进程空间中分配所述指定的内存。
13.根据权利要求11所述的装置,其特征在于,还包括:
调试单元,用于调试所述目标进程;
运行环境保存单元,用于保存所述目标进程运行环境;
内存空间分配单元,用于在所述目标进程中分配一段内存空间为可读写。
14.根据权利要求11所述的装置,其特征在于:所述重定向单元包括:
目标进程动态库开启单元,用于利用目标进程空间中dlopen函数打开所述目标进程空间指定的动态库,枚举动态库函数表,获取该动态库的指定的API函数地址;
拦截程序动态库开启单元,用于利用目标进程空间中dlopen函数打开拦截程序的动态库,获取所述API函数地址对应的新API函数地址;
内存写保护去除单元,用于去掉所述指定的动态库所在的内存写保护;
替换单元,用于将所述获取的API函数地址替换为所述新API函数地址。
15.根据权利要求11所述的装置,其特征在于,还包括:PC端注入单元,用于通过PC将所述引导程序和拦截程序注入到所述设备中,并启动所述引导程序。
16.根据权利要求15所述的装置,其特征在于:所述PC端注入单元为安卓调试连接桥。
17.根据权利要求15或16所述的装置,其特征在于:所述PC端注入单元包括:
名称配置单元,用于配置目标进程名称;
路径配置单元,用于配置目标动态库路径;
入口函数配置单元,用于配置拦截程序入口函数;
推送单元,用于将用于所述设备的所述引导程序和拦截程序推送到所述设备。
18.根据权利要求11所述的装置,其特征在于:所述引导程序为可执行程序,所述拦截程序为动态库。
19.根据权利要求11所述的装置,其特征在于还包括,通知单元,用户当检测到所述目标进程的可疑行为后,通知用户对该可疑行为进行处理。
20.根据权利要求19所述的装置,其特征在于,所述通知单元检测到所述目标进程的可疑行为后,将该可疑行为记录到权限管理表,用户根据该权限管理表对该可疑行为进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310562160.0A CN103559446B (zh) | 2013-11-13 | 2013-11-13 | 一种基于安卓系统的设备的动态病毒检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310562160.0A CN103559446B (zh) | 2013-11-13 | 2013-11-13 | 一种基于安卓系统的设备的动态病毒检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559446A CN103559446A (zh) | 2014-02-05 |
CN103559446B true CN103559446B (zh) | 2017-02-08 |
Family
ID=50013692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310562160.0A Expired - Fee Related CN103559446B (zh) | 2013-11-13 | 2013-11-13 | 一种基于安卓系统的设备的动态病毒检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559446B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182688A (zh) * | 2014-08-26 | 2014-12-03 | 北京软安科技有限公司 | 基于动态激活及行为监测的Android恶意代码检测装置和方法 |
CN104281808B (zh) * | 2014-09-25 | 2017-09-01 | 中国科学院信息工程研究所 | 一种通用的Android恶意行为检测方法 |
CN104361285B (zh) * | 2014-11-20 | 2017-12-12 | 工业和信息化部电信研究院 | 移动设备应用程序的安全检测方法及装置 |
CN104408366B (zh) * | 2014-11-26 | 2017-11-21 | 清华大学 | 基于插装技术的安卓应用程序权限使用行为跟踪方法 |
CN104992112B (zh) * | 2015-05-19 | 2017-10-13 | 上海理工大学 | 检测安卓系统敏感信息泄露的方法和装置 |
CN104992117B (zh) * | 2015-06-16 | 2018-04-13 | 北京航空航天大学 | Html5移动应用程序的异常行为检测方法和行为模型建立方法 |
US10083296B2 (en) * | 2015-06-27 | 2018-09-25 | Mcafee, Llc | Detection of malicious thread suspension |
CN105095759A (zh) * | 2015-07-21 | 2015-11-25 | 安一恒通(北京)科技有限公司 | 文件的检测方法及装置 |
CN107330320B (zh) * | 2016-04-29 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 应用进程监控的方法和装置 |
CN106709325B (zh) * | 2016-11-11 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种监控程序的方法及装置 |
CN107247901B (zh) * | 2016-11-24 | 2020-01-14 | 北京瑞星网安技术股份有限公司 | Linux函数劫持方法及装置 |
CN108108615A (zh) * | 2016-11-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 应用检测方法、装置及检测设备 |
CN107844687B (zh) * | 2017-11-22 | 2021-06-25 | 上海勋立信息科技有限公司 | 一种安卓信息拦截方法及装置 |
CN109766700A (zh) * | 2018-05-04 | 2019-05-17 | 360企业安全技术(珠海)有限公司 | 访问文件的控制方法及装置、存储介质、电子装置 |
US10205749B1 (en) | 2018-08-17 | 2019-02-12 | Five Media Marketing Limited | Detection and prevention of automatic redirects of main html document from within nested sub-document |
CN109657491B (zh) * | 2018-11-29 | 2023-06-30 | 国云科技股份有限公司 | 一种数据库防火墙实现方法 |
US11128644B2 (en) | 2019-03-19 | 2021-09-21 | Five Media Marketing Limited | Automatic security scanning of advertisements during runtime of software applications |
US10678923B1 (en) | 2019-07-10 | 2020-06-09 | Five Media Marketing Limited | Security management of advertisements at online advertising networks and online advertising exchanges |
CN111027047B (zh) * | 2019-11-29 | 2024-04-02 | 安天科技集团股份有限公司 | 应用程序敏感信息管控方法、装置、电子设备及存储介质 |
CN112925591A (zh) * | 2021-01-25 | 2021-06-08 | 北京房江湖科技有限公司 | 用于拦截调用路由方法的方法和装置 |
CN112905260B (zh) * | 2021-02-07 | 2024-02-23 | 深信服科技股份有限公司 | 一种应用启动方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314561A (zh) * | 2010-07-01 | 2012-01-11 | 电子科技大学 | 基于api hook的恶意代码自动分析方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587724B2 (en) * | 2005-07-13 | 2009-09-08 | Symantec Corporation | Kernel validation layer |
US8245289B2 (en) * | 2007-11-09 | 2012-08-14 | International Business Machines Corporation | Methods and systems for preventing security breaches |
CN101770551A (zh) * | 2008-12-30 | 2010-07-07 | 中国科学院软件研究所 | 一种基于硬件模拟器的处理隐藏进程的方法 |
CN103116723A (zh) * | 2013-02-06 | 2013-05-22 | 北京奇虎科技有限公司 | 一种网址拦截处理的方法、装置和系统 |
CN103345604A (zh) * | 2013-07-16 | 2013-10-09 | 湘潭大学 | 基于轻量虚拟机监控器的沙盒系统及用其监控os的方法 |
-
2013
- 2013-11-13 CN CN201310562160.0A patent/CN103559446B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314561A (zh) * | 2010-07-01 | 2012-01-11 | 电子科技大学 | 基于api hook的恶意代码自动分析方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103559446A (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559446B (zh) | 一种基于安卓系统的设备的动态病毒检测方法和装置 | |
US11604878B2 (en) | Dynamic analysis techniques for applications | |
US12130919B2 (en) | Detection of exploitative program code | |
Duan et al. | Things you may not know about android (un) packers: a systematic study based on whole-system emulation | |
Sharma et al. | Malicious application detection in android—a systematic literature review | |
US10956573B2 (en) | Dynamic analysis techniques for applications | |
Kantola et al. | Reducing attack surfaces for intra-application communication in android | |
Elsabagh et al. | {FIRMSCOPE}: Automatic uncovering of {Privilege-Escalation} vulnerabilities in {Pre-Installed} apps in android firmware | |
Mercaldo et al. | Download malware? no, thanks: how formal methods can block update attacks | |
US8782615B2 (en) | System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing | |
Hassanshahi et al. | Web-to-application injection attacks on android: Characterization and detection | |
CN109255235B (zh) | 基于用户态沙箱的移动应用第三方库隔离方法 | |
US11151252B2 (en) | Just in time memory analysis for malware detection | |
US12026256B2 (en) | Context-based analysis of applications | |
Zhang et al. | Invetter: Locating insecure input validations in android services | |
Chen et al. | Automatic privacy leakage detection for massive android apps via a novel hybrid approach | |
Wang et al. | Uncovering and exploiting hidden apis in mobile super apps | |
Jang et al. | Function‐Oriented Mobile Malware Analysis as First Aid | |
Choi et al. | Large‐Scale Analysis of Remote Code Injection Attacks in Android Apps | |
CN106650423A (zh) | 一种目标样本文件的检测方法和装置 | |
Pouryousef et al. | Let me join two worlds! analyzing the integration of web and native technologies in hybrid mobile apps | |
Dai et al. | Behavior-based malware detection on mobile phone | |
CN106682500A (zh) | 一种目标样本文件的检测方法和装置 | |
CN106650424A (zh) | 一种目标样本文件的检测方法和装置 | |
Ma et al. | Investigation of static and dynamic android anti-virus strategies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 |