CN112347431A - Android应用加固保护方法 - Google Patents

Android应用加固保护方法 Download PDF

Info

Publication number
CN112347431A
CN112347431A CN202011195814.7A CN202011195814A CN112347431A CN 112347431 A CN112347431 A CN 112347431A CN 202011195814 A CN202011195814 A CN 202011195814A CN 112347431 A CN112347431 A CN 112347431A
Authority
CN
China
Prior art keywords
protection
file
android application
protection method
reinforcement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011195814.7A
Other languages
English (en)
Inventor
周伯虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chuangqi Cloud Computing Co ltd
Original Assignee
Shandong Chuangqi Cloud Computing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chuangqi Cloud Computing Co ltd filed Critical Shandong Chuangqi Cloud Computing Co ltd
Priority to CN202011195814.7A priority Critical patent/CN112347431A/zh
Publication of CN112347431A publication Critical patent/CN112347431A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种Android应用加固保护方法,涉及Android应用安全技术领域,具体包含DEX文件保护、SO文件保护、资源文件保护以及数据文件保护,与现有技术相比,本发明集DEX文件保护、SO文件保护、资源文件保护以及数据文件保护于一体的全方位安全加固保护以及独创的虚机源码保护技术,安全系数以及破解成本极高,破解难度提高数个数量级。

Description

