【技术实现步骤摘要】
一种动态检测模拟器的方法、装置及终端
本公开涉及信息安全
,尤其涉及一种动态检测模拟器的方法、装置及终端。
技术介绍
随着互联网的发展,安卓系统的应用程序(Application,简称APP)的应用愈加普遍。黑客常常通过模拟器在电脑上模拟安卓系统,以模拟终端APP的运行环境进行刷机、刷装机量、刷APP中各种抽奖福利数据等违法活动。为了使安卓系统的APP安全可靠,以保障APP用户及开发者的合法权益,需通过判断APP的运行环境是否为模拟器来判断APP是否遭到黑客入侵。目前已存在大量的检测模拟器的方法,但多数检测方法是将检测代码预先编写在APP中,这种方式让黑客很容易通过内存搜索等方式发现预置的检测代码,并针对预置的检测代码进行破解或直接绕过,导致依靠在APP中运行检测代码来检测终端是否为模拟器的效果并不理想。
技术实现思路
本公开的提供了一种动态检测模拟器的方法、装置及终端,将用于检测终端是否为模拟器的检测代码预置在服务器上,由服务器向终端发送检测代码,使终端在收到检测代码后,将检测代码分块并存入动态分配的存有系统代码的内存,以隐藏检测代码,防止检测代码被黑客发现,以保证检测代码的安全执行。本公开的一个方面提供了一种动态检测模拟器的方法,所述方法用于终端,方法包括:获取从服务器发送的检测代码;调用内存分配函数mmap(),从系统内存中分配出第一内存区和第二内存区;调用系统文件读取函数fopen(),从所述系统内存中查找指定的系统模块,调用内存拷贝函数Memcpy()将所述指定的系统模块的代码拷贝到所述第一内存区,使所述第一内存区存满;将所述检测代码插入所述指 ...
【技术保护点】
1.一种动态检测模拟器的方法,所述方法用于终端,其特征在于,方法包括:获取从服务器发送的检测代码;调用内存分配函数mmap(),从系统内存中分配出第一内存区和第二内存区;调用系统文件读取函数fopen(),从所述系统内存中查找指定的系统模块,调用内存拷贝函数Memcpy()将所述指定的系统模块的代码拷贝到所述第一内存区,使所述第一内存区存满;将所述检测代码插入所述指定的系统模块的代码中;调用内存拷贝函数Memcpy(),将所述检测代码从所述第一内存区中拷贝到所述第二内存区;执行存储于所述第二内存区的所述检测代码,得到检测结果;释放所述第一内存区和第二内存区;将所述检测结果发送给所述服务器,使所述服务器根据所述执行结果判定所述终端是否为模拟器。
【技术特征摘要】
1.一种动态检测模拟器的方法,所述方法用于终端,其特征在于,方法包括:获取从服务器发送的检测代码;调用内存分配函数mmap(),从系统内存中分配出第一内存区和第二内存区;调用系统文件读取函数fopen(),从所述系统内存中查找指定的系统模块,调用内存拷贝函数Memcpy()将所述指定的系统模块的代码拷贝到所述第一内存区,使所述第一内存区存满;将所述检测代码插入所述指定的系统模块的代码中;调用内存拷贝函数Memcpy(),将所述检测代码从所述第一内存区中拷贝到所述第二内存区;执行存储于所述第二内存区的所述检测代码,得到检测结果;释放所述第一内存区和第二内存区;将所述检测结果发送给所述服务器,使所述服务器根据所述执行结果判定所述终端是否为模拟器。2.根据权利要求1所述的方法,其特征在于,所述调用系统文件读取函数fopen(),从所述系统内存中查找指定的系统模块,调用内存拷贝函数Memcpy()将所述指定的系统模块的代码拷贝到所述第一内存区,使所述第一内存区存满包括:调用系统文件读取函数fopen(),读取系统内存布局信息,从所述系统内存布局信息中获取所述系统内存中所有系统模块的名称、在所述系统内存中的起始地址和大小;依次查询所述系统内存布局信息中所述所有系统模块的名称,直到查询到所述指定的系统模块;调用内存拷贝函数Memcpy(),以所述指定的系统模块的起始地址为起点,拷贝与所述第一内存区大小相同的所述指定的系统模块的代码,存入所述第一内存区。3.根据权利要求1所述的方法,其特征在于,所述将所述检测代码插入所述指定的系统模块的代码中包括:在所述第一内存区中随机选取偏移地址,以所述偏移地址为起始地址,将所述检测代码插入所述第一内存中的所述指定的系统模块的代码中;其中,所述偏移地址与所述第一内存的末位地址之间的偏移量大于所述检测的大小。4.根据权利要求1所述的方法,其特征在于,所述执行存储于所述第二内存区的所述检测代码包括:调用更新缓存函数clear_cache(),将系统缓存清空,并将所述第二内存中的检测代码更新到所述系统缓存中,以执行所述检测代码。5.根据权利要求4所述的方法,其特征在于,所述将所述检测代码插入所述指定的系统模块的代码中还包括:向所述服务器发送请求,使所述服务器向所述终端发送所述终端的风险等级;根据所述风险等级,将所述检测代码拆分为多个代码块,其中,所述风险等级越高,将所述检测代码拆分为代码块的数量越多;分别为所述多个代码块在所述第一内存区中随机选取起始地址,将所述多个代码块分别插入所述指定的系统模块的代码中,并记录所述多个代码块的大小和在所述第一内存区中的起始地址。6.根据权利要求5所述的方法,其特征在于,所述调用内存拷贝函数Memcpy(),将所述检测代码从所述第一内存区中拷贝到所述第二内存区包括:按照所述多个代码块在所述检测代码中的位置顺序,...
【专利技术属性】
技术研发人员:周志刚,
申请(专利权)人:武汉瓯越网视有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。