CN108229147B - 一种基于Android虚拟容器的内存检测装置及方法 - Google Patents
一种基于Android虚拟容器的内存检测装置及方法 Download PDFInfo
- Publication number
- CN108229147B CN108229147B CN201611189718.5A CN201611189718A CN108229147B CN 108229147 B CN108229147 B CN 108229147B CN 201611189718 A CN201611189718 A CN 201611189718A CN 108229147 B CN108229147 B CN 108229147B
- Authority
- CN
- China
- Prior art keywords
- application
- virtual container
- loading
- memory
- detection
- 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.)
- Active
Links
Images
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/52—Monitoring 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
- G06F21/53—Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于Android虚拟容器的内存检测装置,位于一虚拟容器中,所述虚拟容器位于Android应用层且与真实的系统环境隔离,本装置包括:应用获取模块,用于获取并解析外存中的apk文件;应用加载模块,用于加载并运行apk文件;内存获取模块,用于在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构;内存检测模块,用于对所述的数据结构进行恶意性检测;结果输出模块,用于展示恶意性检测的结果。本发明通过在Android应用层实现了一个虚拟容器,在虚拟容器中获取待测应用内存中的各类数据结构进行恶意性检测,无需root权限,对加固的应用同样可以进行检测。
Description
技术领域
本发明属于移动安全技术领域,具体涉及一种基于Android虚拟容器的内存检测装置及方法。
背景技术
随着移动设备越来越智能,人们在生活中越来越离不开移动设备,智能设备给我们生活带来便利的同时,也带来了不小的安全性问题,移动设备上的恶意应用层出不穷,特别是Android平台上的恶意应用数量增长的越来越快,目前针对Android平台的检测方法主要分为静态检测和动态检测:静态检测主要是通过对比静态特征库,从应用的结构特征、指纹、代码结构、特定指令等多维度的静态特征来匹配恶意应用,这种检测方式的好处是,检测过程中可以遍历到程序的每一条分支,对普通应用的检出率高,但是对于采用加固技术的应用,静态检测技术由于获取不到应用真正的代码,无法检测出恶意代码。动态检测主要是基于应用在运行时的行为监控,根据恶意行为的相关模型来检测对应的恶意行为,这种方式一般需要修改系统源码或者通过hook的方式来实现,其实现过程都是需要root权限,并且动态检测有可能无法遍历程序的所有分支,导致特定恶意行为没有触发,最终会导致有漏报的情况。
发明内容
本发明要解决的技术问题是:提供一种基于Android虚拟容器的内存检测装置及方法,具有无需root权限,检出率高的特点。
本发明为解决上述技术问题所采取的技术方案为:一种基于Android虚拟容器的内存检测装置,其特征在于:位于一虚拟容器中,所述虚拟容器位于Android应用层且与真实的系统环境隔离,本装置包括:
应用获取模块,用于获取并解析外存中的apk文件;
应用加载模块,用于加载并运行apk文件;
内存获取模块,用于在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构;
内存检测模块,用于对所述的数据结构进行恶意性检测;
结果输出模块,用于输出检测的结果。
按上述装置,所述的应用加载模块包括代码加载模块和资源加载模块;
所述的代码加载模块用于创建待测应用Application和Activity;
所述的资源加载模块用于加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
按上述装置,所述的内存检测模块包括:
恶意代码特征库,用于存储恶意代码以供调用;
多维度特征数据建立模块,用于对所述的数据结构进行解析和结合,生成多维度的特征数据;
恶意代码匹配模块,用于将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;
恶意代码判断模块,用于根据多维度匹配的结果,判断apk文件是否具有恶意性。
按上述装置,所述的数据结构包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
一种基于Android虚拟容器的内存检测方法,其特征在于:位于Android应用层且与真实的系统环境隔离,本方法包括:
应用获取:获取并解析外存中的apk文件;
应用加载:加载并运行apk文件;
内存获取:在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构;
内存检测:对所述的数据结构进行恶意性检测;
结果输出:输出检测的结果。
按上述方法,所述的应用加载包括:
代码加载:创建待测应用Application和Activity;
资源加载:加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
按上述方法,所述的内存检测包括:
预设用于存储恶意代码以供调用的恶意代码特征库;
建立多维度特征数据:对所述的数据结构进行解析和结合,生成多维度的特征数据;
匹配恶意代码:将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;
恶意代码判断:根据多维度匹配的结果,判断apk文件是否具有恶意性。
按上述方法,所述的数据结构包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
按上述方法,所述资源加载的方法包括:将apk文件的资源路径传递给AsserManager中的addAssertPath函数,用AssertManager创建Resources对象,将apk文件的资源加载到Resources对象中。
按上述方法,所述代码加载的方法包括:通过动态代理的方式hook住虚拟容器的StartActivity函数,修改该函数的Intent参数为虚拟容器中的Activity,当AMS完成Activity的校验工作、栈管理、以及生命周期的管理后,调用ScheduleLanuchActivity方法,虚拟容器创建待测应用的Activity;通过动态代理的方式hook住ActivityThread中的mH对象,在创建待测应用的Activity的前面加入创建Application的流程,其中Application由LoadedAPK对象的makeApplication函数创建,Activity由虚拟容器的handleLaunchActivity函数创建。
本发明的有益效果为:通过在Android应用层实现了一个虚拟容器,应用运行在该虚拟容器之中,在虚拟容器中获取待测应用内存中的各类数据结构,然后对这些数据结构进行恶意性检测;虚拟容器的使用使得获取文件的dex文件无需root权限,并且与传统的静态检测技术直接检测静态二进制文件不同的是,本方案采取动静结合的检测方案,通过动态获取应用内存中的核心数据以供静态检测所使用,即使应用是加固的,在运行时获取的数据结构都是经过修复还原的,所以本方案对加固的应用同样可以进行检测。本方案不仅克服了静态检测不能针对加固应用的短板,也避免了动态检测有可能不能完全触发程序所有分支的问题,具有无需root权限,检出率高的特点。
附图说明
图1为本发明一实施例的装置整体结构框图。
图2为本发明一实施例的方法流程图。
图3为虚拟容器目录组织形式示意图。
图4为代码加载方法流程图。
具体实施方式
下面结合具体实例和附图对本发明做进一步说明。
本发明提供一种基于Android虚拟容器的内存检测装置,如图1所示,位于一虚拟容器00中,所述虚拟容器00位于Android应用层且与真实的系统环境隔离,本装置包括:
应用获取模块01,用于获取并解析外存中的apk文件。
应用加载模块02,用于加载并运行apk文件。应用加载模块02主要包括代码加载模块和资源加载模块;所述的代码加载模块用于创建待测应用Application和Activity;所述的资源加载模块用于加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
内存获取模块03,用于在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构。
本模块是在虚拟容器创建完Activity后,虚拟容器调用该Activity生命周期函数OnCreate后被调用的,由于该模块获取内存数据结构的函数是在Native层,故本模块是以.so的形式给出的,主要是通过系统函数获取该apk文件在内存中的数据结构。这里的数据结构通常是可能存在恶意代码的关键数据结构,主要包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
内存检测模块04,用于对所述的数据结构进行恶意性检测。
内存检测模块主要包括:恶意代码特征库,用于存储恶意代码以供调用;多维度特征数据建立模块,用于对所述的数据结构进行解析和结合,生成多维度的特征数据;恶意代码匹配模块,用于将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;恶意代码判断模块,用于根据多维度匹配的结果,判断apk文件是否具有恶意性。
结果输出模块05,用于输出检测的结果。
由于应用是运行在虚拟容器控制的进程中,并且虚拟容器完全控制着应用的整个生命周期,故虚拟容器在加载完应用后,可以通过直接调用系统函数去获取应用内存中相关的数据结构,然后再对获取到数据结构进行多维度的恶意性检测,对于应用进程来说,本方案是在自己的进程中获取自己的内存并检测,因此无需root权限。
本专利通过在Android应用层实现了一个虚拟容器,应用运行在该虚拟容器之中,在虚拟容器中获取待测应用内存中的各类数据结构,然后结合这些数据结构进行恶意性检测;虚拟容器的使用使得获取文件的dex文件无需root权限,并且与传统的静态检测技术直接检测静态二进制文件不同的是,本方案采取动静结合的检测方案,通过动态获取应用内存中的核心数据以供静态检测所使用,即使应用是加固的,在运行时获取的数据结构都是经过修复还原的,所以本方案对加固的应用同样可以进行检测。所以本方案不仅克服了静态检测不能针对加固应用的短板,也避免了动态检测有可能不能完全触发程序所有分支的问题,具有无需root权限,检出率高的特点。
一种基于Android虚拟容器的内存检测方法,位于Android应用层且与真实的系统环境隔离,本方法包括:
应用获取:获取并解析外存中的apk文件。
应用加载:加载并运行apk文件。应用加载包括:代码加载:创建待测应用Application和Activity;资源加载:加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
内存获取:在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构。这里的数据结构通常是可能存在恶意代码的关键数据结构,主要包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
内存检测:对所述的数据结构进行恶意性检测。内存检测包括预设用于存储恶意代码以供调用的恶意代码特征库;建立多维度特征数据:对所述的数据结构进行解析和结合,生成多维度的特征数据;匹配恶意代码:将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;恶意代码判断:根据多维度匹配的结果,判断apk文件是否具有恶意性。
结果输出:输出检测的结果。
下面举例说明本发明的具体方案设计,如图2所示:
S00、构建虚拟容器App,构建虚拟容器的整体框架。本步骤通常只在Android系统中首次应用本发明时需要,即需要在Android系统的应用层设置一个虚拟容器App,从而能够使待测应用运行在上述虚拟容器中。以后每次应用本发明时,只需要打开该虚拟容器App即可。该虚拟容器App中可以仅存在本方法,也可以与其它方法相并存,本方法只是需要这样一个运行环境即可。
S01、应用获取:获取并解析外存中的apk文件,设有用于展示待测应用的Activity,该待测应用的数据来源为外存中未安装的apk文件,该安装包(即apk文件)将作为动态检测的输入参数。对获取到的apk文件进行解析,解析成内存中对应的结构体。具体获取和解析apk文件的方法如下:
首先通过系统函数:Environment.getExternalStorageDirectory().getAbsolutePath()获取外部存储的目录,循环遍历目录中后缀名为apk的文件。
将获取到的apk文件进行解析,通过系统函数context.getPackageManager().getPackageArchiveInfo(),将apk文件解析为PackageInfo对象,并将解析后的PackageInfo对象存入到一个列表中,以便后续使用。
S02、应用加载:加载并运行apk文件。
本步骤主要将解析出来的PackageInfo对象作为输入参数,完成对待测应用的加载并运行,具体操作如下:
1)根据用户选择的应用,将对应用的PackageInfo对象从之前的列表中取出来。
2)获取PackageInfo对象中所指向apk的路径,并做为参数传入系统函数parsePackage()继续解析该apk文件,根据解析出来的包名,在虚拟容器里面创建对应的文件目录,该文件目录是模拟应用正常安装到系统后产生的文件目录,其中目录组织形式如图3所示,在虚拟容器目录100中,有若干个文件目录,即待测apk包名110、待测apk包名120;每个待测apk包名中又包含有若干个文件,如待测apk包名110下的apk111、lib112、dalvik-cache113和cache114,以及待测apk包名120下的apk121、lib122、dalvik-cache123和cache124。
文件目录创建成功后,虚拟容器的运行环境就成功了。接下来就是代码加载和资源加载。
其中,资源加载用于加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件,主要是通过调用AsserManager中的addAssertPath方法完成的,将apk文件中的资源路径传递给该函数即可,然后用这个AssertManager去创建一个Resources对象,这样这个资源就加载到了Resources对象中,完成了资源加载的过程。
代码加载主要包括待测应用Application和Activity的创建。为了描述清楚虚拟容器在创建待测应用Application和Activity对象时过程,先来看看待测应用在加载起来时的整体流程,其中AMS代表着ActivityManagerService,该组件为系统组件,主要用来管理与应用Activity相关的操作的,其整体流程如图4所示。S201、通过动态代理的方式hook住虚拟容器200的StartActivity函数,修改该函数的Intent参数为虚拟容器中的Activity;S202、AMS300完成Activity的校验工作、栈管理、以及生命周期的管理;S203、Process.start函数完成待测应用新进程的创建及ActivityThread的创建;S204、虚拟容器200的新开进程的主线程调用attach函数来完成Application Binder对象的绑定;S205、虚拟容器新开进程的主线程attach函数通过远程Binder对象调用AMS中attach函数;S206、AMS300的attach完成对远程Binder对象的绑定;S207、AMS300调用ScheduleLanuchActivity;去通知虚拟容器去创建待测应用的Activity实例S208、虚拟容器200,在接收到AMS的消息后,虚拟容器先创建待测应用的Application实例,然后再创建Activity实例。
由图4可以看出,虚拟容器在创建待测应用的Application和Activity时,起始于虚拟容器的StartActivity,在这个过程中,首先需要通过动态代理的方式hook住虚拟容器的StartActivity函数,修改该函数的Intent参数为虚拟容器中的Activity,当AMS完成Activity的校验工作、栈管理,还有一些生命周期的管理后,会调用ScheduleLanuchActivity方法,来让虚拟容器去创建待测应用Activity,在这个过程中,同样需要通过动态代理的方式hook住ActivityThread中的mH对象,在创建的待测应用Activity的前面加入创建Application的流程,其中Application的创建主要是通过LoadedAPK对象的makeApplication函数创建所得,该Activity的创建过程是由虚拟容器的handleLaunchActivity函数完成的。
S03、内存获取:本模块是在虚拟容器创建完应用的Activity后,虚拟容器调用该Activity生命周期函数OnCreate后被调用的,由于该模块获取内存数据结构的函数是在Native层,故本模块是以.so的形式给出的,该模块主要是通过在运行时调用各类系统API来获取内存中的关键数据结构。这里的关键数据结构通常是可能存在恶意代码的数据结构,主要包括ClassObject对象、Method对象、DexCode对象和soinfo对象。下面给出各类关键数据结构和对应的获取方法:
0301、ClassObject对象的获取,该对象包含了一个Java类中的所有的信息,该类对象的获取可以通过调用系统函数dvmFindClassNoInit()获取到,由于调用该函数的时机在应用加载完成之后,如果该应用做了加固处理,此时该应用已经完成了解密还原操作,故此时获取到的ClassObject对象为应用真实的类信息,所以本方案可以对抗加固的恶意应用。
0302、Method对象的获取,该对象描述了一个类中的某一个方法,它的是包含在某个ClassObject中的,由于Method分为DirectMethod和VirtualMethod两种,所以获取的方法也分为两种:dvmFindDirectMethodByDescriptor和dvmFindVirtualMethodByDescriptor。
0303、DexCode的获取,该对象描述了一个方法的指令信息,也是S04内存检测步骤要检测的核心数据结构,该数据结构可以通过dvmGetMethodCode()获取,其传递的参数为上述获取到的Method对象。
0304、soinfo对象的获取。该对象描述了应用加载的动态库信息,在soinfo中包含有动态库的头部、起始地址、终止地址,大小、符号表等信息,根据这些信息可以对内存中的elf文件进行检测。该对象的获取方法可以直接通过数据结构DvmGlobals中的成员变量nativeLibs获取。
S04、内存检测:对所述的数据结构进行恶意性检测。主要是对获取到的四个维度的数据结构,进行对应的检测:
0401、解析DexCode对象中的指令数据和soinfo对象中的elf文件数据,并根据ClassObject对象和Method对象的数据生成应用类结构特征、指纹代码结构、特定指令特征的多维度特征数据。
0402、将生成的多维度特征数据与预设的恶意代码特征库中的恶意代码进行多维度匹配。
0403、根据匹配的结果来判断应用是否具有恶意性。
S05、结果输出:将S04中对数据结构检测的结果展示给用户。
本专利通过在Android应用层实现了一个虚拟容器,应用运行在该虚拟容器之中,在虚拟容器中获取待测应用内存中的各类数据结构,然后结合这些数据结构进行恶意性检测;虚拟容器的使用使得获取文件的dex文件无需root权限,并且与传统的静态检测技术直接检测静态二进制文件不同的是,本方案采取动静结合的检测方案,通过动态获取应用内存中的核心数据以供静态检测所使用,即使应用是加固的,在运行时获取的数据结构都是经过修复还原的,所以本方案对加固的应用同样可以进行检测。所以本方案不仅克服了静态检测不能针对加固应用的短板,也避免了动态检测有可能不能完全触发程序所有分支的问题,具有无需root权限,检出率高的特点。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (8)
1.一种基于Android虚拟容器的内存检测装置,其特征在于:位于一虚拟容器中,所述虚拟容器位于Android应用层且与真实的系统环境隔离,本装置包括:
应用获取模块,用于获取并解析外存中的apk文件;
应用加载模块,用于加载并运行apk文件;
内存获取模块,用于在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构;
内存检测模块,用于对所述的数据结构进行恶意性检测;
结果输出模块,用于输出检测的结果;
获取apk文件的dex文件无需root权限,通过动态获取应用内存中的数据以供静态检测所使用;
所述的内存检测模块包括:
恶意代码特征库,用于存储恶意代码以供调用;
多维度特征数据建立模块,用于对所述的数据结构进行解析和结合,生成多维度的特征数据;
恶意代码匹配模块,用于将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;
恶意代码判断模块,用于根据多维度匹配的结果,判断apk文件是否具有恶意性。
2.根据权利要求1所述的一种基于Android虚拟容器的内存检测装置,其特征在于:所述的应用加载模块包括代码加载模块和资源加载模块;
所述的代码加载模块用于创建待测应用Application和Activity;
所述的资源加载模块用于加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
3.根据权利要求1所述的一种基于Android虚拟容器的内存检测装置,其特征在于:所述的数据结构包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
4.一种基于Android虚拟容器的内存检测方法,其特征在于:位于Android应用层且与真实的系统环境隔离,本方法包括:
应用获取:获取并解析外存中的apk文件;
应用加载:加载并运行apk文件;
内存获取:在apk文件运行时通过系统函数获取该apk文件在内存中的数据结构;
内存检测:对所述的数据结构进行恶意性检测;
结果输出:输出检测的结果;
所述的内存检测包括:
预设用于存储恶意代码以供调用的恶意代码特征库;
建立多维度特征数据:对所述的数据结构进行解析和结合,生成多维度的特征数据;
匹配恶意代码:将生成的多维度的特征数据与恶意代码特征库中的恶意代码进行多维度匹配;
恶意代码判断:根据多维度匹配的结果,判断apk文件是否具有恶意性。
5.根据权利要求4所述的一种基于Android虚拟容器的内存检测方法,其特征在于:所述的应用加载包括:
代码加载:创建待测应用Application和Activity;
资源加载:加载待测应用资源,其中资源包括位图文件、页面布局文件或颜色文件。
6.根据权利要求4所述的一种基于Android虚拟容器的内存检测方法,其特征在于:所述的数据结构包括ClassObject对象、Method对象、DexCode对象和soinfo对象。
7.根据权利要求5所述的一种基于Android虚拟容器的内存检测方法,其特征在于:所述资源加载的方法包括:将apk文件的资源路径传递给AsserManager中的addAssertPath函数,用AssertManager创建Resources对象,将apk文件的资源加载到Resources对象中。
8.根据权利要求5所述的一种基于Android虚拟容器的内存检测方法,其特征在于:所述代码加载的方法包括:通过动态代理的方式hook住虚拟容器的StartActivity函数,修改该函数的Intent参数为虚拟容器中的Activity,当AMS完成Activity的管理后,调用ScheduleLanuchActivity方法,虚拟容器创建待测应用的Activity;通过动态代理的方式hook住ActivityThread中的mH对象,在创建的待测应用Activity的前面加入创建Application的流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611189718.5A CN108229147B (zh) | 2016-12-21 | 2016-12-21 | 一种基于Android虚拟容器的内存检测装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611189718.5A CN108229147B (zh) | 2016-12-21 | 2016-12-21 | 一种基于Android虚拟容器的内存检测装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108229147A CN108229147A (zh) | 2018-06-29 |
CN108229147B true CN108229147B (zh) | 2021-11-12 |
Family
ID=62650987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611189718.5A Active CN108229147B (zh) | 2016-12-21 | 2016-12-21 | 一种基于Android虚拟容器的内存检测装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108229147B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120593A (zh) * | 2018-07-12 | 2019-01-01 | 南方电网科学研究院有限责任公司 | 一种移动应用安全防护系统 |
CN109753799B (zh) * | 2018-12-14 | 2021-01-15 | 厦门安胜网络科技有限公司 | 一种Android应用程序防篡改的方法、系统及计算机存储介质 |
CN112966270A (zh) * | 2021-03-16 | 2021-06-15 | 武汉小安科技有限公司 | 应用程序的安全检测方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663281A (zh) * | 2012-03-16 | 2012-09-12 | 成都市华为赛门铁克科技有限公司 | 检测恶意软件的方法和装置 |
CN103927193A (zh) * | 2013-01-15 | 2014-07-16 | 中兴通讯股份有限公司 | Java应用程序函数迁移运行时的加载方法、服务端虚拟机 |
CN104239786A (zh) * | 2014-10-13 | 2014-12-24 | 北京奇虎科技有限公司 | 免root主动防御配置方法及装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
CN105095754A (zh) * | 2015-05-11 | 2015-11-25 | 北京奇虎科技有限公司 | 一种处理病毒应用的方法、和装置和移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101513008B (zh) * | 2006-07-31 | 2012-09-19 | 意大利电信股份公司 | 在电信终端上实现安全性的系统 |
-
2016
- 2016-12-21 CN CN201611189718.5A patent/CN108229147B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663281A (zh) * | 2012-03-16 | 2012-09-12 | 成都市华为赛门铁克科技有限公司 | 检测恶意软件的方法和装置 |
CN103927193A (zh) * | 2013-01-15 | 2014-07-16 | 中兴通讯股份有限公司 | Java应用程序函数迁移运行时的加载方法、服务端虚拟机 |
CN104239786A (zh) * | 2014-10-13 | 2014-12-24 | 北京奇虎科技有限公司 | 免root主动防御配置方法及装置 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
CN105095754A (zh) * | 2015-05-11 | 2015-11-25 | 北京奇虎科技有限公司 | 一种处理病毒应用的方法、和装置和移动终端 |
Non-Patent Citations (2)
Title |
---|
移动应用程序检测与防护技术研究;董航;《中国优秀博士学位论文全文数据库 信息科技辑》;20150415;第23-25,31-34,77,80-81,99-100页 * |
董航.移动应用程序检测与防护技术研究.《中国优秀博士学位论文全文数据库 信息科技辑》.2015,第23-25,31-34,77,80-81,99-100页. * |
Also Published As
Publication number | Publication date |
---|---|
CN108229147A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229148B (zh) | 一种基于Android虚拟机的沙箱脱壳方法及系统 | |
CN108491235B (zh) | 结合动态加载和函数Native化的DEX保护方法 | |
US20160275019A1 (en) | Method and apparatus for protecting dynamic libraries | |
US10430590B2 (en) | Apparatus for quantifying security of open-source software package, and apparatus and method for optimizing open-source software package | |
Shahriar et al. | Testing of memory leak in android applications | |
US10387627B2 (en) | Systems and methods for analyzing software | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN108229147B (zh) | 一种基于Android虚拟容器的内存检测装置及方法 | |
WO2016033966A1 (zh) | 应用数据的保护方法及装置 | |
CN109726134B (zh) | 接口测试方法和系统 | |
CN107908958B (zh) | SELinux安全标识符防篡改检测方法及系统 | |
CN107808096A (zh) | 检测apk运行时被注入恶意代码的方法、终端设备及存储介质 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
CN109255235B (zh) | 基于用户态沙箱的移动应用第三方库隔离方法 | |
US20160156645A1 (en) | Method and apparatus for detecting macro viruses | |
CN109388946A (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
US20180025162A1 (en) | Application program analysis apparatus and method | |
CN108322458B (zh) | Web应用入侵检测方法、系统、计算机设备和存储介质 | |
CN113391874A (zh) | 一种虚拟机检测对抗方法、装置、电子设备及存储介质 | |
WO2023035751A1 (zh) | 移动端应用的智能混淆 | |
CN105205398B (zh) | 一种基于apk加壳软件动态行为的查壳方法 | |
CN104572034A (zh) | 一种撤销和/或重做的实现方法和装置 | |
CN104915594A (zh) | 应用程序运行方法及装置 | |
CN104102507A (zh) | 一种JavaCard应用功能扩展的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |