CN110276174A - 基于安卓的双系统终端防止apk二次打包运行方法 - Google Patents

基于安卓的双系统终端防止apk二次打包运行方法 Download PDF

Info

Publication number
CN110276174A
CN110276174A CN201910526146.2A CN201910526146A CN110276174A CN 110276174 A CN110276174 A CN 110276174A CN 201910526146 A CN201910526146 A CN 201910526146A CN 110276174 A CN110276174 A CN 110276174A
Authority
CN
China
Prior art keywords
apk
dynamic base
android
value
program
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.)
Withdrawn
Application number
CN201910526146.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.)
Fuzhou Institute Of Data Technology Co Ltd
Original Assignee
Fuzhou Institute Of Data Technology 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 Fuzhou Institute Of Data Technology Co Ltd filed Critical Fuzhou Institute Of Data Technology Co Ltd
Priority to CN201910526146.2A priority Critical patent/CN110276174A/zh
Publication of CN110276174A publication Critical patent/CN110276174A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

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)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开基于安卓的双系统终端防止apk二次打包运行方法,利用二次打包后相关apk程序md5值会发生改变的特性,在apk程序嵌入动态库并在底层系统部署校验程序和基准md5值;进而,交互系统上的apk启动时由动态库获取apk程序的md5值并传输值底层系统的校验程序上,校验程序将接收的md5值与预存在底层系统指定位置的对应apk程序的基准md5值作比较,一旦比较不一致,则通知结束该apk程序的运行。本发明是让apk程序反编译后无法运行,使得apk程序不容易被干扰和破解。

Description

基于安卓的双系统终端防止apk二次打包运行方法
技术领域
本发明涉及基于安卓的双系统终端防止apk二次打包运行方法。
背景技术
在现有的带安卓的双系统终端上,通常是以android做为一个交互系统,会集成很多的apk软件,这些apk软件往往会被人从终端上导出后,进行分析,然后二次打包,然后就成了竞争对后的产品。
发明内容
本发明的目的在于提供基于安卓的双系统终端防止apk二次打包运行方法。
本发明采用的技术方案是:
基于安卓的双系统终端防止apk二次打包运行方法,双系统终端中安卓作为交互系统且另一系统作为底层系统,方法包括以下步骤:
步骤1,利用安卓的jni技术生成一具有通信功能的动态库,并将该动态库编译进APK程序中,
步骤2,在双系统终端上将允许安装的apk程序的基准md5值事先写入到底层系统的指定位置,同时在底层系统上预装校验程序,校验程序与动态库之间无线通信连接;
步骤3,apk程序启动时动态库获取安卓交互系统中程序目录下该APK的md5值,
步骤4,动态库将读取的APK的md5值传输至底层系统的校验程序;
步骤5,校验程序获取其指定位置存储的该APK程序的基准md5值,
步骤6,校验程序比较基准md5值与动态库传输的md5值是否一致;并反馈比较结果至动态库;
步骤7,动态库基于比较结果进行相应的处理;当md5值比较一致时,动态库允许该apk程序继续运行;否则,动态库结束该apk程序的运行。
进一步地,所述双系统终端的交互系统为安卓系统,底层系统为Linux系统或Windows系统。
进一步地,步骤1中动态库采用蓝牙或socket与底层系统建立无线通信。
进一步地,步骤1中的动态库为采用c或c++编写的可执行程序改名为.so的动态库。
进一步地,步骤2中的校验程序为采用c或c++编写的可执行程序。
进一步地,步骤3中apk程序启动时自动将动态库先加载至内存。
本发明采用以上技术方案,利用二次打包后相关apk程序md5值会发生改变的特性,在apk程序嵌入动态库并在底层系统部署校验程序和基准md5值;进而,交互系统上的apk启动时由动态库获取apk程序的md5值并传输值底层系统的校验程序上,校验程序将接收的md5值与预存在底层系统指定位置的对应apk程序的基准md5值作比较,一旦比较不一致,则通知结束该apk程序的运行。本发明的校验程序运行在单独的进程中,不行影响交互系统上apk程序的运行。现有技术中采用加固来防止二次打包,其需要加载dex插件进行运行,影响一定的性能;相对于现有技术而言,本发明无需要加载插件,性能更优。若该apk程序在非授权的终端上反编译并二次打包后,即使安装了也无法运行,由于底层系统没有对应的校验程序和基准md5,动态库将结束apk程序的运行,进而无法对其进行动态调试。现在的混淆工具和加固工具都是使得apk无法二次打包,本发明是让apk反编译后,无法运行。本发明使得apk程序不容易被干扰和破解。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为本发明基于安卓的双系统终端防止apk二次打包运行方法的流程示意图。
具体实施方式
如图1所示,本发明公开了基于安卓的双系统终端防止apk二次打包运行方法,双系统终端中安卓作为交互系统且另一系统作为底层系统,方法包括以下步骤:
步骤1,利用安卓的jni技术生成一具有通信功能的动态库,并将该动态库编译进APK程序中,
步骤2,在双系统终端上将允许安装的apk程序的基准md5值事先写入到底层系统的指定位置,同时在底层系统上预装校验程序,校验程序与动态库之间无线通信连接;
步骤3,apk程序启动时动态库获取安卓交互系统中程序目录下该APK的md5值,
步骤4,动态库将读取的APK的md5值传输至底层系统的校验程序;
步骤5,校验程序获取其指定位置存储的该APK程序的基准md5值,
步骤6,校验程序比较基准md5值与动态库传输的md5值是否一致,并反馈比较结果至动态库;
步骤7,动态库基于比较结果进行相应的处理;当md5值比较一致时,动态库允许该apk程序继续运行;否则,动态库结束该apk程序的运行。
进一步地,所述双系统终端的交互系统为安卓系统,底层系统为Linux系统或Windows系统。
进一步地,步骤1中动态库采用蓝牙或socket与底层系统建立无线通信。
进一步地,步骤1中的动态库为采用c或c++编写的可执行程序改名为.so的动态库。
进一步地,步骤2中的校验程序为采用c或c++编写的可执行程序。
进一步地,步骤3中apk程序启动时自动将动态库先加载至内存。
下面就本发明的工作原理做详细的说明:
以交互系统时安卓系统,底层系统时Linux系统的双系统终端为例。
(1)在授权的双系统终端上的将授权要安装apk程序的基准md5写入到linux系统的某个位置上。
(2)事先用编程语言生成一个用于校验的可执行程序,如用c/c++生成一个可执行的程序,该校验程序的作用是先从liunx读取预存的基准md5值,判断后续apk的动态库传输的对应apk的md5值是否有被修改过,该校验程序可记为exe_A。
(3)同时利用android的jni技术,用c/c++生成一个可执行的程序的作用是与exe_A进行通信,通信方程有蓝牙、socket等,记为an_exe_A,an_exe_A这个程序的作用是将apk的md5值传递增给exe_A,并由exe_A比较判断完后再将结果传递回来。
(4)将an_exe_A的后缀名改为.so使其变为一个动态库,记为a.so;然后将该动态库放入android的apk程序中,一起编译进apk程序中;当apk程序启动时会自动将动态库加载到内存中。由于一般需授权的apk程序均为系统apk,所以apk程序有权限给a.so赋于可执行的权限,使得动态库能读写系统文件的权限。apk程序的其他部分变成一个可以执行的程序再将其运行起来。当a.so运行起来后,先从交互系统程序目录,即/system/app/目录下读取相应apk的md5值,如/system/app/tcm/tcm.apk,然后a.so将该md5值传递给exe_A,exe_A判断和存放在linux上的md5值是否一致,如果不一致,则让动态库结束相应apk的进程。
本发明采用以上技术方案,利用二次打包后相关apk程序md5值会发生改变的特性,在apk程序嵌入动态库并在底层系统部署校验程序和基准md5值;进而,交互系统上的apk启动时由动态库获取apk程序的md5值并传输值底层系统的校验程序上,校验程序将接收的md5值与预存在底层系统指定位置的对应apk程序的基准md5值作比较,一旦比较不一致,则通知结束该apk程序的运行。本发明的校验程序运行在单独的进程中,不行影响交互系统上apk程序的运行。现有技术中采用加固来防止二次打包,其需要加载dex插件进行运行,影响一定的性能;相对于现有技术而言,本发明无需要加载插件,性能更优。若该apk程序在非授权的终端上反编译并二次打包后,即使安装了也无法运行,由于底层系统没有对应的校验程序和基准md5,动态库将结束apk程序的运行,进而无法对其进行动态调试。现在的混淆工具和加固工具都是使得apk无法二次打包,本发明是让apk反编译后,无法运行。本发明使得apk程序不容易被干扰和破解。

Claims (6)

