CN107463420A - 一种在Android APK中植入代码的便捷方法 - Google Patents

一种在Android APK中植入代码的便捷方法 Download PDF

Info

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
Application number
CN201610394092.5A
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.)
Shenzhen Wisdom Spark Tech Co Ltd
Original Assignee
Shenzhen Wisdom Spark Tech 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 Shenzhen Wisdom Spark Tech Co Ltd filed Critical Shenzhen Wisdom Spark Tech Co Ltd
Priority to CN201610394092.5A priority Critical patent/CN107463420A/zh
Publication of CN107463420A publication Critical patent/CN107463420A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code 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 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接口即可正式使用。
CN201610394092.5A 2016-06-02 2016-06-02 一种在Android APK中植入代码的便捷方法 Pending CN107463420A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国移动通信集团江苏有限公司 一种同质化应用的检测方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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