[发明专利]一种保护应用程序的方法和装置有效
申请号: | 201410767711.1 | 申请日: | 2014-12-11 |
公开(公告)号: | CN105740661B | 公开(公告)日: | 2019-06-25 |
发明(设计)人: | 刘芳;柏洪涛;左敏;石松泉;耿慧拯 | 申请(专利权)人: | 中国移动通信集团公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保护 应用程序 方法 装置 | ||
本发明公开了一种保护应用程序的方法和装置,用以解决现有技术中存在的应用程序对抗逆向工具时效果不佳,导致安全性较差的问题。该方法包括:在运行应用程序之前,获取隐藏在所述应用程序中的敏感数据;其中,所述敏感数据是为保护所述应用程序而需要隐藏的数据,且所述应用程序中的当前可执行程序文件无法正常运行;根据所述敏感数据,判断所述应用程序是否被篡改;当判断出所述应用程序被篡改时,输出预警提示;当判断出所述应用程序未被篡改时,根据所述敏感数据对所述当前可执行程序文件进行修复,得到可以正常运行的原可执行程序文件。
技术领域
本发明涉及软件安全技术领域,尤其涉及一种保护应用程序的方法和装置。
背景技术
随着安卓系统的迅速发展,针对安卓软件的破解技术层出不穷,破解者使用各种逆向工具,对安卓软件进行逆向分析,从而篡改软件。被篡改过的软件为用户带来了极大的安全隐患,也威胁到原软件开发者的正当权益。
在防止软件被逆向工具逆向分析方面,业界通常针对特定逆向工具漏洞,在安卓软件中植入保护代码,使得特定逆向工具在逆向该软件时失效。
这种抗逆向手段的难点在于,既要让安卓软件的应用程序格式合法(即可以在安卓系统中正常启动),又要让逆向工具认为该应用程序不合法从而失效。
如何让安卓系统认为这是个合法的应用程序,又要让模拟安卓系统解析功能的逆向工具认为同一个应用程序不合法,一直是业界研究的方向之一。这需要对逆向工具极为熟悉,并找到逆向工具的漏洞才能实现。
即便找到了某个逆向工具的漏洞,使得这种逆向工具失效,破解者还可以选择其他的逆向工具完成软件的逆向分析。而且,很多破解者同样了解逆向工具的漏洞,这类破解者可以找到应用程序中针对某种逆向工具漏洞插入的保护代码,并对这部分代码进行改写,使之可以被该逆向工具逆向分析。因此,针对逆向工具漏洞植入保护代码的方案往往效果不佳。
发明内容
本发明实施例提供了一种保护应用程序的方法和装置,用以解决现有技术中存在的应用程序对抗逆向工具时效果不佳,导致安全性较差的问题。
本发明实施例采用以下技术方案:
本发明实施例提供了一种保护应用程序的方法,包括:
在运行应用程序之前,获取隐藏在所述应用程序中的敏感数据;其中,所述敏感数据是为保护所述应用程序而需要隐藏的数据,且所述应用程序中的当前可执行程序文件无法正常运行;
根据所述敏感数据,判断所述应用程序是否被篡改;
当判断出所述应用程序被篡改时,输出预警提示;
当判断出所述应用程序未被篡改时,根据所述敏感数据对所述当前可执行程序文件进行修复,得到可以正常运行的原可执行程序文件。
其中,所述当前可执行程序文件按照如下方式获得:
解析应用程序中可以正常运行的原可执行程序文件,对所述原可执行程序文件中的预设字符进行修改,得到修改后的当前可执行程序文件。
其中,对所述原可执行程序文件中的预设字符进行修改,具体包括:
当所述预设字符包含所述原可执行程序文件中指定字符串的索引值时,将所述原可执行程序文件中指定字符串的索引值修改为无效索引值或指向其它内容的索引值;
当所述预设字符包含指定结构在所述原可执行程序文件中的偏移地址时,将所述指定结构在所述原可执行程序文件中的偏移地址修改为无效地址或其它内容的地址;
当所述预设字符包含指定结构在所述原可执行程序文件中的指令编号时,将所述指定结构在所述原可执行程序文件中的指令编号修改为无效指令编号或其它指令编号。
其中,所述敏感数据按照如下方式隐藏:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团公司,未经中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410767711.1/2.html,转载请声明来源钻瓜专利网。