CN109711154A - 一种基于Android应用apk文件的钩子框架技术 - Google Patents

一种基于Android应用apk文件的钩子框架技术 Download PDF

Info

Publication number
CN109711154A
CN109711154A CN201811631167.2A CN201811631167A CN109711154A CN 109711154 A CN109711154 A CN 109711154A CN 201811631167 A CN201811631167 A CN 201811631167A CN 109711154 A CN109711154 A CN 109711154A
Authority
CN
China
Prior art keywords
apk
file
hook
apk file
original
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
CN201811631167.2A
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.)
Upper Marine Infotech Share Co Ltd Of Interrogating
Original Assignee
Upper Marine Infotech Share Co Ltd Of Interrogating
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 Upper Marine Infotech Share Co Ltd Of Interrogating filed Critical Upper Marine Infotech Share Co Ltd Of Interrogating
Priority to CN201811631167.2A priority Critical patent/CN109711154A/zh
Publication of CN109711154A publication Critical patent/CN109711154A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于Android应用apk文件的钩子框架技术,用于在设备免root的情况下对Android应用apk文件进行钩子操作,包括apk文件的合并方法以及对合并后的apk文件的动态加载方法,能够快速、稳定地实现钩子功能,可用于实现移动办公安全、军政保密工作、手机卫士、移动办公行为管理等功能。

Description

一种基于Android应用apk文件的钩子框架技术
技术领域
本发明属于移动互联网安全领域,特别涉及一种基于Android应用apk文件的钩子框架技术。
背景技术
随着移动互联网的高速发展,各种手机应用(App)如雨后春笋般到来,例如移动支付的微信和支付宝,移动出行的膜拜和滴滴,以及银行移动应用、电信营业厅等,使得人们足不出户就可以满足日常生活中的各类需求,给人们的生活带来了极大的便利。然而,还存在某些手机应用,类似PC时代的流氓软件,偷发短信、偷跑流量、收集用户信息,给用户带来了极大的困扰和风险。
现有技术中,监控和修改一款移动应用的行为需要用到函数钩子(hook)技术,使用钩子技术可以对手机应用的关键行为进行管控,从而可以实现手机管家、文件透明加解密、移动办公行为管控等功能。目前主流的钩子框架是基于Xposed框架的钩子技术,Xposed是一套开放源代码的在Android高权限模式下运行的框架服务,可以在不修改apk文件的情况下修改程序的运行,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运行。但是,这套框架需要设备打开root权限才可安装使用。随着Android系统的换代升级,系统也越来越安全,Android 8以上已经很难被root,因此基于root环境的Xposed框架即将成为历史,非root环境下的钩子框架渐渐成为主流。
发明内容
有鉴于现有技术的上述缺陷,本发明的目的在于提供一种简单、小巧、易用、稳定的非root环境下的钩子框架技术,用于在设备免root的情况下对Android应用apk文件进行钩子操作。
为了达到上述目的,本发明提供了一种基于Android应用apk文件的钩子框架技术,包括apk文件的合并方法以及对合并后的apk文件的动态加载方法,能够快速、稳定地实现钩子功能,可用于实现移动办公安全、军政保密工作、手机卫士、移动办公行为管理等功能。
本发明的基于Android应用apk文件的钩子框架技术首先包括apk文件的合并方法,包括以下步骤:
第一步、将原始apk文件进行解压,取得所有资源并替换所有代码;
第二步、修改AndroidManifest.xml文件,将原始apk的入口类修改为壳apk的入口类;
第三步、压缩文件以形成壳apk文件,并对其进行签名;
第四步、合并原始apk文件和壳apk文件,由于壳apk仅充当一个运行环境,最终要运行的还是原始apk,因此需要将两个apk文件合并为一个apk文件,合并后的apk文件包括两个部分:原始apk和壳apk。
进一步地,第一步中的解压通过使用unzip命令来实现。
进一步地,第一步中的替换所有代码通过替换class.dex文件来实现。
进一步地,第二步中的压缩文件通过使用zip命令来实现。
进一步地,第三步中的签名通过使用java自带的jarsigner来实现。
进一步地,第四步中的合并的流程为标出原始apk文件和壳apk文件共同拥有的文件,然后从壳apk文件中删除共同拥有的文件的FileRecord,并将相应的DirEntry指向原始apk文件相应的FileRecord。
本发明的基于Android应用apk文件的钩子框架技术还包括对合并后的apk文件的动态加载方法,包括以下步骤:
以壳apk作为母体运行,将原始apk释放到设备的存储目录,然后将原始apk加载到内存,提取原始apk中的class并注入壳apk,使壳apk与原始apk融为一体,这时就可以调用原始apk的application让其正式启动。在启动原始apk前可以对其进行钩子操作。
进一步地,上述钩子操作通过java hook引擎和/或native hook引擎来实现。
进一步地,java hook引擎兼容其它框架接口,其通过hook Activity onPause函数作为接口。
本发明的有益技术效果至少体现在以下几个方面:
(1)采用对移动应用apk文件加壳的方式来启动移动应用的原始apk,使用的是原生系统的功能,避免了模拟各种系统服务,从而保证了稳定性。
(2)保留了移动应用的原始apk文件,壳程序仅作为母体负责启动移动应用的原始apk,并不修改原始apk文件。
(3)将壳apk与移动应用的原始apk进行资源合并,减小加壳后的apk文件的体积大小,从而减少对设备资源的占用。
(4)提供了标准的钩子接口框架,使用通用的引擎来实现钩子操作,兼容性强。
附图说明
图1是本发明一个较佳实施例的apk文件的合并方法的流程示意图;
图2是本发明一个较佳实施例的原始apk文件的示意图;
图3是本发明一个较佳实施例的合并后的apk文件的示意图;
图4是本发明一个较佳实施例的对合并后的apk文件的动态加载方法的流程示意图;
图5是本发明一个较佳实施例的java hook引擎的hook Activity onPause函数所使用的接口代码。
具体实施方式
下面对本发明的实施例作详细说明,下述的实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明的一个较佳实施例中,本发明的基于Android应用apk文件的钩子框架技术,包括apk文件的合并方法以及对合并后的apk文件的动态加载方法。
其中,apk文件的合并方法的流程如图1所示,包括以下步骤:
第一步、使用unzip命令将原始apk文件进行解压,取得所有资源并通过替换class.dex来替换所有代码;
第二步、修改AndroidManifest.xml文件,此文件描述了原始apk的入口类,将其修改为壳apk的入口类;
第三步、使用zip命令压缩文件以形成壳apk文件,使用java自带的jarsigner对其进行签名;
第四步、合并原始apk文件和壳apk文件,由于壳apk仅充当一个运行环境,最终要运行的还是原始apk,因此需要将两个apk文件合并为一个apk文件。合并的流程为标出原始apk文件和壳apk文件共同拥有的文件,然后从壳apk文件中删除共同拥有的文件的FileRecord,并将相应的DirEntry指向原始apk文件相应的FileRecord。合并前的原始apk文件如图2所示;合并后的apk文件如图3所示,其包括两个部分:原始apk和壳apk,其中FileRecord 2和FileRecord 3为两者共同拥有的文件。
本发明的基于Android应用apk文件的钩子框架技术还包括合并后的apk文件的动态加载方法,其流程如图4所示,包括以下步骤:
以壳apk作为母体,运行后首先将原始apk释放到设备的存储目录,然后将原始apk加载到内存,提取原始apk中的class并注入壳apk,使壳apk与原始apk融为一体,这时就可以调用原始apk的application让其正式启动。在启动原始apk前可以对其进行钩子操作,包括java hook引擎和/或native hook引擎。
其中,java hook引擎兼容其它框架接口,其hook Activity onPause函数所使用的接口如图5所示。
本发明为了让壳apk与原始apk表现一致,壳apk使用原始应用apk的各种资源,仅需使用自己的代码部分。因此,通过本发明合并apk文件并动态加载处理后的apk文件与原始apk文件的表现形式完全一致,壳兼容Android 2.1到Android 9所有安卓系统,可以让开发人员通过钩子技术实现各种功能,如透明加解密、手机管家、移动办公行为管理等应用场景。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的试验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (8)