Android应用加固保护方法
技术领域
本发明涉及Android应用安全技术领域,特别是涉及一种Android应用加固保护方法。
背景技术
Android是google公司于2007年推出的开源手机操作系统,由于其强大的功能和灵活的定制能力,使其在短短几年内便跃居智能手机操作系统市场份额的首位,据著名市场研究机构IDC的最新数据表明,2015年第三季度,Android系统智能手机的市场份额高达84.7%,远超其他系统。
随着Android应用和用户规模不断增长,Android应用攻击数量也在逐年攀升,并形成完整的灰色产业。大量Android应用程序面临着应用程序遭逆袭破解、知识产权被侵犯、被二次打包签名等安全问题。为解决此类相关问题,我们分别从代码安全、资源文件安全、数据安全等安全维度提供安全保护,来满足不同客户的安全需求。
虽然Android系统在设计之初便充分考虑到了安全问题,但随着其广泛应用,诸多潜在的安全问题还是逐渐地暴露出来,对其安全性的研究开始受到人们的广泛关注。由于Android平台软件使用的编程语言是Java,而Java源代码编译后的二进制代码极易被反编译,导致其破解难度远小于其他使用编译性语言编写的程序。虽然Android2.3以后加入了代码混淆机制,但通过逆向工程,其API级别上的代码仍是难以隐藏,对攻击者来说,破解的可能性仍是很大。
现有的一些Android应用程序加固方法,大多采用静态处理的方法,即对dex文件进行一些修改来增加攻击的难度。这种加固方法只是增加了代码阅读难度。或者基于JNI调用机制,通过加密原so文件,使用壳程序加载并解密原so文件,间接调用原so文件的函数。然而,由于基于JNI调用机制该方案,不可避免地会在硬盘短暂的留下解密后的明文so文件,攻击者使用Hook系统API、自动化脚本可以轻易地破解此方案。因此攻击者依然能够得到程序的代码,无法保证应用程序的安全性。
还有一部分Android应用加固处理方法是采用编译器自带混淆,但是此类方式只是基于对基础代码混淆,对代码反编译、篡改技术没有起到良好的防范作用。所以当前需要解决防反编译、防程序逻辑破解、防恶意代码注入、防API接口暴露。
发明内容
本发明的目的是针对现有技术中存在的Android应用防护不够全面的问题,提供一种集DEX文件保护、SO文件保护、资源文件保护以及数据文件保护于一体的全方位安全加固保护方法。
具体的,本发明提供的技术方案是一种Android应用加固保护方法,具体包含DEX文件保护、SO文件保护、资源文件保护以及数据文件保护。
所述DEX文件保护通过使用DEX壳、JAVA代码反编译、JAVA指令虚拟化、JAVA字符常量加密等技术对DEX文件进行全面性保护。
所述SO文件保护通过对SO文件进行反编译、防篡改、防盗用、虚机保护、代码压缩对SO文件进行全面保护。
所述资源文件保护是对应用中的资源文件以及JS文件进行加密保护和防篡改保护。
所述数据文件保护是对应用使用到的本地文件、数据库、配置文件进行加密保护。
所述加固保护方法通过安卓APP安装包编译工具进行一键加密。
所述加固保护方法中用到的语言包括Java,Kotlin,C#,Lua,Js,Html,C/C++。
与现有技术相比,本发明的有益效果具体表现在以下几个方面:
一、强大的安全保护:
1. 集DEX文件保护、SO文件保护、资源文件保护以及数据文件保护于一体的全方位安全加固保护以及独创的虚机源码保护技术,安全系数以及破解成本极高,破解难度提高数个数量级。
2. 无需上传源代码,无需担心代码泄漏问题。
3. SAAS平台及私有化部署两种方案,满足不同客户的安全需求。
二、全平台多语言支持:
1. 平台兼容性高,自动适配应用,无需额外开发适配,且不存在兼容性问题。
2. 语言支持丰富,支持包括Java,Kotlin,C#,Lua,Js,Html,C/C++等在内的多种
三、一键加固:
1. 操作流程便捷,App上传后,一键即可完成整个加固流程,操作简单便捷,非技术人员也能轻松掌握。
2. 性能影响小,加固后对启动时间的影响几乎为零。
附图说明
图1是本发明的Android应用加固保护方法DEX文件整体保护示意图。
图2是本发明的Android应用加固保护方法防Java反编译示意图。
图3是本发明的Android应用加固保护方法Java常量字符串加密示意图。
图4是本发明的Android应用加固保护方法Java代码虚拟化保护示意图。
图5是本发明的Android应用加固保护方法html/js保护示意图。
图6是本发明的Android应用加固保护方法的游戏引擎用脚本文件防篡改保护示意图。
图7是本发明的Android应用加固保护方法本地数据保护示意图一。
图8是本发明的Android应用加固保护方法本地数据保护示意图二。
具体实施方式
下面通过结合附图来对本发明的具体实施方式作进一步详细的阐述,但以下实施例仅起到帮助理解本发明的作用,并不能理解为是对本发明的进一步限定。
一种Android应用加固保护方法,具体包含DEX文件保护、SO文件保护、资源文件保护以及数据文件保护。
DEX文件保护:使用DEX壳、JAVA代码反编译、JAVA指令虚拟化、JAVA字符常量加密等技术对DEX文件进行全面性保护。
SO文件保护:对SO文件进行反编译、防篡改、防盗用、虚机保护、代码压缩对SO文件进行全面保护。
资源文件保护:对应用中的资源文件以及JS文件进行加密保护和防篡改保护。
数据文件保护:对应用使用到的本地文件、数据库、配置文件进行加密保护。
所述加固保护方法通过安卓APP安装包编译工具进行一键加密。
所述加固保护方法中用到的语言包括Java,Kotlin,C#,Lua,Js,Html,C/C++。
本发明实施例采用NDK编程的方式,将语义恢复代码保存在C/C++动态链接库中,然后采用JNI技术调用底层的so库,既能够实现Android应用程序的原功能,又能杜绝原始源代码容易被逆向的隐患,从而能实现加固、提高安全性。
根据新的源代码和语义恢复代码,进行编译打包,生成加固后的Android应用。
Android加固包含dex文件整体保护、java代码虚拟化保护、so文件保护、html/js保护、游戏相关脚本保护、本地数据保护、运行时保护这几大类功能。
1. dex文件整体保护
图1,图2所示,防java反编译,可以使反编译工具无法直接把代码反编译为java,提高逆向分析难度,包括但不限于(JEB、jd-gui、jadx)。
图3所示,JAVA常量字符串加密,会隐藏代码中明文的常量字符串,增加逆向难度。
2. java代码虚拟化保护
通过将原java代码指令转换为DX-VM虚拟机指令,运行在DX虚拟机之上,无法被反编译回可读的源代码,任何工具均无法直接反编译虚拟机指令。
图4所示,采用java代码虚拟化保护后,对源码反编译将无法看到任何与原代码相似的内容,函数体中只有对虚拟机子系统的调用。
3. so文件保护
通过对SO文件进行反编译、防篡改、防盗用、虚机保护、代码压缩等技术对SO文件进行全面性保护。
采用so文件保护后,主流反编译器都无法对被保护过的so进行正常分析。
生成 so库的具体步骤包括:编写Java代码(Java文件),声明本地文件中的函数;
新建 .c文件(语义恢复代码);
编写JNI入口函数,用于加载语义恢复代码;
编写项目配置文件Android .mk文件,用于配置项目信息;
编译生成 so库。
so库之后,将 so库和新的源代码P’编译打包,SDK编译工具可以将so库和新的源代码P’都打包进应用程度的apk文件中,得到加固后的Android应用程序,然后就可以正常运行加固后的Android应用程序。
4. html/js保护
图5所示,通过对html/js文件进行防篡改,加密等技术对html/js进行全面保护。
采用html/js保护后,无法直接获得明文的html/js文件。
5. 游戏相关保护
图6所示,通过对主流游戏引擎所用到的脚本/dll文件进行防篡改,加密等技术,进行全面保护。
6. 本地数据保护
通过对对本地数据文件进行防篡改,加密等技术进行全面保护。
图7,图8所示,采用本地数据保护后,无法直接明文查看db文件或sp文件。
与现有技术相比,本发明集dex文件整体保护、java代码虚拟化保护、so文件保护、html/js保护、游戏相关脚本保护、本地数据保护于一体;安全保护更加强大;一键加固更加灵活;Android兼容系统更加完美。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种Android应用加固保护方法,其特征在于:所述加固保护方法是集DEX文件保护、SO文件保护、资源文件保护以及数据文件保护与一体的全方位安全加固保护。
2.根据权利要求1所述的Android应用加固保护方法,其特征在于:所述DEX文件保护通过使用DEX壳、JAVA代码反编译、JAVA指令虚拟化、JAVA字符常量加密等技术对DEX文件进行全面性保护。
3.根据权利要求1所述的Android应用加固保护方法,其特征在于:所述SO文件保护通过对SO文件进行反编译、防篡改、防盗用、虚机保护、代码压缩对SO文件进行全面保护。
4.根据权利要求1所述的Android应用加固保护方法,其特征在于:所述资源文件保护是对应用中的资源文件以及JS文件进行加密保护和防篡改保护。
5.根据权利要求1所述的Android应用加固保护方法,其特征在于:所述数据文件保护是对应用使用到的本地文件、数据库、配置文件进行加密保护。
6.根据权利要求2-5中任一项所述的Android应用加固保护方法,其特征在于:所述加固保护方法通过安卓APP安装包编译工具进行一键加密。
7.根据权利要求2-5中任一项所述的Android应用加固保护方法,其特征在于:所述加固保护方法中用到的语言包括Java,Kotlin,C#,Lua,Js,Html,C/C++。
CN202011195814.7A 2020-10-31 2020-10-31 Android应用加固保护方法 Pending CN112347431A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011195814.7A CN112347431A (zh) 2020-10-31 2020-10-31 Android应用加固保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011195814.7A CN112347431A (zh) 2020-10-31 2020-10-31 Android应用加固保护方法

