应用程序的篡改检测方法、装置、设备及存储介质制造方法及图纸

技术编号:33906632 阅读:52 留言:0更新日期:2022-06-25 18:46
本发明专利技术涉及安全检测技术领域,公开了一种应用程序的篡改检测方法、装置、设备及存储介质,该方法包括在待检测应用程序启动时,获取待检测应用程序中的内置签名信息以及签名证书;根据签名证书生成当前签名信息;将内置签名信息和当前签名信息进行比较,获得比较结果;基于比较结果确定待检测应用程序是否被篡改。本发明专利技术中,提前设置内置签名信息,在待检测应用程序启动时,校验待检测应用程序的签名证书对应的当前签名信息是否是原始的内置签名信息,从而确定所述待检测应用程序是否被篡改,增强了应用程序的安全性同时维护原开发者利益,解决了现有技术中难以检测应用程序被篡改,造成严重损害原开发者利益的技术问题。造成严重损害原开发者利益的技术问题。造成严重损害原开发者利益的技术问题。

【技术实现步骤摘要】
应用程序的篡改检测方法、装置、设备及存储介质


[0001]本专利技术涉及安全检测
,尤其涉及一种应用程序的篡改检测方法、装置、设备及存储介质。

技术介绍

[0002]Android应用被破解和盗版的事件层出不穷,攻击者先将Android应用破解,然后再以植入木马、插入广告、篡改支付链接等形式封装成新的Android应用,严重损害了原开发者的利益,所以一种检测Android应用是否被恶意篡改的方法至关重要。
[0003]上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

[0004]本专利技术的主要目的在于提供一种应用程序的篡改检测方法、装置、设备及存储介质,旨在解决现有技术中难以检测应用程序被篡改,造成严重损害原开发者利益的技术问题。
[0005]为实现上述目的,本专利技术提供一种应用程序的篡改检测方法,所述应用程序的篡改检测方法包括以下步骤:
[0006]在待检测应用程序启动时,获取所述待检测应用程序中的内置签名信息以及签名证书;
[0007]根据所述签名证书生成当前签名信息;
[0008]将所述内置签名信息和所述当前签名信息进行比较,获得比较结果;
[0009]基于所述比较结果确定所述待检测应用程序是否被篡改。
[0010]可选地,所述根据所述签名证书生成当前签名信息的步骤,具体包括:
[0011]根据所述签名证书确定待检测签名文件;
[0012]对所述待检测签名文件进行解析,获取所述签名证书对应的待检测证书哈希值;
[0013]将所述待检测证书哈希值作为当前签名信息。
[0014]可选地,所述根据所述签名证书确定待检测签名文件的步骤,具体包括:
[0015]根据所述签名证书获取所述待检测应用程序的安装路径,并根据所述安装路径获取待检测应用程序文件;
[0016]通过预设解析库对所述待检测应用程序文件进行解析,获取待检测签名文件。
[0017]可选地,所述将所述内置签名信息和所述当前签名信息进行比较,获得比较结果的步骤,具体包括:
[0018]从所述内置签名信息中提取内置证书哈希值;
[0019]将所述内置证书哈希值和所述待检测证书哈希值进行比较,获得比较结果。
[0020]可选地,所述根据所述签名证书生成当前签名信息的步骤,具体包括:
[0021]根据所述签名证书确定代码常量区数据;
[0022]基于HMAC算法对所述代码常量区数据进行计算,获得所述签名证书对应的待检测常量哈希值;
[0023]将所述待检测常量哈希值作为当前签名信息。
[0024]可选地,所述根据所述签名证书确定代码常量区数据的步骤,具体包括:
[0025]根据所述签名证书查找代码常量区启动地址和代码常量区结束地址;
[0026]根据所述代码常量区启动地址和所述代码常量区结束地址确定代码常量区数据。
[0027]可选地,所述将所述内置签名信息和所述当前签名信息进行比较,获得比较结果的步骤,具体包括:
[0028]从所述内置签名信息中提取内置常量哈希值;
[0029]将所述内置常量哈希值和所述待检测常量哈希值进行比较,获得比较结果。
[0030]可选地,所述根据所述签名证书生成当前签名信息的步骤,具体包括:
[0031]根据所述签名证书确定代码执行区数据;
[0032]基于HMAC算法对所述代码执行区数据进行计算,获得所述签名证书对应的待检测执行哈希值;
[0033]将所述待检测执行哈希值作为当前签名信息。
[0034]可选地,所述根据所述签名证书确定代码执行区数据的步骤,具体包括:
[0035]根据所述签名证书查找代码执行启动函数和代码执行结束函数,并运行所述代码执行启动函数和所述代码执行结束函数;
[0036]接收所述代码执行启动函数运行后反馈的代码执行启动地址;
[0037]接收所述代码执行结束函数运行后反馈的代码执行结束地址;
[0038]根据所述代码执行启动地址和所述代码执行结束地址确定代码执行区数据。
[0039]可选地,所述将所述内置签名信息和所述当前签名信息进行比较,获得比较结果的步骤,具体包括:
[0040]从所述内置签名信息中提取内置执行哈希值;
[0041]将所述内置执行哈希值和所述待检测执行哈希值进行比较,获得比较结果。
[0042]可选地,所述获取所述待检测应用程序中的内置签名信息以及签名证书的步骤,具体包括:
[0043]获取所述待检测应用程序中的动态链接库;
[0044]从所述动态链接库中查找内置证书哈希值、内置常量哈希值以及内置执行哈希值;
[0045]将所述内置证书哈希值、所述内置常量哈希值和所述内置执行哈希值作为内置签名信息;
[0046]获取所述待检测应用程序的签名证书。
[0047]可选地,所述从所述动态链接库中查找内置证书哈希值、内置常量哈希值以及内置执行哈希值的步骤,具体包括:
[0048]从所述动态链接库中获取动态链接字节文件;
[0049]根据所述动态链接字节文件获取内置执行哈希值和内置常量哈希值;
[0050]根据所述动态链接字节文件确定常量区数据;
[0051]从所述常量区数据中查找内置证书哈希值。
[0052]可选地,所述根据所述动态链接字节文件获取内置执行哈希值和内置常量哈希值的步骤,具体包括:
[0053]在所述动态链接字节文件中查找内置执行哈希值地址,并根据所述内置执行哈希值地址获取内置执行哈希值;
[0054]在所述动态链接字节文件中查找内置常量哈希值地址,并根据所述内置常量哈希值地址获取内置常量哈希值。
[0055]此外,为实现上述目的,本专利技术还提出一种应用程序的篡改检测装置,所述应用程序的篡改检测装置包括:
[0056]获取模块,用于在待检测应用程序启动时,获取所述待检测应用程序中的内置签名信息以及签名证书;
[0057]生成模块,用于根据所述签名证书生成当前签名信息;
[0058]比较模块,用于将所述内置签名信息和所述当前签名信息进行比较,获得比较结果;
[0059]确定模块,用于基于所述比较结果确定所述待检测应用程序是否被篡改。
[0060]可选地,所述生成模块,还用于根据所述签名证书确定待检测签名文件;
[0061]所述生成模块,还用于对所述待检测签名文件进行解析,获取所述签名证书对应的待检测证书哈希值;
[0062]所述生成模块,还用于将所述待检测证书哈希值作为当前签名信息。
[0063]可选地,所述生成模块,还用于根据所述签名证书获取所述待检测应用程序的安装路径,并根据所述安装路径获取待检测应用程序文件;
[0064]所述生成模块,还用于通过预设解析库对所述待检测应用程序文件进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的篡改检测方法,其特征在于,所述应用程序的篡改检测方法包括以下步骤:在待检测应用程序启动时,获取所述待检测应用程序中的内置签名信息以及签名证书;根据所述签名证书生成当前签名信息;将所述内置签名信息和所述当前签名信息进行比较,获得比较结果;基于所述比较结果确定所述待检测应用程序是否被篡改。2.如权利要求1所述的应用程序的篡改检测方法,其特征在于,所述根据所述签名证书生成当前签名信息的步骤,具体包括:根据所述签名证书确定待检测签名文件;对所述待检测签名文件进行解析,获取所述签名证书对应的待检测证书哈希值;将所述待检测证书哈希值作为当前签名信息。3.如权利要求2所述的应用程序的篡改检测方法,其特征在于,所述根据所述签名证书确定待检测签名文件的步骤,具体包括:根据所述签名证书获取所述待检测应用程序的安装路径,并根据所述安装路径获取待检测应用程序文件;通过预设解析库对所述待检测应用程序文件进行解析,获取待检测签名文件。4.如权利要求3所述的应用程序的篡改检测方法,其特征在于,所述将所述内置签名信息和所述当前签名信息进行比较,获得比较结果的步骤,具体包括:从所述内置签名信息中提取内置证书哈希值;将所述内置证书哈希值和所述待检测证书哈希值进行比较,获得比较结果。5.如权利要求1所述的应用程序的篡改检测方法,其特征在于,所述根据所述签名证书生成当前签名信息的步骤,具体包括:根据所述签名证书确定代码常量区数据;基于HMAC算法对所述代码常量区数据进行计算,获得所述签名证书对应的待检测常量哈希值;将...

【专利技术属性】
技术研发人员:李鹤仙曹阳
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1