1.一种基于Android应用apk文件的钩子框架技术,用于在设备免root的情况下对Android应用apk文件进行钩子操作,其特征在于,包括apk文件的合并方法以及对合并后的apk文件的动态加载方法;其中,
所述apk文件的合并方法包括以下步骤:
第一步、将原始apk文件进行解压,取得所有资源并替换所有代码;
第二步、修改AndroidManifest.xml文件,将原始apk的入口类修改为壳apk的入口类;
第三步、压缩文件以形成壳apk文件,并对其进行签名;
第四步、合并所述原始apk文件和所述壳apk文件以形成所述合并后的apk文件,所述合并后的apk文件包括所述原始apk和所述壳apk;
对所述合并后的apk文件的所述动态加载方法包括以下步骤:
以所述壳apk作为母体运行,将所述原始apk释放到所述设备的存储目录,然后将所述原始apk加载到内存,提取所述原始apk中的class并注入所述壳apk,调用所述原始apk的application让所述原始apk启动;其中,在所述原始apk启动前对其进行钩子操作。
2.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,第一步中的解压通过使用unzip命令来实现。
3.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,第一步中的替换所有代码通过替换class.dex文件来实现。
4.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,第二步中的压缩文件通过使用zip命令来实现。
5.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,第三步中的签名通过使用java自带的jarsigner来实现。
6.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,第四步中的合并的流程为标出所述原始apk文件和所述壳apk文件共同拥有的文件,然后从所述壳apk文件中删除所述共同拥有的文件的FileRecord,并将相应的DirEntry指向所述原始apk文件相应的FileRecord。
7.如权利要求1所述的基于Android应用apk文件的钩子框架技术,其特征在于,所述钩子操作通过java hook引擎和/或native hook引擎来实现。
8.如权利要求7所述的基于Android应用apk文件的钩子框架技术,其特征在于,所述java hook引擎通过hook Activity onPause函数作为接口。
CN201811631167.2A 2018-12-29 2018-12-29 一种基于Android应用apk文件的钩子框架技术 Pending CN109711154A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811631167.2A CN109711154A (zh) 2018-12-29 2018-12-29 一种基于Android应用apk文件的钩子框架技术

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811631167.2A CN109711154A (zh) 2018-12-29 2018-12-29 一种基于Android应用apk文件的钩子框架技术

