CN109711154A - 一种基于Android应用apk文件的钩子框架技术 - Google Patents
一种基于Android应用apk文件的钩子框架技术 Download PDFInfo
- 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
- apk file
- hook
- 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
Links
- 238000005516 engineering process Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims abstract description 13
- 238000011068 loading method Methods 0.000 claims abstract description 9
- 230000000694 effects Effects 0.000 claims description 5
- 230000006837 decompression Effects 0.000 claims description 2
- 230000006399 behavior Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于Android应用apk文件的钩子框架技术,用于在设备免root的情况下对Android应用apk文件进行钩子操作,包括apk文件的合并方法以及对合并后的apk文件的动态加载方法,能够快速、稳定地实现钩子功能,可用于实现移动办公安全、军政保密工作、手机卫士、移动办公行为管理等功能。
Description
技术领域
本发明属于移动互联网安全领域,特别涉及一种基于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函数作为接口。
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)
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)
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 | 北京奇虎科技有限公司 | 一种应用程序监控方法及装置 |
-
2018
- 2018-12-29 CN CN201811631167.2A patent/CN109711154A/zh active Pending
Patent Citations (6)
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)
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 |
---|---|---|
US8099472B2 (en) | System and method for a mobile cross-platform software system | |
CN107992308B (zh) | 一种安卓终端应用程序的插件化管理方法 | |
CN103970563B (zh) | 动态加载安卓类的方法 | |
Bommisetty et al. | Practical mobile forensics | |
US8839436B2 (en) | Method and system for antivirus by SIM card combined with cloud computing | |
US8701195B2 (en) | Method for antivirus in a mobile device by using a mobile storage and a system thereof | |
US20150106942A1 (en) | Mobile device application interaction reputation risk assessment | |
US10176317B2 (en) | Method and apparatus for managing super user password on smart mobile terminal | |
CN103123588A (zh) | 一种获取差分升级补丁的方法及系统 | |
KR20150044490A (ko) | 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법 | |
US20180107493A1 (en) | Synchronous control method and device via external apparatus | |
Odom et al. | Forensic inspection of sensitive user data and artifacts from smartwatch wearable devices | |
CN106453413B (zh) | 在多系统中应用SELinux安全策略的方法及装置 | |
Tso et al. | iPhone social networking for evidence investigations using iTunes forensics | |
CN104125547A (zh) | 处理短信的方法及短信处理装置 | |
CN109711154A (zh) | 一种基于Android应用apk文件的钩子框架技术 | |
CN103389905A (zh) | 插件加载方法及系统 | |
CN115374481A (zh) | 数据脱敏处理的方法、装置、存储介质及电子设备 | |
CN109284590B (zh) | 访问行为安全防护的方法、设备、存储介质及装置 | |
CN115357762A (zh) | 一种数据校验方法、装置、存储介质及电子设备 | |
CN113055393B (zh) | 一种安全服务化方法、装置以及设备 | |
US20180218165A1 (en) | Method for Locking Sensitive Data in the Cloud Based on Refactoring Technology | |
CN116136844A (zh) | 实体标识信息的生成方法、装置、介质及电子设备 | |
Dellutri et al. | MIAT-WM5: forensic acquisition for Windows mobile PocketPC | |
CN105808697A (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 |