Publications (1)

Publication Number Publication Date
CN112347431A true CN112347431A (zh) 2021-02-09

Family

ID=74356934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011195814.7A Pending CN112347431A (zh) 2020-10-31 2020-10-31 Android应用加固保护方法

Country Status (1)

Country Link
CN (1) CN112347431A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN105930695A (zh) * 2016-04-11 2016-09-07 江苏通付盾科技有限公司 一种软件开发工具包的保护方法及装置
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、系统及解密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN105930695A (zh) * 2016-04-11 2016-09-07 江苏通付盾科技有限公司 一种软件开发工具包的保护方法及装置
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、系统及解密方法

Similar Documents

Publication Publication Date Title
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
CN106778103B (zh) 一种安卓应用程序防逆向破解的加固方法、系统及解密方法
CN102890758B (zh) 一种保护可执行文件的方法及系统
CN102760219B (zh) 一种Android平台软件保护系统、方法及设备
WO2016078130A1 (zh) 一种防逆向apk文件的动态加载方法
US8090959B2 (en) Method and apparatus for protecting .net programs
Zhou et al. Divilar: Diversifying intermediate language for anti-repackaging on android platform
Kovacheva Efficient code obfuscation for Android
CN104462959A (zh) 一种安卓应用的加固保护方法、服务器和系统
WO2015058620A1 (en) Method and apparatus for generating installation package corresponding to an application and executing application
KR101623096B1 (ko) 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법
US20170024230A1 (en) Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine
CN104463002A (zh) 一种加固apk的方法和装置以及apk加固客户端和服务器
CN104408337A (zh) 一种apk文件防逆向的加固方法
CN106650327A (zh) 基于动态恢复so文件的Android应用加固方法
Faruki et al. Android code protection via obfuscation techniques: past, present and future directions
CN102346834A (zh) Java应用软件加密保护的方法
CN106650330A (zh) 一种基于Dex加载器的Android应用软件加固保护方法
CN109871704A (zh) 基于Hook的Android资源文件防护方法、设备和存储介质
Haupert et al. Honey, i shrunk your app security: The state of android app hardening
CN105095771A (zh) 一种共享目标文件的保护方法及装置
Yuste et al. Avaddon ransomware: An in-depth analysis and decryption of infected systems
WO2016206393A1 (zh) 管理应用的方法和装置、实现读写操作的方法和装置
Lim et al. Structural analysis of packing schemes for extracting hidden codes in mobile malware
US20120173497A1 (en) Defense-in-depth security for bytecode executables

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination