CN108399320B - 一种控制应用内功能运行的方法及装置 - Google Patents

一种控制应用内功能运行的方法及装置 Download PDF

Info

Publication number
CN108399320B
CN108399320B CN201810156658.XA CN201810156658A CN108399320B CN 108399320 B CN108399320 B CN 108399320B CN 201810156658 A CN201810156658 A CN 201810156658A CN 108399320 B CN108399320 B CN 108399320B
Authority
CN
China
Prior art keywords
signature information
application program
information
runtime
current
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.)
Active
Application number
CN201810156658.XA
Other languages
English (en)
Other versions
CN108399320A (zh
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201810156658.XA priority Critical patent/CN108399320B/zh
Publication of CN108399320A publication Critical patent/CN108399320A/zh
Application granted granted Critical
Publication of CN108399320B publication Critical patent/CN108399320B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

本申请提供一种控制应用内功能运行的方法及装置,方法包括:若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息;将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;若所述比对的结果一致,则允许响应所述操作。本申请可以保证运行的应用程序未被反编译,进而降低应用程序的使用风险,提高用户的信息安全性。

Description

一种控制应用内功能运行的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种控制应用内功能运行的方法及装置。
背景技术
随着移动终端技术的快速发展,各类应用程序大量涌现,对应用程序的盗版和重打包现象日益严重。例如,android系统中的安装包文件apk能够很容易地被一些反编译工具反编译为易于阅读的java代码,使得某些非法开发者可以实施对应用程序的盗版或核心功能的逆向工程,导致应用程序出现使用风险,甚至威胁到用户的信息安全。为了避免应用程序的反编译,现有技术中通常采用对apk进行加密的方式来对应用程序进行加固。然而,由于这种加密方式需要对apk进行二次打包,因此会影响应用程序的运行效率,并且会提高应用程序的经济成本。
发明内容
有鉴于此,本申请提供一种控制应用内功能运行的方法及装置,可以降低应用程序的使用风险,提高用户的信息安全性。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提出了一种控制应用内功能运行的方法,包括:
若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息;
将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;
若所述比对的结果一致,则允许响应所述操作。
在一实施例中,所述将所述当前签名信息与运行时签名信息进行比对,包括:
对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息;
获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
将所述第一加密签名信息与所述第二加密签名信息进行比对。
在一实施例中,所述将所述当前签名信息与运行时签名信息进行比对之前,所述方法还包括:
获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
在一实施例中,所述将所述当前签名信息与运行时签名信息进行比对之前,所述方法还包括:
获取所述应用程序的应用包管理对象;
从所述应用包管理对象中获取运行时包信息;
从所述运行时包信息中提取所述应用程序的运行时签名信息。
在一实施例中,所述方法还包括:
若所述比对的结果不一致,则禁止响应所述操作。
在一实施例中,所述方法还包括:
生成用于表示所述应用程序经过反编译的提示信息。
根据本申请的第二方面,提出了一种控制应用内功能运行的装置,包括:
当前签名信息获取模块,用于当检测到针对当前应用程序中功能控件的操作时,获取所述应用程序的当前签名信息;
签名信息比对模块,用于将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;
操作响应允许模块,用于当所述比对的结果一致时,允许响应所述操作。
在一实施例中,所述签名信息比对模块,包括:
签名信息加密单元,用于对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息;
第一签名获取单元,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名比对单元,用于将所述第一加密签名信息与所述第二加密签名信息进行比对。
在一实施例中,所述装置还包括:加密签名解密模块;所述加密签名解密模块,包括:
第二签名获取单元,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名解密单元,用于采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
在一实施例中,所述装置还包括:运行签名获取模块,所述运行签名获取模块包括:
管理对象获取单元,用于获取所述应用程序的应用包管理对象;
包信息获取单元,用于从所述应用包管理对象中获取运行时包信息;
运行签名提取单元,用于从所述运行时包信息中提取所述应用程序的运行时签名信息。
在一实施例中,所述装置还包括:
操作响应禁止模块,用于当所述比对的结果不一致时,禁止响应所述操作。
在一实施例中,所述装置还包括:
提示信息生成模块,用于生成用于表示所述应用程序经过反编译的提示信息。
根据本申请的第三方面,提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的控制应用内功能运行的方法。
由以上技术方案可见,本申请通过在检测到针对当前应用程序中功能控件的操作时,获取所述应用程序当前的签名信息,并将所述当前签名信息与运行时签名信息进行比对,进而在所述比对的结果一致时,确定所述应用程序未经过反编译,允许响应所述操作,可以保证运行的应用程序未被反编译,进而降低应用程序的使用风险,提高用户的信息安全性。
附图说明
图1是本申请一示例性实施例示出的一种控制应用内功能运行的方法的流程图;
图2是本申请一示例性实施例示出的如何比对当前签名信息和运行时签名信息的流程图;
图3是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;
图4是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;
图5是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;
图6是本申请一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;
图7是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;
图8是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;
图9是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;
图10是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一加密签名信息也可以被称为第二加密签名信息,类似地,第二加密签名信息也可以被称为第一加密签名信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
移动终端技术的快速发展使得各类应用程序大量涌现,同时,对应用程序的盗版和重打包现象日益严重。例如,android系统中的安装包文件apk能够很容易地被一些反编译工具反编译为易于阅读的java代码,使得某些非法开发者可以实施对应用程序的盗版或核心功能的逆向工程,导致应用程序出现使用风险,甚至威胁到用户的信息安全。为了避免应用程序的反编译,现有技术中通常采用对apk进行加密的方式来对应用程序进行加固。然而,由于这种加密方式需要对apk进行二次打包,因此会影响应用程序的运行效率,并且会提高应用程序的经济成本(需要向打包程序的第三方支付资金)。
有鉴于此,本申请旨在提供一种控制应用内功能运行的方法及装置,可以有效识别应用程序是否经过反编译,可以降低应用程序的使用风险,提高用户的信息安全性,摒弃现有的二次打包方式加固应用程序的方式。
图1是本申请一示例性实施例示出的一种控制应用内功能运行的方法的流程图。其中,该实施例可以应用于智能手机、平板电脑或台式电脑等终端设备。如图1所示,该方法包括如下步骤S101-S103:
S101:若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息。
在一实施例中,若终端设备检测到用户针对当前应用程序中的功能控件的操作(例如点击操作),则获取该应用程序的当前签名信息。
在一实施例中,开发人员可以预先从当前应用程序中的多个功能控件中选定需要检测的功能控件,例如可以选择当前应用程序的核心功能控件(即用于实现关键算法的功能控件),以实现控制应用程序的核心功能运行,本实施例对功能控件的具体选择方式不进行限定。
在一实施例中,上述当前签名信息为当前时刻获取的该应用程序的签名信息,由于签名信息是发送者才能产生的别人无法伪造的信息,因而该签名信息可以用于表征信息发送者的身份。
在一实施例中,上述功能控件可以包括应用程序中可以供用户进行点击、长按、拖动等操作的控件,例如为按钮、输入框、列表等,本实施例对此不进行限定。
值得说明的是,本实施例中检测针对应用程序中的功能控件的操作,目的是实现对应用程序进行控件级别的控制,即在限制应用程序的某一功能控件的同时不影响其他功能控件的正常使用。在此基础上,开发者可以根据实际需要设置需要限定的功能控件,例如支付宝应用程序,可以仅针对输入密码的功能控件进行控制,并非禁止用户使用该应用程序中的其他控件。
S102:将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方。
在一实施例中,在获取应用程序的当前签名信息后,可以将当前签名信息与运行时签名信息进行比对,进而可以根据比对的结果确定允许或禁止响应上述操作。
在一实施例中,上述将所述当前签名信息与运行时签名信息进行比对的方式还可以参见下述图2所示实施例,在此先不进行详述。
在一实施例中,上述运行时签名信息可以为预先获取并存储在终端设备本地的应用程序的签名信息(例如,在应用程序发布前获取的运行时签名信息signture),该运行时签名信息可以用于表征应用程序开发方的信息。
在一实施例中,上述运行时签名信息的获取方式还可以参见下述图4所示实施例,在此先不进行详述。
S103:若所述比对的结果一致,则允许响应所述操作。
在一实施例中,将所述当前签名信息与运行时签名信息进行比对后,即可获得所述比对的结果。若所述比对的结果一致,即所述当前签名信息与运行时签名信息相同,则可以确定上述应用程序未经过反编译,因而允许响应所述操作。相关技术中,终端设备检测到用户针对应用程序的操作后,将该操作事件向应用程序进行通知,以便应用程序响应该操作。
在一实施例中,上述允许响应所述操作包括:对该操作进行响应,例如,将上述操作事件向应用程序进行通知。
值得说明的是,上述获取所述应用程序的当前签名信息的方案可以采用准确率比较高的现有技术,本实施例对此不进行限定。
由上述技术方案可知,本实施例通过在检测到针对当前应用程序中功能控件的操作时,获取所述应用程序当前的签名信息,并将所述当前签名信息与运行时签名信息进行比对,进而在所述比对的结果一致时,确定所述应用程序未经过反编译,允许响应所述操作,可以保证运行的应用程序未被反编译,进而降低应用程序的使用风险,提高用户的信息安全性,摒弃现有的二次打包方式加固应用程序的方式。
图2是本申请一示例性实施例示出的如何比对当前签名信息和运行时签名信息的流程图;本实施例在上述实施例的基础上,以如何比对当前签名信息和运行时签名信息为例进行示例性说明。如图2所示,步骤S102中所述将所述当前签名信息与运行时签名信息进行比对,可以包括以下步骤S201-S203:
S201:对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息。
在一实施例中,在预先存储运行时签名信息时,考虑到被存储信息的安全性,可以存储上述运行时签名信息对应的第二加密签名信息,其中,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息。
因此,当获取到应用程序的当前签名信息后,可以对当前签名信息采用上述预设加密算法进行加密,得到第一加密签名信息。
在一实施例中,上述预设加密算法可以由开发者根据实际需要进行选择,如对称加密方法、非对称加密方法或哈希运算方法等,本实施例对此不进行限定。举例来说,可以采用哈希算法计算当前签名信息的哈希值(value),例如为a,并将该哈希值a作为上述第一加密签名信息。
S202:获取运行时签名信息对应的第二加密签名信息。
在一实施例中,可以预先将上述第二加密签名信息存储于终端设备本地。进而在需要比对当前签名信息与运行时签名信息时,可以从终端设备本地获取该运行时签名信息对应的第二加密签名信息,通过比对第一加密签名信息和第二加密签名信息来比对当前签名信息和运行时签名信息。
S203:将所述第一加密签名信息与所述第二加密签名信息进行比对。
在一实施例中,当获取到第一加密签名信息和第二加密签名信息后,即可将二者进行比对。由于对当前签名信息和运行时签名信息采用同样的加密方法进行加密,因而可以通过比对二者的加密信息,即比对第一加密签名信息和第二加密签名信息的方式来比对当前签名信息和运行时签名信息。
由上述技术方案可知,本实施例通过对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息,并获取运行时签名信息对应的第二加密签名信息,进而将所述第一加密签名信息与所述第二加密签名信息进行比对,可以实现将所述当前签名信息与运行时签名信息进行比对,并可以保证存储的运行时签名信息的安全性,进而实现后续根据比对的结果确定所述应用程序是否经过反编译,可以降低应用程序的使用风险,提高用户的信息安全性。
图3是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;如图3所示,该方法包括以下步骤S301-S305:
S301:若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息。
S302:获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息。
在一实施例中,上述预设加密算法可以由开发者根据实际需要进行选择,如对称加密方法、非对称加密方法或哈希运算方法等,本实施例对此不进行限定。
在一实施例中,在预先存储运行时签名信息时,考虑到被存储信息的安全性,可以存储上述运行时签名信息对应的第二加密签名信息,其中,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息。
S303:采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
在一实施例中,为了将所述当前签名信息与运行时签名信息进行比对,因而需要采用预设解密算法对所述第二加密签名信息进行解密,以得到所述运行时签名信息。
在一实施例中,可以在终端设备的可信任执行环境TEE中执行对所述第二加密签名信息进行解密的操作,以保证上述运行时签名信息的安全性。
在一实施例中,上述用于对所述第二加密签名信息进行解密的密钥可以从云端获取,本实施例对此不进行限定。
S304:将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方。
在一实施中,由于对所述第二加密签名信息进行了解密操作,为了保证信息的安全性,还可以TEE中执行对所述当前签名信息和运行时签名信息的比对操作。
S305:若所述比对的结果一致,则允许响应所述操作。
其中,步骤S301、S304-S305与前述图1所示实施例中的步骤S101-S103相同,相关解释说明可以参见前述实施例,在此不再进行赘述。
由上述技术方案可知,本实施例通过获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息,并采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,可以实现所述当前签名信息与运行时签名信息的比对,并可以保证运行时签名信息的安全性,进而可以实现后续基于比对结果确定应用程序是否经过反编译,降低应用程序的使用风险,提高用户的信息安全性。
图4是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;如图4所示,该方法包括以下步骤S401-S406:
S401:获取所述应用程序的应用包管理对象。
在一实施例中,在应用程序发布前,可以获取该应用程序的应用包管理对象package Manager,其中,该应用包管理对象为Android内部的功能模块。
S402:从所述应用包管理对象中获取运行时包信息。
在一实施例中,当获取上述应用包管理对象后,可以从其中获取运行时包信息package Info,其中,该运行时包信息为上述功能模块的内信息。
S403:从所述运行时包信息中提取所述应用程序的运行时签名信息。
在一实施例中,当获取上述运行时包信息后,可以从其中提取应用程序的运行时签名信息signture,其中,该运行时签名信息为现有的Android平台中用于识别应用程序开发的信息。
S404:若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息。
S405:将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方。
S406:若所述比对的结果一致,则允许响应所述操作。
其中,步骤S404-S406与前述图1所示实施例中的步骤S101-S103相同,相关解释说明可以参见前述实施例,在此不再进行赘述。
由上述技术方案可知,本实施例通过获取所述应用程序的应用包管理对象,并从所述应用包管理对象中获取运行时包信息,进而从所述运行时包信息中提取所述应用程序的运行时签名信息,可以实现基于现有的运行时签名信息确定应用程序是否经过反编译,简化了方法实施过程,可以降低应用程序的使用风险,提高用户的信息安全性。
图5是本申请又一示例性实施例示出的一种控制应用内功能运行的方法的流程图;如图5所示,该方法可以包括以下步骤S501-S505:
S501:若检测到针对当前应用程序中功能控件的操作,则获取所述应用程序的当前签名信息。
S502:将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方。
S503:判断所述比对的结果是否一致;若是,则执行步骤S504;否则,执行步骤S505。
S504:允许响应所述操作。
其中,步骤S501-S504的相关解释和说明可以参见S101-S103,在此不进行赘述。
S505:禁止响应所述操作,并生成用于表示所述应用程序经过反编译的提示信息。
在一实施例中,若确定上述比对的结果不一致,则可以确定上述应用程序经过反编译,因而禁止响应所述操作。
在一实施例中,上述禁止响应所述操作,可以包括:忽略该操作,例如,不将上述操作事件向应用程序进行通知。
在一实施例中,在禁止响应所述操作的同时,还可以生成预设的提示信息,以此来提示用户所述应用程序经过反编译,使用风险较高。
由上述描述可知,本公开实施例通过在所述比对的结果不一致时,禁止响应所述操作,并生成用于表示所述应用程序经过反编译的提示信息,可以实现提醒用户该应用程序的经过反编译,使用风险较高,可以提高终端设备的智能化水平,满足用户需求。
与前述控制应用内功能运行的方法的实施例相对应,本申请还提供了控制应用内功能运行的装置的实施例。
图6是本申请一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;如图6所示,该装置包括:当前签名信息获取模块110、签名信息比对模块120以及操作响应允许模块130,其中:
当前签名信息获取模块110,用于当检测到针对当前应用程序中功能控件的操作时,获取所述应用程序的当前签名信息;
签名信息比对模块120,用于将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;
操作响应允许模块130,用于当所述比对的结果一致时,允许响应所述操作。
由上述技术方案可知,本实施例通过在检测到针对当前应用程序中功能控件的操作时,获取所述应用程序当前的签名信息,并将所述当前签名信息与运行时签名信息进行比对,进而在所述比对的结果一致时,确定所述应用程序未经过反编译,允许响应所述操作,可以保证运行的应用程序未被反编译,进而降低应用程序的使用风险,提高用户的信息安全性。
图7是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;其中,当前签名信息获取模块210、签名信息比对模块220以及操作响应允许模块230与前述图6所示实施例中的当前签名信息获取模块110、签名信息比对模块120以及操作响应允许模块130的功能相同,在此不进行赘述。如图7所示,签名信息比对模块220,可以包括:
签名信息加密单元221,用于对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息;
第一签名获取单元222,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名比对单元223,用于将所述第一加密签名信息与所述第二加密签名信息进行比对。
由上述技术方案可知,本实施例通过对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息,并获取运行时签名信息对应的第二加密签名信息,进而将所述第一加密签名信息与所述第二加密签名信息进行比对,可以实现将所述当前签名信息与运行时签名信息进行比对,并可以保证存储的运行时签名信息的安全性,进而实现后续根据比对的结果确定所述应用程序是否经过反编译,可以降低应用程序的使用风险,提高用户的信息安全性。
图8是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;其中,当前签名信息获取模块310、签名信息比对模块330以及操作响应允许模块340与前述图6所示实施例中的当前签名信息获取模块110、签名信息比对模块120以及操作响应允许模块130的功能相同,在此不进行赘述。如图8所示,装置还可以包括:加密签名解密模块320;
加密签名解密模块320,可以包括:
第二签名获取单元321,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名解密单元322,用于采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
由上述技术方案可知,本实施例通过获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息,并采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,可以实现所述当前签名信息与运行时签名信息的比对,并可以保证运行时签名信息的安全性,进而可以实现后续基于比对结果确定应用程序是否经过反编译,降低应用程序的使用风险,提高用户的信息安全性。
图9是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图;其中,当前签名信息获取模块420、签名信息比对模块430以及操作响应允许模块440与前述图6所示实施例中的当前签名信息获取模块110、签名信息比对模块120以及操作响应允许模块130的功能相同,在此不进行赘述。如图9所示,所述装置还可以包括:运行签名获取模块410;
所述运行签名获取模块410可以包括:
管理对象获取单元411,用于获取所述应用程序的应用包管理对象;
包信息获取单元412,用于从所述应用包管理对象中获取运行时包信息;
运行签名提取单元413,用于从所述运行时包信息中提取所述应用程序的运行时签名信息。
由上述技术方案可知,本实施例通过获取所述应用程序的应用包管理对象,并从所述应用包管理对象中获取运行时包信息,进而从所述运行时包信息中提取所述应用程序的运行时签名信息,可以实现基于现有的运行时签名信息确定应用程序是否经过反编译,简化了方法实施过程,可以降低应用程序的使用风险,提高用户的信息安全性。
图10是本申请又一示例性实施例示出的一种控制应用内功能运行的装置的结构框图。其中,当前签名信息获取模块510、签名信息比对模块520以及操作响应允许模块530与前述图6所示实施例中的当前签名信息获取模块110、签名信息比对模块120以及操作响应允许模块130的功能相同,在此不进行赘述。如图10所示,该装置还可以包括:
操作响应禁止模块540,用于当所述比对的结果不一致时,禁止响应所述操作。
在一实施例中,所述装置还可以包括:
提示信息生成模块550,用于生成用于表示所述应用程序经过反编译的提示信息。
由上述描述可知,本公开实施例通过在所述比对的结果不一致时,禁止响应所述操作,并生成用于表示所述应用程序经过反编译的提示信息,可以实现提醒用户该应用程序的经过反编译,使用风险较高,可以提高终端设备的智能化水平,满足用户需求。
另一方面,本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述图1~图5所示实施例提供的控制应用内功能运行的方法。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (11)

1.一种控制应用内功能运行的方法,其特征在于,包括:
仅当检测到针对当前应用程序中功能控件的操作时,获取所述应用程序的当前签名信息;所述功能控件为预先从所述当前应用程序中的多个功能控件中选定的需要检测的功能控件;所述需要检测的功能控件包括所述当前应用程序用于实现关键算法的功能控件;所述功能控件包括所述当前应用程序中供用户进行长按、拖动操作的控件;
将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;
若所述比对的结果一致,则确定所述应用程序未经过反编译,允许响应所述操作;
若所述比对的结果不一致,则确定所述应用程序经过反编译,禁止响应所述操作;
其中,不禁止使用所述当前应用程序中除需要检测的功能控件以外的其他功能控件,用于实现对所述当前应用程序进行控件级别的控制。
2.根据权利要求1所述的方法,其特征在于,所述将所述当前签名信息与运行时签名信息进行比对,包括:
对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息;
获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
将所述第一加密签名信息与所述第二加密签名信息进行比对。
3.根据权利要求1所述的方法,其特征在于,所述将所述当前签名信息与运行时签名信息进行比对之前,所述方法还包括:
获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
4.根据权利要求1所述的方法,其特征在于,所述将所述当前签名信息与运行时签名信息进行比对之前,所述方法还包括:
获取所述应用程序的应用包管理对象;
从所述应用包管理对象中获取运行时包信息;
从所述运行时包信息中提取所述应用程序的运行时签名信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成用于表示所述应用程序经过反编译的提示信息。
6.一种控制应用内功能运行的装置,其特征在于,包括:
当前签名信息获取模块,用于仅当检测到针对当前应用程序中功能控件的操作时,获取所述应用程序的当前签名信息;所述功能控件为预先从所述当前应用程序中的多个功能控件中选定的需要检测的功能控件;所述需要检测的功能控件包括所述当前应用程序用于实现关键算法的功能控件;所述功能控件包括所述当前应用程序中供用户进行长按、拖动操作的控件;
签名信息比对模块,用于将所述当前签名信息与运行时签名信息进行比对,所述运行时签名信息用于表征所述应用程序的开发方;
操作响应允许模块,用于当所述比对的结果一致时,确定所述应用程序未经过反编译,允许响应所述操作;
操作响应禁止模块,用于当所述比对的结果不一致时,确定所述应用程序经过反编译,禁止响应所述操作;
其中,不禁止使用所述当前应用程序中除需要检测的功能控件以外的其他功能控件,用于实现对所述当前应用程序进行控件级别的控制。
7.根据权利要求6所述的装置,其特征在于,所述签名信息比对模块,包括:
签名信息加密单元,用于对所述当前签名信息采用预设加密算法进行加密,得到第一加密签名信息;
第一签名获取单元,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名比对单元,用于将所述第一加密签名信息与所述第二加密签名信息进行比对。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:加密签名解密模块;所述加密签名解密模块,包括:
第二签名获取单元,用于获取运行时签名信息对应的第二加密签名信息,所述第二加密签名信息为对所述运行时签名信息基于预设加密算法进行加密得到的信息;
加密签名解密单元,用于采用预设解密算法对所述第二加密签名信息进行解密,得到所述运行时签名信息,所述预设解密算法与所述预设加密算法相对应。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:运行签名获取模块,所述运行签名获取模块包括:
管理对象获取单元,用于获取所述应用程序的应用包管理对象;
包信息获取单元,用于从所述应用包管理对象中获取运行时包信息;
运行签名提取单元,用于从所述运行时包信息中提取所述应用程序的运行时签名信息。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
提示信息生成模块,用于生成用于表示所述应用程序经过反编译的提示信息。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一所述的控制应用内功能运行的方法。
CN201810156658.XA 2018-02-24 2018-02-24 一种控制应用内功能运行的方法及装置 Active CN108399320B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810156658.XA CN108399320B (zh) 2018-02-24 2018-02-24 一种控制应用内功能运行的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810156658.XA CN108399320B (zh) 2018-02-24 2018-02-24 一种控制应用内功能运行的方法及装置

Publications (2)

Publication Number Publication Date
CN108399320A CN108399320A (zh) 2018-08-14
CN108399320B true CN108399320B (zh) 2022-02-01

Family

ID=63096732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810156658.XA Active CN108399320B (zh) 2018-02-24 2018-02-24 一种控制应用内功能运行的方法及装置

Country Status (1)

Country Link
CN (1) CN108399320B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530534A (zh) * 2013-09-23 2014-01-22 北京理工大学 一种基于签名验证的Android程序ROOT授权方法
CN104123491A (zh) * 2014-07-18 2014-10-29 广州金山网络科技有限公司 一种检测应用程序安装包是否被篡改的方法及装置
CN104267994A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的装置和终端设备
CN104268476A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的方法
CN104268475A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的系统
CN104598806A (zh) * 2014-11-24 2015-05-06 北京奇虎科技有限公司 一种进行登录检测的方法和装置
CN106503554A (zh) * 2016-10-21 2017-03-15 维沃移动通信有限公司 一种安全检测的方法和移动终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022098A (zh) * 2016-05-10 2016-10-12 青岛海信传媒网络技术有限公司 一种应用程序的签名验证方法和装置
CN106778102B (zh) * 2016-12-27 2023-04-28 上海云间半导体科技有限公司 基于Android系统的应用程序加密方法和装置
CN107622203B (zh) * 2017-09-30 2020-12-22 Oppo广东移动通信有限公司 敏感信息的保护方法、装置、存储介质及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530534A (zh) * 2013-09-23 2014-01-22 北京理工大学 一种基于签名验证的Android程序ROOT授权方法
CN104123491A (zh) * 2014-07-18 2014-10-29 广州金山网络科技有限公司 一种检测应用程序安装包是否被篡改的方法及装置
CN104267994A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的装置和终端设备
CN104268476A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的方法
CN104268475A (zh) * 2014-09-30 2015-01-07 北京奇虎科技有限公司 一种运行应用程序的系统
CN104598806A (zh) * 2014-11-24 2015-05-06 北京奇虎科技有限公司 一种进行登录检测的方法和装置
CN106503554A (zh) * 2016-10-21 2017-03-15 维沃移动通信有限公司 一种安全检测的方法和移动终端

Also Published As

Publication number Publication date
CN108399320A (zh) 2018-08-14

Similar Documents

Publication Publication Date Title
EP3061024B1 (en) Method and apparatus for protecting application program password of mobile terminal
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
CN109313677B (zh) 用于动态可执行验证的方法和装置
JP2016540282A (ja) 動的ライブラリを保護する方法及び装置
CN109284585B (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
CN107870793B (zh) 一种应用程序中加载so文件的方法及装置
CN110401538B (zh) 数据加密方法、系统以及终端
CN106650355B (zh) 一种保护函数调用的方法及装置
CN104680039A (zh) 一种应用程序安装包的数据保护方法及装置
US20170068804A1 (en) Method for Protecting a Computer Program From Being Influenced, and Computer System
CN103971034A (zh) 一种保护Java软件的方法及装置
CN108133147B (zh) 可执行代码的保护方法、设备及可读存储介质
CN111159658B (zh) 字节码处理方法、系统、装置、计算机设备和存储介质
US10120987B2 (en) Device and method for executing protected iOS software modules
CN108270574A (zh) 一种白名单库文件的安全加载方法及装置
KR102543267B1 (ko) 화이트박스 암호를 이용한 암/복호화 방법 및 그 장치
JP5575950B2 (ja) 無線端末装置およびシステム保護方法
CN114528602A (zh) 基于攻击检测行为的安全芯片运行方法及装置
CN109145533B (zh) 一种使用随机密码保护代码的方法及装置
CN109196507A (zh) 用于为设备的运行提供密码安全函数的方法和装置
CN108399320B (zh) 一种控制应用内功能运行的方法及装置
CN109784072B (zh) 一种安全文件管理方法和系统
KR101630462B1 (ko) 키보드 보안 장치 및 방법
CN106971105B (zh) 一种基于iOS的应用程序遭遇假面攻击的防御方法
CN114357387A (zh) java应用程序防篡改的判断方法、编译方法及设备

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
GR01 Patent grant
GR01 Patent grant