1.基于安卓的双系统终端防止apk二次打包运行方法,双系统终端中安卓系统作为交互系统且另一系统作为底层系统,其特征在于:方法包括以下步骤:
步骤1,利用安卓的jni技术生成一具有通信功能的动态库,并将该动态库编译进APK程序中,
步骤2,在双系统终端上将允许安装的apk程序的基准md5值事先写入到底层系统的指定位置,同时在底层系统上预装校验程序,校验程序与动态库之间无线通信连接;
步骤3,apk程序启动时动态库获取安卓交互系统中程序目录下该APK的md5值,
步骤4,动态库将读取的APK的md5值传输至底层系统的校验程序;
步骤5,校验程序获取其指定位置存储的该APK程序的基准md5值,
步骤6,校验程序比较基准md5值与动态库传输的md5值是否一致,并反馈比较结果至动态库;
步骤7,动态库基于比较结果进行相应的处理;当md5值比较一致时,动态库允许该apk程序继续运行;否则,动态库结束该apk程序的运行。
2.根据权利要求1所述的基于安卓的双系统终端防止apk二次打包运行方法,其特征在于:所述双系统终端的交互系统为安卓系统,底层系统为Linux系统或Windows系统。
3.根据权利要求1所述的基于安卓的双系统终端防止apk二次打包运行方法,其特征在于:步骤1中动态库采用蓝牙或socket与底层系统建立无线通信。
4.根据权利要求1所述的基于安卓的双系统终端防止apk二次打包运行方法,其特征在于:步骤1中的动态库为采用c或c++编写的可执行程序改名为.so的动态库。
5.根据权利要求1所述的基于安卓的双系统终端防止apk二次打包运行方法,其特征在于:步骤2中的校验程序为采用c或c++编写的可执行程序。
6.根据权利要求1所述的基于安卓的双系统终端防止apk二次打包运行方法,其特征在于:步骤3中apk程序启动时自动将动态库先加载至内存。
CN201910526146.2A 2019-06-18 2019-06-18 基于安卓的双系统终端防止apk二次打包运行方法 Withdrawn CN110276174A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910526146.2A CN110276174A (zh) 2019-06-18 2019-06-18 基于安卓的双系统终端防止apk二次打包运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910526146.2A CN110276174A (zh) 2019-06-18 2019-06-18 基于安卓的双系统终端防止apk二次打包运行方法

Publications (1)

Publication Number Publication Date
CN110276174A true CN110276174A (zh) 2019-09-24

Family

ID=67960997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910526146.2A Withdrawn CN110276174A (zh) 2019-06-18 2019-06-18 基于安卓的双系统终端防止apk二次打包运行方法

Country Status (1)

Country Link
CN (1) CN110276174A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099776A (zh) * 2020-09-17 2020-12-18 重庆轩进软件有限公司 安卓系统防止二次打包修改方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN106155753A (zh) * 2016-08-22 2016-11-23 广东欧珀移动通信有限公司 一种应用程序安装方法、装置和终端
CN109687974A (zh) * 2018-12-26 2019-04-26 努比亚技术有限公司 Apk验证方法、装置、移动终端及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
WO2015192637A1 (zh) * 2014-06-17 2015-12-23 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN106155753A (zh) * 2016-08-22 2016-11-23 广东欧珀移动通信有限公司 一种应用程序安装方法、装置和终端
CN109687974A (zh) * 2018-12-26 2019-04-26 努比亚技术有限公司 Apk验证方法、装置、移动终端及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099776A (zh) * 2020-09-17 2020-12-18 重庆轩进软件有限公司 安卓系统防止二次打包修改方法

Similar Documents

Publication Publication Date Title
CN103399761B (zh) 固件烧录方法及其装置
US9177136B2 (en) Information device, program, method, and computer readable recording medium for preventing execution of malicious program code
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
US9323646B2 (en) Hardware security module with means to selectively activate or inhibit debugging and corresponding debugging method
JP7134818B2 (ja) 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成
US20080313401A1 (en) Device for Processing Information and Working Method Thereof
CN103067392A (zh) 一种基于Android终端的安全访问控制方法
US11327739B2 (en) Method and apparatus for improving runtime performance after application update in electronic device
CN101510157B (zh) 一种输入法安装方法及装置
KR101875225B1 (ko) 가상 머신에 의한 실행을 위한 프로그래밍의 중간 코드의 보안 프로세스, 컴퓨터 프로그램 및 장치
WO2015127842A1 (zh) 信息安全设备实现多应用的方法、信息安全设备和系统
CN103019755A (zh) 嵌入式系统中多cpu的无线程序下载方法
CN110276174A (zh) 基于安卓的双系统终端防止apk二次打包运行方法
CN115098139A (zh) 固件更新方法、系统、下位机和存储介质
US8079026B2 (en) Job definition verification system, and method and program thereof
CN103885784A (zh) 具有安全模块可插拔功能的Android平台构建方法
JP2009506447A5 (zh)
US9953157B2 (en) Method and apparatus for protecting application program
CN107209815B (zh) 用于使用返回导向编程的代码混淆的方法
CN110276173A (zh) 带服务器的双系统终端防止apk二次打包运行方法
CN105335432A (zh) oracle数据库访问方法
CN112148709A (zh) 数据迁移方法、系统及存储介质
CN100363893C (zh) 加载系统及方法
US11716319B2 (en) Software deployment certification
CN112596751B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20190924

WW01 Invention patent application withdrawn after publication