CN111143789B - 一种apk资源文件的混淆方法和装置 - Google Patents
一种apk资源文件的混淆方法和装置 Download PDFInfo
- Publication number
- CN111143789B CN111143789B CN201911237291.5A CN201911237291A CN111143789B CN 111143789 B CN111143789 B CN 111143789B CN 201911237291 A CN201911237291 A CN 201911237291A CN 111143789 B CN111143789 B CN 111143789B
- Authority
- CN
- China
- Prior art keywords
- resource
- file
- apk
- data table
- resources
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000004048 modification Effects 0.000 claims description 10
- 238000012986 modification Methods 0.000 claims description 10
- 238000007405 data analysis Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 2
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种APK资源文件混淆方法及装置,包括下述步骤:通过常规资源文件混淆方法,生成未签名的APK资源文件;提取未签名的APK资源文件中的资源索引文件resources.arsc;对资源索引文件resources.arsc进行重编译,修改资源ID列表,生成新的资源索引文件resources.arsc;用新的资源索引文件resources.arsc替换原有的资源索引文件resources.arsc,并对APK资源文件进行重签名。本发明通过将APK资源文件中所有资源文件ID和资源文件名都改为相同的字段,避免了资源文件容易被人盗用的问题,杜绝了黑客利用资源ID进行破解分析和自动化控制,因此更进一步加强防护措施,使得应用不易被反编译人员分析利用。
Description
技术领域:
本发明属于安卓应用安全技术领域,具体涉及一种APK资源文件的混淆方法和装置。
背景技术:
随着智能手机的大规模普及,移动应用开发也得到了飞速发展,而安卓平台更是以其优良的性能表现赢得了众多开发者和用户的青睐。形形色色的安卓应用出现在应用市场,极大地丰富了人们的日常生活。但是,由于安卓应用易被破解重打包的特性,不法分子可以通过APK资源文件轻易破解安卓应用,获取安卓应用的重要信息。
当前,常用的安卓应用资源文件混淆方法主要是基于传统的代码混淆技术。将资源文件名用简单的无意义的字符进行替代,给反编译者带来理解上的困难,同时也能减小APK文件的大小。而随着破解技术的不断完善,原有的代码混淆技术受到了巨大的挑战。即使资源文件名被混淆,但是资源文件ID仍是唯一的,反编译者只要愿意多花时间,总能明白资源文件所代表的意义,因此,如何从资源文件ID上对APK资源文件进行混淆是目前本领域探索的方向。
发明内容:
为了解决上述问题,本发明提供了一种APK资源文件混淆方法,使得反编译人员无法通过资源文件ID分析并破解APK资源文件,以提高APK资源文件的加密性,
本发明所述方法包括以下步骤:
S1、通过常规资源文件混淆方法,生成未签名的APK资源文件;
S2、提取未签名的APK资源文件中的资源索引文件resources.arsc;
S3、对资源索引文件resources.arsc进行重编译,修改资源ID列表,生成新的资源索引文件resources.arsc;
S4、用新的资源索引文件resources.arsc替换原有的资源索引文件resources.arsc,并对APK资源文件进行重签名。
进一步的,所述步骤S1包括以下步骤:
S11、将所有的资源文件ID用简短无意义的字母组合替换;
进一步的,所述步骤S3中还包括以下步骤:
S31、将资源索引文件resources.arsc按照一定格式进行数据解析,解析得到的资源数据表;
S32、对所述资源数据表进行修改,剔除所有资源ID使用过的字符串;
S33、在所述资源数据表中增加一个指定的字段,并将该指定字段赋予给所有资源ID的值,获得新的资源数据表;
S34、将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
进一步的,所述资源数据表应该至少包括以下数据:资源名称字符串池;
进一步的,所述资源数据表中只增加一个指定字段;
本发明的另一方面,还包括一种APK资源文件的混淆装置,该装置包括:
常规混淆模块,用于通过常规混淆的方式,生成未签名的APK资源文件;
提取模块,用于提取未签名APK资源文件的资源索引文件resources.arsc;
重编译修改模块,用于修改所述资源索引文件中资源文件ID并重编译生成新的资源索引文件;
替换模块,用于将新的资源索引文件替换原来的资源索引文件,并对APK资源文件进行重签名。
进一步的,所述常规混淆模块包括将所有的资源文件ID用简短无意义的字母组合替换的替换子模块;
进一步的,所述重编译修改模块还包括:
数据解析子模块31,用于将资源索引文件resources.arsc按照一定格式进行解析,生成资源数据表;
数据修改子模块32,用于在资源数据表中剔除所有资源ID使用过的字符串;
赋值子模块33,用于将新增加的指定字段赋值给资源文件ID,以获取新的资源数据表;
回编子模块34,用于将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
进一步的,所述数据解析子模块生成的资源数据表至少包括:资源名称字符串池;
进一步的,赋值子模块所只增加一个指定字段;
本发明的有益之处在于,通过将APK资源文件中所有资源文件ID和资源文件名都改为相同的字段,避免了资源文件容易被人盗用的问题,杜绝了黑客利用资源ID进行破解分析和自动化控制,因此更进一步加强防护措施,使得应用不易被反编译人员分析利用。
说明书附图
图1为本发明一种APK资源文件混淆方法的流程示意图;
图2为常规资源文件混淆方法的示意图;
图3为本发明步骤S3所述对于资源索引文件进行重编译的流程示意图;
图4为本发明实施例中获取的资源数据表的结构示意图;
图5为本发明实施例中经过本发明所述方法混淆的APK资源文件示意图;
图6位本发明一种APK资源文件混淆设备的结构示意图;
具体实施方式
下面结合实施例和附图,对本发明的技术方案作进一步陈述。
实施例一
如图1所示,为本发明所述的一种APK资源文件混淆方法,该方法包括以下步骤:
S1、通过常规资源文件混淆方法,生成未签名的APK资源文件;
S2、提取未签名的APK资源文件中的资源索引文件resources.arsc;
S3、对资源索引文件resources.arsc进行重编译,修改资源ID列表,生成新的资源索引文件resources.arsc;
S4、用新的资源索引文件resources.arsc替换原有的资源索引文件resources.arsc,并对APK资源文件进行重签名。
一般来说,常规资源文件混淆方法是将资源文件名称用简短无意义的进行替换,如图2所示,将原来的文件名称进行变化,因此会给反编译者制造理解上的困难,反编译者需要消耗一定的时间来搞清楚这些资源文件的作用,并且可以给APK瘦身。混淆后资源名长度更短,资源文件减小,最终能明显减小APK的大小。
但即使被混淆,由于资源文件名称唯一,反编译者依然可以通过花费一定时间来弄清楚相应资源文件的作用,因此,将APK资源文件的索引文件resources.arsc提取出来作进一步处理。
如图3所示,对于步骤S3,还包括以下步骤:
S31、将资源索引文件resources.arsc按照一定格式进行数据解析,解析得到的资源数据表;
S32、对所述资源数据表进行修改,剔除所有资源ID使用过的字符串;
S33、在所述资源数据表中增加一个指定的字段,并将该指定字段赋予给所有资源ID的值,获得新的资源数据表;
S34、将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
将图2中得到的资源索引文件按步骤3所述方法进行编译,数据解析格式如图4所示,将所述资源索引文件resources.arsc制成资源数据表,所述资源数据表包括:全局字符串池、报表包头、资源类型字符串池、资源名称字符串池、规格类型、配置列表;
进一步的,利用APKtool修改资源数据表中的资源类型字符串池和资源名称字符串池,将所有资源文件ID使用过的字符串全部删除,并在资源数据表的资源名称字符串池中增加一个(name remove)字段,并将该字段赋值给所有资源文件ID的值,生成新的资源数据表,并利用APKtool将修改过后的资源数据表反编译到资源索引文件中,生成新的资源索引文件。
在实施例1中,所述APK资源文件进行重签名后经过APKtool反编译的结果如图5所示,其中资源索引文件中的资源文件ID以及资源文件名全部变为了name remove,因此反编译人员无法通过资源文件ID的唯一性来推测资源文件的作用,使得资源文件ID失去了分析和利用的价值,APK文件更难以被破解。
实施例2
如图6所示,为本发明所述的一种APK资源文件混淆装置的结构示意图,该装置包括:
常规混淆模块1,用于通过常规混淆的方式,生成未签名的APK资源文件;
提取模块2,用于提取未签名APK资源文件的资源索引文件resources.arsc;
重编译修改模块3,用于修改所述资源索引文件中资源文件ID并重编译生成新的资源索引文件;
替换模块4,用于将新的资源索引文件替换原来的资源索引文件,并对APK资源文件进行重签名,
得到的APK资源文件中所有资源文件ID都经过修改丧失了唯一性,因此不易被反编译人员分析利用。
其中,所述重编译修改模块包括:
数据解析子模块31,用于将资源索引文件resources.arsc按照一定格式进行解析,生成资源数据表;
数据修改子模块32,用于在资源数据表中剔除所有资源ID使用过的字符串;
赋值子模块33,用于将新增加的指定字段赋值给资源文件ID,以获取新的资源数据表;
回编子模块34,用于将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
其中,所述数据解析子模块生成的资源数据表至少包括:资源名称字符串池;
其中,赋值子模块所只增加一个指定字段name remove;
综上所述,本发明提供了一种APK资源文件混淆方法及装置,通过将APK资源文件的ID进行重新赋值,消除了常规混淆方法中APK资源文件ID唯一性的问题,避免了反编译人员通过利用资源ID进行破解分析和自动化控制,更进一步加强软件源文件的防护措施
需要说明的是,本发明的说明书及其附图中给出了本发明的较佳的实施例,但是,本发明可以通过许多不同的形式来实现,并不限于本说明书所描述的实施例,这些实施例不作为对本发明内容的额外限制,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。并且,上述各技术特征继续相互组合,形成未在上面列举的各种实施例,均视为本发明说明书记载的范围;进一步地,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (6)
1.一种APK资源文件混淆方法,其特征在于,所述方法包括以下步骤:
S1、通过常规资源文件混淆方法,生成未签名的APK资源文件;
S2、提取未签名的APK资源文件中的资源索引文件resources.arsc;
S31、将资源索引文件resources.arsc按照一定格式进行数据解析,解析得到的资源数据表;
S32、对所述资源数据表进行修改,剔除所有资源ID使用过的字符串;
S33、在所述资源数据表中增加一个指定的字段,并将该指定字段赋予给所有资源ID的值,获得新的资源数据表;
S34、将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
S4、用新的资源索引文件resources.arsc替换原有的资源索引文件resources.arsc,并对APK资源文件进行重签名。
2.根据权利要求1所述的一种APK资源文件混淆方法,其特征在于,所述步骤S1中包括以下步骤:
S11、将所有的资源文件ID用简短无意义的字母组合替换。
3.根据权利要求2所述的一种APK资源文件混淆方法,其特征在于,所述资源数据表中,至少包括以下数据:资源名称字符串池。
4.一种APK资源文件混淆装置,其特征在于,该装置包括:
常规混淆模块,用于通过常规混淆的方式,生成未签名的APK资源文件;
提取模块,用于提取未签名APK资源文件的资源索引文件resources.arsc;
重编译修改模块,包括:
数据解析子模块31,用于将资源索引文件resources.arsc按照一定格式进行解析,生成资源数据表;
数据修改子模块32,用于在资源数据表中剔除所有资源ID使用过的字符串;
赋值子模块33,用于在所述资源数据表中增加一个指定的字段,并将该指定字段赋予给所有资源ID的值,获得新的资源数据表;
回编子模块34,用于将所述新的资源数据表中的数据回编到所述资源索引文件resources.arsc中,得到新的资源索引文件resources.arsc;
替换模块,用于将新的资源索引文件替换原来的资源索引文件,并对APK资源文件进行重签名。
5.根据权利要求4所述的一种APK资源文件混淆装置,其特征在于,所述常规混淆模块包括将所有的资源文件ID用简短无意义的字母组合替换的替换子模块。
6.根据权利要求5所述的一种APK资源文件混淆装置,其特征在于,所述数据解析子模块生成的资源数据表至少包括:资源名称字符串池。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911237291.5A CN111143789B (zh) | 2019-12-05 | 2019-12-05 | 一种apk资源文件的混淆方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911237291.5A CN111143789B (zh) | 2019-12-05 | 2019-12-05 | 一种apk资源文件的混淆方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143789A CN111143789A (zh) | 2020-05-12 |
CN111143789B true CN111143789B (zh) | 2023-07-25 |
Family
ID=70517784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911237291.5A Active CN111143789B (zh) | 2019-12-05 | 2019-12-05 | 一种apk资源文件的混淆方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143789B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094664B (zh) * | 2021-04-09 | 2022-11-04 | 每日互动股份有限公司 | 一种防止安卓应用程序被反编译的系统 |
CN114416108B (zh) * | 2022-03-30 | 2022-08-09 | 北京全路通信信号研究设计院集团有限公司 | 基于Android资源文件索引表对抗反编译的方法、系统及装置 |
CN116662942A (zh) * | 2023-07-31 | 2023-08-29 | 成都初心互动科技有限公司 | 一种iOS应用程序加固方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786498A (zh) * | 2016-02-25 | 2016-07-20 | 广州阿里巴巴文学信息技术有限公司 | 用于修改应用程序的方法、设备和电子设备 |
CN106778099A (zh) * | 2016-11-29 | 2017-05-31 | 北京奇虎科技有限公司 | 防篡改apk的生成方法和装置、安装及运行方法和装置 |
CN109144948A (zh) * | 2017-06-15 | 2019-01-04 | 海马云(天津)信息技术有限公司 | 应用文件定位的方法、装置、电子设备和存储器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101521765B1 (ko) * | 2015-01-08 | 2015-05-20 | 숭실대학교산학협력단 | 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법 |
CN106295255B (zh) * | 2015-05-27 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 应用程序的加固方法和装置 |
CN108089880A (zh) * | 2017-12-28 | 2018-05-29 | 北京奇虎科技有限公司 | 对应用程序安装文件进行预处理的方法、装置和服务器 |
CN109858203A (zh) * | 2018-12-21 | 2019-06-07 | 厦门市美亚柏科信息股份有限公司 | 一种Android平台应用的安全防护方法、装置及存储介质 |
CN109657488B (zh) * | 2019-02-26 | 2021-09-28 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
-
2019
- 2019-12-05 CN CN201911237291.5A patent/CN111143789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786498A (zh) * | 2016-02-25 | 2016-07-20 | 广州阿里巴巴文学信息技术有限公司 | 用于修改应用程序的方法、设备和电子设备 |
CN106778099A (zh) * | 2016-11-29 | 2017-05-31 | 北京奇虎科技有限公司 | 防篡改apk的生成方法和装置、安装及运行方法和装置 |
CN109144948A (zh) * | 2017-06-15 | 2019-01-04 | 海马云(天津)信息技术有限公司 | 应用文件定位的方法、装置、电子设备和存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN111143789A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143789B (zh) | 一种apk资源文件的混淆方法和装置 | |
KR101521765B1 (ko) | 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법 | |
Wang et al. | Understanding third-party libraries in mobile app analysis | |
EP2897074A1 (en) | Application code obfuscation device based on self-conversion and method therefor | |
CN106970820A (zh) | 代码存储方法及代码存储装置 | |
CN104102880B (zh) | 一种检测Android权限提升攻击的应用程序重写方法和系统 | |
CN107665306B (zh) | 一种检测非法文件注入的方法、装置、客户端及服务器 | |
CN104834858A (zh) | 一种android应用中恶意代码的静态检测方法 | |
CN1220745A (zh) | 与传统主机系统操作持续相连的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器 | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
CN110781462B (zh) | 一种资源的混淆方法和装置 | |
CN110084064B (zh) | 基于终端的大数据分析处理方法及系统 | |
CN110071924B (zh) | 基于终端的大数据分析方法及系统 | |
CN106055375A (zh) | 应用程序安装方法及装置 | |
CN107301347A (zh) | 一种基于静态分析获取Hbuilder App调用图的方法 | |
CN104899009A (zh) | 一种安卓应用的识别方法及装置 | |
CN110489207A (zh) | 参数验证方法、装置及计算机可读存储介质 | |
CN114036561A (zh) | 信息隐藏、信息获取方法、装置、存储介质及电子设备 | |
CN103902906A (zh) | 基于应用图标的移动终端恶意代码检测方法及系统 | |
Feichtner et al. | Obfuscation-resilient code recognition in Android apps | |
CN108153745B (zh) | 一种应用数据调用方法及应用开发系统 | |
CN110007955B (zh) | 一种指令集模拟器译码模块代码的压缩方法 | |
TWI557647B (zh) | Two - dimensional code, generation method and recognition method with two - dimensional software installation information | |
US20200033839A1 (en) | Rule-based communicating of equipment data from an industrial system to an analysis system using uni-directional interfaces | |
CN102737203B (zh) | 一种基于程序父子基因关系的病毒防御方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |