CN104951705A - 一种基于操作系统接口重写的安卓应用数据加密封装方法 - Google Patents
一种基于操作系统接口重写的安卓应用数据加密封装方法 Download PDFInfo
- Publication number
- CN104951705A CN104951705A CN201510398292.3A CN201510398292A CN104951705A CN 104951705 A CN104951705 A CN 104951705A CN 201510398292 A CN201510398292 A CN 201510398292A CN 104951705 A CN104951705 A CN 104951705A
- Authority
- CN
- China
- Prior art keywords
- android
- encryption
- file
- application
- decryption module
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本发明涉及一种基于操作系统接口重写的安卓应用数据加密封装方法,针对现有安卓应用程序的指令文件进行修改,引入预设加解密模块,通过修改安卓操作系统针对安卓应用的文件读写接口地址,有效实现针对安卓应用数据文件的读写加密操作,具有成本低,无开发工作量的优点,不需要修改源代码就可以实现数据的存储加密,应用的加密封装可以由工具自动完成,并且工具可以重复使用;而且整个设计方法适应性强,应用范围广,对文本文件、二进制文件、图片文件、数据库文件均可以实现加密,能够实现对99.5%的安卓应用的重新加密封装。
Description
技术领域
本发明涉及一种基于操作系统接口重写的安卓应用数据加密封装方法,属于数据文件加解密封装应用技术领域。
背景技术
安卓应用是运行于安卓手机上的程序,绝大部分应用需要在设备上存储数据。在移动互联网技术领域中,很多安卓应用的数据存储存在一定的安全问题,应用存储的数据,例如用户名、密码、应用设置、隐私数据等,容易被其它应用读取或修改,造成数据泄露或者篡改。实际中,安卓应用的开发者,需要在所有存储数据的地方对数据进行加密,所有读取数据的地方进行解密,才能对数据进行加密,这给应用开发增加了较大的工作量。由于安卓数据库接口的限制,应用开发者在不修改数据库引擎的情况下,无法针对存储在设备上的数据库文件进行加密,而且数据库的结构和内容可以被一些数据库工具解析读取,因此,现有安卓应用中的数据存储与读取,十分不安全。
发明内容
本发明所要解决的技术问题是提供一种基于操作系统接口重写的安卓应用数据加密封装方法,针对现有安卓应用程序的指令文件进行修改,引入预设加解密模块,通过修改安卓操作系统针对安卓应用的文件读写接口地址,有效实现针对安卓应用数据文件的读写加密操作。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于操作系统接口重写的安卓应用数据加密封装方法,包括如下步骤:
步骤001. 针对安卓应用进行解压缩和反向编译操作,获得该安卓应用所对应的指令文件和资源文件,并进入步骤002;
步骤002. 在该安卓应用所对应指令文件的入口位置,插入预设加解密模块的调用指令,更新获得该安卓应用所对应的指令文件,并进入步骤003;
步骤003. 针对该安卓应用所对应的指令文件、资源文件,以及所述预设加解密模块进行编译封装和签名操作,更新获得该安卓应用,并进入步骤004;
步骤004. 在安卓操作系统中安装并运行该安卓应用,执行预设加解密模块的调用指令,并进入步骤005;
步骤005. 预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,并根据预设加解密模块中的加解密文件读写接口地址,将该原始文件读写接口地址修改为该加解密文件读写接口地址,完成数据加密封装方法。
作为本发明的一种优选技术方案:所述指令文件为汇编指令文件。
作为本发明的一种优选技术方案:所述汇编指令文件为Smali汇编格式指令文件。
作为本发明的一种优选技术方案:所述预设加解密模块中的加解密算法为对称加密算法。
作为本发明的一种优选技术方案:所述步骤005中,根据预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,以及预设加解密模块中的动态链接库,获得所述加解密文件读写接口地址。
本发明所述一种基于操作系统接口重写的安卓应用数据加密封装方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明设计基于操作系统接口重写的安卓应用数据加密封装方法,成本低,无开发工作量,不需要修改源代码就可以实现数据的存储加密,应用的加密封装可以由工具自动完成,并且工具可以重复使用;而且整个设计方法适应性强,应用范围广,对文本文件、二进制文件、图片文件、数据库文件均可以实现加密,能够实现对99.5%的安卓应用的重新加密封装。
附图说明
图1是本发明设计一种基于操作系统接口重写的安卓应用数据加密封装方法的流程示意图;
图2是本发明设计基于操作系统接口重写的安卓应用数据加密封装方法中的数据处理流程示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
如图1所示,本发明所设计基于操作系统接口重写的安卓应用数据加密封装方法在实际应用过程当中,具体包括如下步骤:
步骤001. 针对安卓应用进行解压缩和反向编译操作,获得该安卓应用所对应的Smali汇编格式指令文件和资源文件,并进入步骤002。
步骤002. 在该安卓应用所对应Smali汇编格式指令文件的入口位置,插入预设加解密模块的调用指令,更新获得该安卓应用所对应的Smali汇编格式指令文件,并进入步骤003。
步骤003. 针对该安卓应用所对应的Smali汇编格式指令文件、资源文件,以及所述预设加解密模块进行编译封装和签名操作,更新获得该安卓应用,并进入步骤004。
步骤004. 在安卓操作系统中安装并运行该安卓应用,执行预设加解密模块的调用指令,并进入步骤005。
步骤005. 首先根据预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,以及预设加解密模块中的动态链接库,获得所述加解密文件读写接口地址;然后预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,并根据预设加解密模块中的加解密文件读写接口地址,将该原始文件读写接口地址修改为该加解密文件读写接口地址,完成数据加密封装方法。
实际应用中,基于上述方法的实施后,在针对安卓应用进行读写文件时,由于安卓操作系统针对该安卓应用的文件读写接口被改写,因此,经过上述方法后,安卓操作系统针对该安卓应用的文件读写接口被修改为了预设加解密模块中的加解密文件读写接口地址,因此,当该安卓应用需要写入数据文件时,首先要经过预设加解密模块,通过预设加解密模块针对被写入的数据文件首先进行加密处理,然后在存储至物理文件中,进而使得最终存储的物理文件被加密;与之相应,当该安卓应用需要读取数据文件时,首先从物理文件中读取数据文件,然后通过预设加解密模块针对该数据文件进行解密操作,进而使得该安卓应用读取到未加密的该数据文件;进而采用预设加解密模块,通过上述方法,实现安卓应用实际应用过程中的加解密操作,保证数据的安全性;在实际应用过程当中,所述预设加解密模块中的加解密算法,可以采用对称加密算法, 加解密操作的秘钥会随文件的读写位置变化,并且秘钥由秘钥因子计算得到,秘钥因子不以明文存储,不同的安卓应用的秘钥初始因子可以不同。如图2所示, W是安卓操作系统针对安卓应用的写入文件数据接口,W'是预设加解密模块写数据接口,w存储了接口地址,预设加解密模块通过修改w的值,将原先调用W的过程重新定向到W'来处理;R是安卓操作系统针对安卓应用的读文件数据接口,R'是预设加解密模块读数据接口,r存储了接口地址,预设加解密模块通过修改r的值,将原先调用R的过程重新定向到R’来处理。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (5)
1.一种基于操作系统接口重写的安卓应用数据加密封装方法,其特征在于,包括如下步骤:
步骤001.针对安卓应用进行解压缩和反向编译操作,获得该安卓应用所对应的指令文件和资源文件,并进入步骤002;
步骤002.在该安卓应用所对应指令文件的入口位置,插入预设加解密模块的调用指令,更新获得该安卓应用所对应的指令文件,并进入步骤003;
步骤003.针对该安卓应用所对应的指令文件、资源文件,以及所述预设加解密模块进行编译封装和签名操作,更新获得该安卓应用,并进入步骤004;
步骤004.在安卓操作系统中安装并运行该安卓应用,执行预设加解密模块的调用指令,并进入步骤005;
步骤005.预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,并根据预设加解密模块中的加解密文件读写接口地址,将该原始文件读写接口地址修改为该加解密文件读写接口地址,完成数据加密封装方法。
2.根据权利要求1所述一种基于操作系统接口重写的安卓应用数据加密封装方法,其特征在于:所述指令文件为汇编指令文件。
3.根据权利要求2所述一种基于操作系统接口重写的安卓应用数据加密封装方法,其特征在于:所述汇编指令文件为Smali汇编格式指令文件。
4.根据权利要求1所述一种基于操作系统接口重写的安卓应用数据加密封装方法,其特征在于:所述预设加解密模块中的加解密算法为对称加密算法。
5.根据权利要求1所述一种基于操作系统接口重写的安卓应用数据加密封装方法,其特征在于:所述步骤005中,根据预设加解密模块查找获得该安卓操作系统针对该安卓应用的原始文件读写接口地址,以及预设加解密模块中的动态链接库,获得所述加解密文件读写接口地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398292.3A CN104951705A (zh) | 2015-07-08 | 2015-07-08 | 一种基于操作系统接口重写的安卓应用数据加密封装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510398292.3A CN104951705A (zh) | 2015-07-08 | 2015-07-08 | 一种基于操作系统接口重写的安卓应用数据加密封装方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104951705A true CN104951705A (zh) | 2015-09-30 |
Family
ID=54166354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510398292.3A Pending CN104951705A (zh) | 2015-07-08 | 2015-07-08 | 一种基于操作系统接口重写的安卓应用数据加密封装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951705A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598584A (zh) * | 2016-12-08 | 2017-04-26 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN106656953A (zh) * | 2016-09-23 | 2017-05-10 | 焦点科技股份有限公司 | 一种基于互联网的系统间安全调用接口实现方法 |
WO2017181968A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 应用文件的处理方法、访问方法及装置、存储介质 |
CN110990018A (zh) * | 2019-10-29 | 2020-04-10 | 北京全路通信信号研究设计院集团有限公司 | 一种嵌入式系统的编译部署方法、编译方法及编译系统 |
CN115456188A (zh) * | 2022-02-28 | 2022-12-09 | 合肥本源量子计算科技有限责任公司 | 量子计算任务优化处理方法、装置及量子计算机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020112158A1 (en) * | 2001-02-14 | 2002-08-15 | Golchikov Andrey Vladimirovich | Executable file protection |
CN102136053A (zh) * | 2011-03-14 | 2011-07-27 | 中兴通讯股份有限公司 | 对可执行文件源代码保护的方法及装置 |
-
2015
- 2015-07-08 CN CN201510398292.3A patent/CN104951705A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020112158A1 (en) * | 2001-02-14 | 2002-08-15 | Golchikov Andrey Vladimirovich | Executable file protection |
CN102136053A (zh) * | 2011-03-14 | 2011-07-27 | 中兴通讯股份有限公司 | 对可执行文件源代码保护的方法及装置 |
Non-Patent Citations (1)
Title |
---|
蔡智力: "IA-64 Linux平台上的ELF文件加壳技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017181968A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 应用文件的处理方法、访问方法及装置、存储介质 |
CN107305606A (zh) * | 2016-04-20 | 2017-10-31 | 中兴通讯股份有限公司 | 应用文件的处理方法及装置和文件的访问方法及装置 |
CN106656953A (zh) * | 2016-09-23 | 2017-05-10 | 焦点科技股份有限公司 | 一种基于互联网的系统间安全调用接口实现方法 |
CN106598584A (zh) * | 2016-12-08 | 2017-04-26 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN106598584B (zh) * | 2016-12-08 | 2020-02-11 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN110990018A (zh) * | 2019-10-29 | 2020-04-10 | 北京全路通信信号研究设计院集团有限公司 | 一种嵌入式系统的编译部署方法、编译方法及编译系统 |
CN110990018B (zh) * | 2019-10-29 | 2023-03-24 | 北京全路通信信号研究设计院集团有限公司 | 一种嵌入式系统的编译方法及编译系统 |
CN115456188A (zh) * | 2022-02-28 | 2022-12-09 | 合肥本源量子计算科技有限责任公司 | 量子计算任务优化处理方法、装置及量子计算机 |
CN115456188B (zh) * | 2022-02-28 | 2024-04-05 | 本源量子计算科技(合肥)股份有限公司 | 量子计算任务优化处理方法、装置及量子计算机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021217980A1 (zh) | java代码的加壳方法与系统 | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
CN106599629B (zh) | 一种安卓应用程序加固方法及装置 | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
CN104951705A (zh) | 一种基于操作系统接口重写的安卓应用数据加密封装方法 | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
KR101623096B1 (ko) | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 | |
US20160180065A1 (en) | Apparatus for tamper protection of application code and method thereof | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
CN1329787C (zh) | 防止固件被剽窃的方法 | |
CN101561762A (zh) | 软件安装程序打包系统及方法 | |
CN104539432A (zh) | 一种对文件进行签名的方法和装置 | |
CN104408337A (zh) | 一种apk文件防逆向的加固方法 | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN104573416A (zh) | 一种生成应用安装包、执行应用的方法及装置 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN104866739A (zh) | 安卓系统中应用程序加密方法及系统 | |
CN104318135A (zh) | 一种基于可信执行环境的Java代码安全动态载入方法 | |
CN110826031B (zh) | 加密方法、装置、计算机设备及存储介质 | |
CN105095771A (zh) | 一种共享目标文件的保护方法及装置 | |
CN109840400B (zh) | 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法 | |
CN102799815A (zh) | 一种安全加载程序库的方法和装置 | |
WO2017181968A1 (zh) | 应用文件的处理方法、访问方法及装置、存储介质 | |
KR20150069844A (ko) | Arm 프로세서 기반의 파일 난독화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150930 |