[发明专利]检测APK运行时被注入恶意代码的方法、终端设备及存储介质有效
申请号: | 201711180978.0 | 申请日: | 2017-11-23 |
公开(公告)号: | CN107808096B | 公开(公告)日: | 2019-12-17 |
发明(设计)人: | 刘星;魏丽珍;梁煜麓;罗佳 | 申请(专利权)人: | 厦门安胜网络科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 35218 厦门市精诚新创知识产权代理有限公司 | 代理人: | 方惠春 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 apk 运行 注入 恶意代码 方法 终端设备 存储 介质 | ||
1.一种检测安卓安装包运行时被注入恶意代码的方法,其特征在于:包括如下步骤:
S1:启动安卓安装包APK,进入S2步骤;
S2:注册一个native方法M,其内存地址为m,进入S3步骤;
S3:获取M的存储起始地址:在M的native代码中通过调用java本地接口jni函数,获取到该方法的jmethodID,其中jmethodID为方法在java虚拟机里对应数据结构的存储起始地址,进入S4步骤;
S4:扫描M的jmethodID指向的内存地址,即M的内存地址,判断其是否等于m,若是,则进入S5步骤;若否,则重复执行S4;
S5:获取m的相对偏移S,进入S6步骤;
S6:设置需要检测的安卓安装包的关键方法为M0,判断M0是否为native方法,若是,则设置M0对应的native内存地址是m0,进入S7步骤;若否,则表明M0为java方法,进入S7步骤;
S7:通过获取M0的jmethodID,即M0在java虚拟机里对应数据结构的起始地址P0,进而获取相对P0偏移为S的地址中的数据A或D,当M0为native方法时,定义相对P0偏移为S的地址中的数据为A,当M0为java方法时,定义相对P0偏移为S的地址中的数据为D,若M0为native方法时,进入S8步骤;若M0为java方法时,进入S9步骤;
S8:判断A是否等于m0,若是,则进入S10步骤;若否,则进入S11步骤;
S9:判断D指向的内存页面是否可执行,若否,则进入S10步骤;若是,则进入S11步骤;
S10:判定关键方法M0未被挂钩hook,即对应的安卓安装包APK运行时未被注入恶意代码;
S11:判定关键方法M0被挂钩hook,即对应的安卓安装包APK运行时被注入了恶意代码。
2.如权利要求1所述的检测安卓安装包运行时被注入恶意代码的方法,其特征在于:S2中,native方法M是通过静态注册或动态注册生成的。
3.如权利要求1所述的检测安卓安装包运行时被注入恶意代码的方法,其特征在于:S3中,调用的java本地接口jni函数为GetMethodID函数或GetStaticMethodID函数。
4.如权利要求1所述的检测安卓安装包运行时被注入恶意代码的方法,其特征在于:S11中,关键方法M0被挂钩hook,是通过安卓系统上通用的hook框架Xposed通过挂钩hook来实现的。
5.一种检测安卓安装包运行时被注入恶意代码的终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-4所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-4所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门安胜网络科技有限公司,未经厦门安胜网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711180978.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种解锁方法和移动终端
- 下一篇:针对特定测试样本的隐写分析方法