本发明涉及android动态调试方法,尤其涉及一种android应用程序动态调试的检测方法,即通过一种ptrace进程附加的方法,检测经过加了防动态调试技术后的apk(androidpackage的缩写,即android应用安装包)是否真正达到了防动态调试保护的效果。
背景技术:
随着智能手机的热销,手机上网越来越流行,移动互联时代的爆发更是带动智能手机趋于全能化,伴随手机用户爆炸增长、手机上网愈加便利而来的是,手机安全隐患越来越多、问题越来越突出。根据中国互联网络信息中心(cnnic)发布《第28次中国互联网络发展状况统计报告》。报告显示,截至2012年6月底,中国手机网民规模首次超越台式电脑用户,达到3.88亿,较2011年底增加了约3270万人。手机网民在总体网民中的比例达65.5%。
目前,一方面,智能手机系统已被国外产品垄断:根据艾媒咨询发布的数据显示,2012第二季度,国外操作系统在我国智能手机中的占比已超过90%。其中,美国谷歌公司的android系统占比最高达63.1%;芬兰诺基亚公司的塞班系统占比19.9%,苹果公司的ios操作系统占比11.7%。因为android系统采取免费、开源的市场策略,导致众多山寨手机和平板电脑大量使用android系统,而这些充斥在市场之上的山寨机以及变成黑客、恶意程序眼中的“肉鸡”。
另一方面,智能手机信息防范能力弱:与传统手机相比智能手机功能强大,信息覆盖范围广,其操作系统依托于移动互联网,信息泄露隐患大。智能手机内部包含大量私人信息或涉密信息,如定位系统、账户密码、图像图片、通讯录、短信息、通话内容等。而智能手机的诸多功能需要时时连入互联网才能实现,对于很多手机来说在传输数据时缺乏有效保护和加密,从而导致黑客非法盗取用户信息也更为容易。以市场占有量最大的android系统为例,虽然众多手机厂商可以对系统进行“重新包装”,但是由于系统开源,api接口被广泛使用,通过一定的技术手段有意窃听通话记录或是窃取用户信息,完全没有技术障碍。
再者,应用软件缺乏安全审查机制:由于googleplay在中国地区的不稳定性,国内95%的用户都会选择从国内的第三方应用市场下载app程序。但是当下国内的第三方应用市场已经变成了鱼龙混杂,流氓、病毒软件丛生之地。在国内,第三方应用市场里比较几十家,知名的有安卓、安智、应用汇、机锋网等,国内的应用市场基本都是模仿苹果的应用商城,对外承诺有严格的审核机制,但事实是这些审核基本是空架子。
而在移动互联网安全领域,技术标准存在真空,更缺乏法律规范来保障用户的信息安全。互联网的高速发展,智能手机、平板电脑等各种便携移动设备已经充斥了人们的生活,各种移动应用迅速覆盖了包括出行就餐、日常起居,甚至金融理财等各个领域。然而,正所谓“玫瑰虽好,毒刺伤人”。安卓漏洞、app安全早已饱受诟病,诸如手机吸费、隐私盗取以及各类支付风险也都如鬼魅般如影随形。山寨app和广告插件加剧用户隐私暴露风险,木马病毒泛滥移动互联网安全形势严峻等问题已不可忽视。
由于移动互联网的发展迅速,随其而生的安全问题眼下也无法彻底解决。不断增长的手机用户让恶意软件获得了更多的生存的机会。
针对上述移动互联网应用的安全问题,一些android应用安全检测产品为移动应用提供专业的安全保护方案,其中一种方法是对app防动态调试检测。但是,这些防动态调试技术是否起到的保护作用,现有方法还难以进行检测。
技术实现要素:
本发明的目的是针对现有技术中的不足,提供一种android动态调试检测方法,通过一种基于ptrace进程附加方法,检测apk(androidpackage的缩写,即android应用安装包)经过防动态调试技术是否真正达到了加固保护的效果。
为实现上述目的,本发明公开了如下技术方案:
为了便于说明,本文约定:
“apk”是androidpackage的缩写,即android应用安装包;
“dalvik”是指google公司设计的用于android平台的java虚拟机;
“manifest”是指android程序运行清单(androidmanifest.xml)。
一种android动态调试检测方法,通过ptrace附加到目标进程的方法,检测经过防动态调试处理后的apk是否真正达到了安全保护的效果,具体包括如下步骤:
s1在模拟器上安装含防动态调试技术的apk文件;
s2通过ptrace附加到目标进程的方法,对目标app进行进程附加,具体包括如下步骤:
s21将调试工具放入/data/local/tmp目录下,并设置可执行权限;
s22将目标app运行,查看进程pid信息;动态调试检测根据app进程pid进行检测;
s23运行调试工具并附加到目标app进程;
s3查看ptrace附加到目标进程后,目标app是否退出,对含有防动态调试apk无法附加或调试工具附加后apk会退出,从而达到检测防动态调试是否安全保护效果的结果。
进一步的,所述步骤s1中,安装运行apk文件时在android平台中由dalvikvm执行。
进一步的,所述调试工具为gdb、ida、adb、vs调试工具中的一种或几种。
本发明公开的一种android动态调试检测方法,具有以下有益效果:
本发明可以验证一些利用了防动态调试应用技术的保护效果,也是一种新型检测apk文件安全的方法,对移动应用安全方面有很大的促进作用。
附图说明
图1是本发明提供防动态调试检测方法中的调试工具流程框图。
图2是本发明实施例1执行操作的流程框图。
图3是本发明实施例2执行操作的流程框图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的核心是提供通过一种基于ptrace进程附加方法,检测apk经过防动态调试技术是否真正达到了加固保护的效果。
一种android动态调试检测方法,通过ptrace附加到目标进程的方法,检测经过防动态调试处理后的apk是否真正达到了安全保护的效果,具体包括如下步骤:
s1在模拟器上安装含防动态调试技术的apk文件,防动态调试的apk文件主要是防止被外部程序调试,以达到程序数据安全;
可选的,安装运行apk文件时在android平台中由dalvikvm执行;
s2通过ptrace附加到目标进程的方法,对目标app进行进程附加,具体包括如下步骤:
s21将调试工具放入/data/local/tmp目录下,并设置可执行权限,完成调试工具的环境配置;
s22将目标app运行,查看进程pid信息;动态调试检测根据app进程pid进行检测;
s23运行调试工具(此工具是系统自带调用程序的工具)并附加到目标app进程;
s3查看ptrace附加到目标进程后,目标app是否退出,对含有防动态调试apk无法附加或调试工具附加后apk会退出,从而达到检测防动态调试是否安全保护效果的结果。
若app可以附加成功,说明其动态调试成功,目标app没有含防动态调试或该目标app防动态调试技术安全性没有达标;若目标app含有防动态调试技术则无法对该目标进程进行附加;即检测到该apk防动态调试技术达到了安全保护的效果。
可选的,所述调试工具为gdb、ida、adb、vs调试工具中的一种或几种。
实施例1:
假定一个用java语言编写的android应用检测系统中,利用本发明方案对含后防动态调试的apk应用进行检测,检测apk防动态调试应用是否产生效用。
设定含防动态调试技术的应用名称为apk。检测的具体步骤如下(如图2):
1)在模拟器把gdb放入/data/local/tmp目录下;
2)对gdb调试工具设置可执行权限;
3)模拟器安装apk;
4)运行apk,此时该apk会一直检测是否有外部程序调试本apk
5)gdb附加目标apk进行调试;
6)对含有防动态调试apk无法附加或调试工具附加后apk会退出,说明本发明方案可以对该防动态调试检测方法有效;
实施例2:
假定一个用java语言编写的android应用检测系统中,利用本发明方案对含防动态调试的apk应用进行检测,检测apk防动态调试应用是否产生效用,设定含防动态调试的应用名称为apk。具体步骤如下(如图3):
1)在模拟器把gdb放入/data/local/tmp目录下;
2)对gdb调试工具设置可执行权限;
3)模拟器安装apk;
4)运行apk,此时该apk会一直检测是否有外部程序调试本apk
5)gdb附加目标apk进行调试有效,说明本发明方案对该防动态调试检测方法无效;
经过采取防动态调试技术后,利用本发明方案的动态调试检测方法,可附加进程;说明该防动态调试无效;利用本发明方案的动态调试检测方法不成功,则说明该apk防动态调试是真正有效的。上述实施例1采用的防动态调试达到了安全效果;而实施例2采用的防动态调试技术则未达到安全保护结果。
以上所述仅是本发明的优选实施方式,而非对其限制;应当指出,尽管参照上述各实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,其依然可以对上述各实施例所记载的技术方案进行修改,或对其中部分或者全部技术特征进行等同替换;而这些修改和替换,并不使相应的技术方案的本质脱离本发明各实施例技术方案的范围。