CN107463420A - 一种在Android APK中植入代码的便捷方法 - Google Patents
一种在Android APK中植入代码的便捷方法 Download PDFInfo
- Publication number
- CN107463420A CN107463420A CN201610394092.5A CN201610394092A CN107463420A CN 107463420 A CN107463420 A CN 107463420A CN 201610394092 A CN201610394092 A CN 201610394092A CN 107463420 A CN107463420 A CN 107463420A
- Authority
- CN
- China
- Prior art keywords
- apk
- file
- parsed
- instruments
- sdk
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种在Android APK中植入代码的便捷方法,反向操作:将APK中文件处理成反向操作中的工程;(2)二次编辑:对生成的反向工程中各类文件进行增删改的操作,各个资源增删改之后符合原格式的相关规范,添加代码,将代码转换为smali格式加入;(3)编译操作:将反向工程编译成新APK;(4)各个文件还原后,将文件按对应目录打包成APK,利用SDK自带的JarSigner重新对APK包进行签名;(5)重新签名后,新的APK接口即可正式使用。通过本发明方法,将反向工程文件重新编译成APK中所支持的文件格式,从而得到新的APK文件,以完成整个SDK的接入过程,从而极大的减少了SDK接入的工作量。
Description
技术领域
本发明涉及代码集成领域,具体是一种在Android APK中植入代码的便捷方法。
背景技术
传统的Android平台SDK传统接入方法都是在APK生成前执行源代码接入。传统方法接入,一般来说需要做以下步骤:(1)SDK;(2)参考接入文档,在原代码工程中添加相关SDK;(3)SDK执行运行环境;(4)SDK API;(5)APK,完成接入。由于Android APK本质上是一种ZIP格式的压缩包,一般情况下,压缩包内的文件无法做二次编辑,因此传统接入方法都是在APK生成前执行源代码接入。
发明内容
本发明的目的在于提供一种在Android APK中植入代码的便捷方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种在Android APK中植入代码的便捷方法,步骤如下:
(1)反向操作:将APK中文件处理成反向操作中的工程
1)Assets目录解压后文件直接使用,无需处理;
2)res和resources.arsc内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)Classes.dex通过dex2smali工具解析成smali文件夹中内容;
4)AndroidManifest.xml文件通过Axml2xml格式解析工具解析成XML,并通过上述对应的解析后,反向工程进行二次编辑;
(2)二次编辑:对步骤(1)中生成的反向工程中各类文件进行增删改的操作,各个资源增删改之后符合原格式的相关规范,添加代码,将代码转换为smali格式加入;
(3)编译操作:将反向工程编译成新APK
1)lAssets目录无需处理,放置在相对应的位置;
2)lRes目录中的内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)lSmali文件夹通过dex2smali工具解析成dex文件中内容;
4)lAndroidManifest.xml文件通过Axml2xml格式解析工具解析成AXML。
(4)各个文件还原后,将文件按对应目录打包成APK,利用SDK自带的JarSigner重新对APK包进行签名;
(5)重新签名后,新的APK接口即可正式使用。
与现有技术相比,本发明的有益效果是:通过本发明方法,将反向工程文件重新编译成APK中所支持的文件格式,从而得到新的APK文件,以完成整个SDK的接入过程,从而极大的减少了SDK接入的工作量。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中,在Android APK中植入代码的便捷方法,步骤如下:
(1)反向操作:将APK中文件处理成反向操作中的工程
1)Assets目录解压后文件直接使用,无需处理;
2)res和resources.arsc内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)Classes.dex通过dex2smali工具解析成smali文件夹中内容;
4)AndroidManifest.xml文件通过Axml2xml格式解析工具解析成XML,并通过上述对应的解析后,反向工程进行二次编辑;
(2)二次编辑:对步骤(1)中生成的反向工程中各类文件进行增删改的操作,各个资源增删改之后符合原格式的相关规范,添加代码,将代码转换为smali格式加入;
(3)编译操作:将反向工程编译成新APK
1)lAssets目录无需处理,放置在相对应的位置;
2)lRes目录中的内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)lSmali文件夹通过dex2smali工具解析成dex文件中内容;
4)lAndroidManifest.xml文件通过Axml2xml格式解析工具解析成AXML。
(4)各个文件还原后,将文件按对应目录打包成APK,利用SDK自带的JarSigner重新对APK包进行签名;
(5)重新签名后,新的APK接口即可正式使用。
本发明通过解压APK,并针对APK中不同文件格式使用不同的反向方法处理,生成新的文件格式,将针对此操作得到的内容称为反向工程。反向工程中的文件具有可以进行二次编辑操作的特性。在此基础上,将需要植入的代码,以反向工程中对应文件的编码方式插入到反工程中去,即完成了相关代码植入的工作。代码植入完成后利用本方法中提供的相关技术,将反向工程文件重新编译成APK中所支持的文件格式,从而得到新的APK文件,至此完成整个SDK的接入过程。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (1)
1.一种在Android APK中植入代码的便捷方法,其特征在于,步骤如下:
(1)反向操作:将APK中文件处理成反向操作中的工程
1)Assets目录解压后文件直接使用,无需处理;
2)res和resources.arsc内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)Classes.dex通过dex2smali工具解析成smali文件夹中内容;
4)AndroidManifest.xml文件通过Axml2xml格式解析工具解析成XML,并通过上述对应的解析后,反向工程进行二次编辑;
(2)二次编辑:对步骤(1)中生成的反向工程中各类文件进行增删改的操作,各个资源增删改之后符合原格式的相关规范,添加代码,将代码转换为smali格式加入;
(3)编译操作:将反向工程编译成新APK
1)lAssets目录无需处理,放置在相对应的位置;
2)lRes目录中的内容通过Android SDK自带的APPT工具解析成res目录中内容;
3)lSmali文件夹通过dex2smali工具解析成dex文件中内容;
4)lAndroidManifest.xml文件通过Axml2xml格式解析工具解析成AXML。
(4)各个文件还原后,将文件按对应目录打包成APK,利用SDK自带的JarSigner重新对APK包进行签名;
(5)重新签名后,新的APK接口即可正式使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610394092.5A CN107463420A (zh) | 2016-06-02 | 2016-06-02 | 一种在Android APK中植入代码的便捷方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610394092.5A CN107463420A (zh) | 2016-06-02 | 2016-06-02 | 一种在Android APK中植入代码的便捷方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107463420A true CN107463420A (zh) | 2017-12-12 |
Family
ID=60545204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610394092.5A Pending CN107463420A (zh) | 2016-06-02 | 2016-06-02 | 一种在Android APK中植入代码的便捷方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463420A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595187A (zh) * | 2018-03-27 | 2018-09-28 | 北京美好人生伙伴信息技术有限公司 | 安卓安装包集成软件开发工具包的法、装置及存储介质 |
CN109657488A (zh) * | 2019-02-26 | 2019-04-19 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
CN112087647A (zh) * | 2020-09-09 | 2020-12-15 | 北京明略昭辉科技有限公司 | 一种广告监测方法、装置、电子设备及介质 |
CN112379890A (zh) * | 2020-12-04 | 2021-02-19 | 深圳麦风科技有限公司 | Whatsapp的数据拷贝方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
CN103413076A (zh) * | 2013-08-27 | 2013-11-27 | 北京理工大学 | 一种Android应用程序分块保护的方法 |
CN103577747A (zh) * | 2013-10-16 | 2014-02-12 | 北京奇虎科技有限公司 | 移动设备隐私保护装置及方法 |
WO2014087407A1 (en) * | 2012-12-06 | 2014-06-12 | Integrity Project Ltd | System and methods thereof for safe compilation of code into embedded processing systems |
CN104102880A (zh) * | 2014-06-30 | 2014-10-15 | 华中科技大学 | 一种检测Android权限提升攻击的应用程序重写方法和系统 |
CN105550540A (zh) * | 2014-10-31 | 2016-05-04 | 中国移动通信集团江苏有限公司 | 一种同质化应用的检测方法和装置 |
-
2016
- 2016-06-02 CN CN201610394092.5A patent/CN107463420A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014087407A1 (en) * | 2012-12-06 | 2014-06-12 | Integrity Project Ltd | System and methods thereof for safe compilation of code into embedded processing systems |
CN103365699A (zh) * | 2012-12-21 | 2013-10-23 | 北京安天电子设备有限公司 | 基于apk的系统api和运行时字符串提取方法及系统 |
CN103413076A (zh) * | 2013-08-27 | 2013-11-27 | 北京理工大学 | 一种Android应用程序分块保护的方法 |
CN103577747A (zh) * | 2013-10-16 | 2014-02-12 | 北京奇虎科技有限公司 | 移动设备隐私保护装置及方法 |
CN104102880A (zh) * | 2014-06-30 | 2014-10-15 | 华中科技大学 | 一种检测Android权限提升攻击的应用程序重写方法和系统 |
CN105550540A (zh) * | 2014-10-31 | 2016-05-04 | 中国移动通信集团江苏有限公司 | 一种同质化应用的检测方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595187A (zh) * | 2018-03-27 | 2018-09-28 | 北京美好人生伙伴信息技术有限公司 | 安卓安装包集成软件开发工具包的法、装置及存储介质 |
CN109657488A (zh) * | 2019-02-26 | 2019-04-19 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
CN109657488B (zh) * | 2019-02-26 | 2021-09-28 | 北京智游网安科技有限公司 | 一种资源文件加密处理方法、智能终端及存储介质 |
CN112087647A (zh) * | 2020-09-09 | 2020-12-15 | 北京明略昭辉科技有限公司 | 一种广告监测方法、装置、电子设备及介质 |
CN112379890A (zh) * | 2020-12-04 | 2021-02-19 | 深圳麦风科技有限公司 | Whatsapp的数据拷贝方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463420A (zh) | 一种在Android APK中植入代码的便捷方法 | |
CN107463359A (zh) | 一种在iOS ipa包植入代码的便捷方法 | |
CN103530137B (zh) | 一种Java web应用部署方法及装置 | |
CN103885925A (zh) | 一种xbrl实例文档的封装方法 | |
CN104317589A (zh) | 一种用于加载动态链接库的代码自动生成方法及装置 | |
CN102855350B (zh) | 工程图的自动出图方法及系统 | |
CN111209001A (zh) | 批量生成安卓各渠道apk的方法、系统、设备和介质 | |
CN102004790A (zh) | 一种高吞吐量数据报表导出的方法 | |
CN104184814A (zh) | 嵌入式固件差分升级的文件生成和合成的方法和系统 | |
CN105183476B (zh) | 一种跨平台应用程序的构建方法和装置 | |
CN105550165A (zh) | 可将网页文章导入网页文本编辑器的插件及方法 | |
CN104572594A (zh) | 动态pdf实时生成方法 | |
CN101763072A (zh) | 数控加工代码的转换方法和装置 | |
CN103077038B (zh) | 动态生成和编译.net项目的方法 | |
CN106227575A (zh) | 一种生成与解析文本文件的方法 | |
CN104331418A (zh) | 一种基于数据库管理的物料自动编码方法 | |
CN103309849A (zh) | 一种基于OpenXML的docx文档创建和修改方法 | |
CN103984539A (zh) | 一种家电设备运行方法及系统 | |
CN1916844A (zh) | 数据打包及其解包的方法 | |
CN104123166A (zh) | 一种非Xcode环境下ipa安装包生成方法 | |
CN106610898B (zh) | 一种基于JPF的Java代码SSA单路径的生成方法 | |
CN102541903A (zh) | Csv to xls格式转换方式 | |
CN104484168A (zh) | 一种对比Excel差异的方法及系统 | |
CN107563060A (zh) | 利用Skill程序实现PCB板快速自动Gerberout的方法及系统 | |
CN106325852A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171212 |