Publications (1)

Publication Number Publication Date
CN109711154A true CN109711154A (zh) 2019-05-03

Family

ID=66259477

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811631167.2A Pending CN109711154A (zh) 2018-12-29 2018-12-29 一种基于Android应用apk文件的钩子框架技术

Country Status (1)

Country Link
CN (1) CN109711154A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273967A (zh) * 2019-12-30 2020-06-12 上海上讯信息技术股份有限公司 适用于Android系统的远程钩子设置方法、装置及电子设备
CN112131193A (zh) * 2020-09-17 2020-12-25 上海上讯信息技术股份有限公司 一种应用程序压缩的方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577747A (zh) * 2013-10-16 2014-02-12 北京奇虎科技有限公司 移动设备隐私保护装置及方法
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104462879A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序免Root运行控制方法与装置
CN105740701A (zh) * 2016-02-01 2016-07-06 中国人民大学 一种Android平台应用执行环境重构方法及装置
CN106897609A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种对动态加载的应用程序进行监控的方法及装置
CN106897607A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种应用程序监控方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577747A (zh) * 2013-10-16 2014-02-12 北京奇虎科技有限公司 移动设备隐私保护装置及方法
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104462879A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序免Root运行控制方法与装置
CN106897609A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种对动态加载的应用程序进行监控的方法及装置
CN106897607A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种应用程序监控方法及装置
CN105740701A (zh) * 2016-02-01 2016-07-06 中国人民大学 一种Android平台应用执行环境重构方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111273967A (zh) * 2019-12-30 2020-06-12 上海上讯信息技术股份有限公司 适用于Android系统的远程钩子设置方法、装置及电子设备
CN112131193A (zh) * 2020-09-17 2020-12-25 上海上讯信息技术股份有限公司 一种应用程序压缩的方法及设备
CN112131193B (zh) * 2020-09-17 2023-04-07 上海上讯信息技术股份有限公司 一种应用程序压缩的方法及设备

Similar Documents

Publication Publication Date Title
CN106875156B (zh) 一种通用化智能审核平台及其审核方法
US11093216B2 (en) Automatic discovery of microservices from monolithic applications
CN103403669B (zh) 使app变得安全的方法和防止app损坏设备的方法
CN110058863A (zh) Docker容器的构建方法、装置、设备及存储介质
CN105046146B (zh) 一种安卓系统的资源访问方法
CN104134036B (zh) 一种获取Root权限的方法及装置
CN109034720A (zh) 一种适用于电力调度业务管理的移动办公平台及装置
CN103970563B (zh) 动态加载安卓类的方法
CN111614727B (zh) 监管沙盒架构、监管方法、装置及存储介质
CN109711154A (zh) 一种基于Android应用apk文件的钩子框架技术
CN109586963A (zh) 一种云仿真平台安全保障系统、服务器、终端以及方法
CN110032392A (zh) 服务治理方法及装置、存储介质和电子设备
CN110058878A (zh) 基于智能合约的Fabric区块链配置方法及系统
CN102902911A (zh) 一种在Java虚拟机中安全运行第三方代码的方法
CN109784039A (zh) 移动终端安全运行空间的构建方法、电子设备、存储介质
CN104063303B (zh) 一种获取和释放root权限的方法
CN105975333B (zh) 应用程序运行控制的方法及装置
CN104123155B (zh) 一种基于web的业务系统页面层开发平台及方法
US20100179982A1 (en) Method for auditing the data of a computer application of a terminal
CN108667857A (zh) 一种安全策略维护方法及系统、服务端、客户端
CN115878112A (zh) 一种多方复杂商业协议智能合约生成系统及其生成方法
CN101997873A (zh) 一种能力接入的方法和接入平台
CN106127573B (zh) 一种轻型化运营系统及方法
CN112596711A (zh) 一种基于Web系统的个性化权限管理设置方法及系统
CN113347609B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190503

RJ01 Rejection of invention patent application after publication