[发明专利]一种应用程序安装包生成方法、装置及电子设备有效
申请号: | 201511021602.6 | 申请日: | 2015-12-30 |
公开(公告)号: | CN106933610B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 秦皓;杨文玉 | 申请(专利权)人: | 北京金山安全软件有限公司 |
主分类号: | G06F8/61 | 分类号: | G06F8/61 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 安装 生成 方法 装置 电子设备 | ||
本发明实施例公开了一种应用程序安装包生成方法、装置及电子设备,方法包括:将目标应用程序的源代码编译成底层虚拟机的中间代码;利用所述底层虚拟机的解释器,将所述中间代码编译为机器代码;利用所述机器代码,生成所述目标应用程序的安装包。应用本发明实施例,即使攻击者获得了目标应用程序的机器代码,也很难从机器代码中获取应用程序的源代码,提高了应用程序的安全性。
技术领域
本发明涉及移动终端技术领域,特别涉及一种应用程序安装包生成方法、装置及电子设备。
背景技术
目前,安卓操作系统中的应用程序通常采用JAVA语言编写,其中,JAVA语言是由Sun Microsystems公司推出的一种可以撰写跨平台应用程序的面向对象的程序设计语言。JAVA语言属于高级语言,较容易被理解和掌握。
目前,针对安卓操作系统中的应用程序的保护通常是对基于JAVA语言的源代码进行保护,主要保护方案主要有:代码混淆、自我校验、DEX文件变形或隐藏、SO文件保护等,但上述几种方法对应用程序的保护作用不佳,应用程序的安全性不高,例如:代码混淆仅将JAVA语言编写的代码的类名、变量名混淆为无意义自定义格式,对于攻击者来说,只要攻击者获得应用程序的DEX文件,就可以利用DEX文件反编译出JAVA语言代码,再对反编译出的JAVA语言代码进行分析,即可获得JAVA语言的源代码等等。
发明内容
本发明实施例的目的在于提供一种应用程序安装包生成方法、装置及电子设备,以提高应用程序的安全性。
为达到上述目的,本发明实施例公开了一种应用程序安装包生成方法,包括:
将目标应用程序的源代码编译成底层虚拟机的中间代码;
利用所述底层虚拟机的解释器,将所述中间代码编译为机器代码;
利用所述机器代码,生成所述目标应用程序的安装包。
可选的,所述源代码的语言,包括:
JAVA语言。
可选的,所述将目标应用程序的源代码编译成底层虚拟机的中间代码,包括:
将所述目标应用程序的源代码编译成DEX文件;
对所述DEX文件进行解析,获得所述DEX文件中包含的方法;
根据所获得的方法,生成JAVA本地接口方法;
根据所述底层虚拟机编译器规则以及生成的JAVA本地接口方法,构建指令树,其中,所述指令树中的每一节点用于存放顺序执行的指令;
遍历所述指令树,对所述指令树中的每一节点存放的指令进行解析,获得所述指令树中的每一节点的指令;
根据所获得的所述指令树中的每一节点的指令,按照所述底层虚拟机的中间代码规则生成所述底层虚拟机的中间代码。
可选的,所述根据所获得的方法,生成JAVA本地接口方法,包括:
根据所获得的方法,按照JAVA本地接口方法的方法名的命名规则,生成JAVA本地接口方法。
可选的,在所述利用所述机器代码,生成所述目标应用程序的安装包之前,所述方法还包括:
添加运行时库程序代码段;
所述利用所述机器代码,生成所述目标应用程序的安装包,包括:
利用所述运行时库程序代码段和所述机器代码,生成所述目标应用程序的安装包。
可选的,所述利用所述机器代码,生成所述目标应用程序的安装包,包括:
按照预定策略对所述机器代码进行混淆处理,得到混淆处理之后的机器代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山安全软件有限公司,未经北京金山安全软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201511021602.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:化工铁桶起吊装置
- 下一篇:一种换热板片用移动机构