[发明专利]入侵检测方法及装置有效
申请号: | 201811065889.6 | 申请日: | 2018-09-13 |
公开(公告)号: | CN109190377B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 赵兵锋;李涛 | 申请(专利权)人: | 麒麟合盛网络技术股份有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许志勇 |
地址: | 100085 北京市海淀区信息路2号(北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 入侵 检测 方法 装置 | ||
本申请实施例公开了一种入侵检测方法及装置,用以实现可靠有效地检测是否有外部进程入侵应用进程。所述方法包括:发出用于检测是否存在外部进程的断点信号;获取在预设时间段内对所述应用进程进行监听所得到的监听结果,所述监听结果包括所述应用进程的指定位置对应的寄存器的值是否发生变化的结果;根据所述监听结果,判断是否能接收到所述断点信号;若未能接收到所述断点信号,则确定所述应用进程被所述外部进程入侵。相较于现有技术中应用进程只能被动地被外部进程入侵而言,该技术方案能够通过主动发出断点信号来可靠有效地判断应用进程是否被外部进程入侵,从而避免无法检测外部进程入侵时导致应用进程受外部进程操控的情况。
技术领域
本发明涉及数据保护技术领域,尤其涉及一种入侵检测方法及装置。
背景技术
Android应用开发时,为了保护重要的数据和代码逻辑不易被人破解,会选择使用Native实现关键代码,即使用C/C++语言实现,以避免其他用户通过反编译来获知应用程序里的数据和代码逻辑。但是,其他用户仍然可以通过调试器调试Native程序、查看汇编代码或伪代码,并配合设置断点和观察断点处上下文寄存器的值来推断出程序执行逻辑,进而获取到程序的关键逻辑,从而利用程序代码的漏洞或者伪造官方应用的数据来非法获利。由此可见,如何防止程序被入侵是一个亟待解决的问题。
发明内容
本申请实施例的目的是提供一种入侵检测方法及装置,用以实现可靠有效地检测是否有外部进程入侵应用进程。
为解决上述技术问题,本申请实施例是这样实现的:
一方面,本申请实施例提供一种入侵检测方法,应用于使用特定语言编写的应用进程,包括:
发出用于检测是否存在外部进程的断点信号应用进程;
获取在预设时间段内对所述断点信号进行监听所得到的监听结果,所述监听结果包括所述应用进程的指定位置对应的寄存器的值是否发生变化的结果;
根据所述监听结果,判断是否能接收到所述断点信号;
若未能接收到所述断点信号,则确定所述应用进程被所述外部进程入侵。
在一个实施例中,所述特定语言包括C/C++语言;所述外部进程包括调试器;
相应的,所述确定所述应用进程被所述外部进程入侵,包括:
确定所述应用进程被所述调试器进行调试。
在一个实施例中,所述根据所述监听结果,判断是否能接收到所述断点信号,包括:
若所述监听结果为所述寄存器的值发生了变化,则确定能接收到所述断点信号;
若所述监听结果为所述寄存器的值未发生变化,则确定未能接收到所述断点信号。
在一个实施例中,所述发出用于检测是否存在外部进程的断点信号之前,所述方法还包括:
当所述应用进程运行之后,确定所述应用进程中的所述指定位置;
将所述指定位置对应的寄存器的值标记为第一数值,以根据所述第一数值及所述寄存器的初始值判断所述寄存器的值是否发生变化;其中,所述第一数值与所述初始值不同。
在一个实施例中,所述根据所述监听结果,判断是否能接收到所述断点信号,还包括:
定位所述应用进程中的所述指定位置;
获取所述指定位置对应的寄存器的当前值;
将所述当前值与所述第一数值及所述初始值进行比对;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟合盛网络技术股份有限公司,未经麒麟合盛网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811065889.6/2.html,转载请声明来源钻瓜专利网。