一种基于符号的识别Android应用运行在模拟器中的方法技术

技术编号:24888375 阅读:41 留言:0更新日期:2020-07-14 18:15
一种基于符号的识别Android应用运行在模拟器中的方法,其特征在于包括以下步骤:(1)读取/proc/self/maps文件,解析maps文件中的每一行,根据maps格式解析出应用所加载的所有模块的信息;(2)根据所述模块的路径信息,筛选出so模块,过滤不搜索符号的模块;(3)根据所述so模块的信息以此从so模块的开始内存地址解析、遍历模块的符号;(4)将内存地址解析、遍历模块的符号与搜索的符号对比,如果符号名称相同,则认为在相应的模块中找到搜索的符号,认为运行环境是模拟器。本发明专利技术方法不读取磁盘文件(/proc/self/maps是虚拟文件系统,不是磁盘文件),都是在内存的读写操作,速度较快。本发明专利技术方法不通过API调用,不容易受到模拟器的欺骗。

【技术实现步骤摘要】
一种基于符号的识别Android应用运行在模拟器中的方法
本专利技术涉及一种基于符号的识别Android应用运行在模拟器中的方法。
技术介绍
很多的移动应用都会使用一种基于LBS的地理围栏的技术(如移动打卡),某些用户为了突破这种围栏的限制,将移动应用运行在模拟器中,通过模拟器欺骗移动应用,从而突破围栏的限制。这个时候往往需要有能力来判断移动应用是否运行在模拟器中。当前的Android应用(移动应用的一种)具有非常多的方法来判断应用是否运行于模拟器中,如IMEI、CPU信息、电池信息、Build信息(包括FINGERPRINT、MODEL、MANUFACTURER、BRAND、DEVICE、PRODUCT等)等信息。现有方法的一个特点是都是通过系统提供的API获取,大部分模拟器可修改这些API的返回值,因此,这些方法都很难准确判断应用是否运行于模拟器中。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于符号的识别Android应用运行在模拟器中的方法。为了解决上述技术问题,采用如下技本文档来自技高网...

【技术保护点】
1.一种基于符号的识别Android应用运行在模拟器中的方法,其特征在于包括以下步骤:/n(1)读取/proc/self/maps文件,解析maps文件中的每一行,根据maps格式解析出应用所加载的所有模块的信息;/n(2)根据所述模块的路径信息,筛选出so模块,过滤不搜索符号的模块;/n(3)根据所述so模块的信息以此从so模块的开始内存地址解析、遍历模块的符号;/n(4)将内存地址解析、遍历模块的符号与搜索的符号对比,如果符号名称相同,则认为在相应的模块中找到搜索的符号,认为运行环境是模拟器。/n

【技术特征摘要】
1.一种基于符号的识别Android应用运行在模拟器中的方法,其特征在于包括以下步骤:
(1)读取/proc/self/maps文件,解析maps文件中的每一行,根据maps格式解析出应用所加载的所有模块的信息;
(2)根据所述模块的路径信息,筛选出so模块,过滤不搜索符号的模块;
(3)根据所述so模块的信息以此从so模块的开始内存地址解析、遍历模块的符号;
(4)将内存地址解析、遍历模块的符号与搜索的符号对比,如果符号名称相同,则认为在相应的模块中找到搜索的符号,认为运行环境是模拟器。


2.根据权利要求1所述的一种基于符号的识别Android应用运行在模拟器中的方法,其特征在于:在所述...

【专利技术属性】
技术研发人员:郑晓峰
申请(专利权)人:杭州云缔盟科技有限公司
类型:发明
国别省市:浙江;33

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

1