【技术实现步骤摘要】
一种程序完整性校验方法及装置
[0001]本申请涉及计算机
,尤其涉及一种程序完整性校验方法及装置。
技术介绍
[0002]随着移动互联网的发展以及电子设备的智能化,使得用户可以根据自身的需求为网络设备(如路由器、交换机、服务器)或个人电子设备(如手机、平板电脑)加载应用程序。由于应用程序存在被篡改和攻击的风险。例如,攻击者可以通过篡改应用程序,如植入恶意代码,破坏应用程序的完整性,造成网络设备或个人电子设备使用异常、恶意攻击和信息泄露,或者影响计算机的正常运行。
技术实现思路
[0003]本申请实施例提供了一种程序完整性校验方法及装置,旨在确定被加载到内存的应用程序的完整性。
[0004]第一方面,本申请提供了一种程序完整性校验方法,该方法可以用于判断第一程序与第二程序是否匹配。其中,第一程序是安装与计算机设备上的应用程序,第二程序为厂商发布的原版应用程序。如果第一程序与第二程序匹配,说明第一程序与原版程序一致,第一程序完整。具体地,所述方法包括:在第一程序满足获取条件时,获取第一程序的度量值。其中,第一程序包括第一类(Class)文件,第一程序满足获取条件包括第一Class文件已被加载到内存。度量值包括第一度量值,第一度量值根据被加载到内存中的第一Class文件的字节码确定。也就是说,第一度量值可以体现被加载到内存的第一Class文件的特征。那么在得到度量值之后,可以将度量值和基线值相比较,从而确定第一程序与第二程序是否匹配。其中,基线值包括第一基线值。第一基线值根据第二程序中第二C ...
【技术保护点】
【技术特征摘要】
1.一种程序完整性校验方法,其特征在于,所述方法,包括:响应于第一程序满足获取条件,获取所述第一程序的度量值,所述第一程序包括第一类Class文件,所述度量值包括第一度量值,所述第一度量值是根据被加载到内存的所述第一类文件的字节码确定的,所述获取条件包括所述第一类文件已加载到内存;根据基线值和所述度量值确定所述第一程序与第二程序是否匹配,所述第二程序包括第二类文件,所述基线值包括第一基线值,所述第一基线值是根据所述第二类文件的字节码确定的,所述第二类文件为所述第二程序中与所述第一类文件对应的类文件。2.根据权利要求1所述的方法,其特征在于,所述响应于第一程序满足获取条件,包括:确定第一回调函数被触发,所述第一回调函数被触发指示所述第一类文件已加载到内存。3.根据权利要求2所述的方法,其特征在于,所述第一类文件包括第一方法代码,所述第一程序通过运行所述第一方法代码执行所述第一类文件对应的方法,所述第一回调函数被触发指示所述第一方法代码进入待运行状态。4.根据权利要求1
‑
3任一项所述的方法,其特征在于,所述响应于第一程序满足获取条件,包括:确定运行内存扫描线程,所述内存扫描线程用于获取所述第一类文件的字节码。5.根据权利要求1
‑
6任一项所述的方法,其特征在于,所述获取所述第一程序的度量值,包括:获取所述被加载到内存的所述第一类文件的方法字节码;根据所述第一类文件对应的方法字节码确定所述第一度量值。6.根据权利要求1
‑
5任一项所述的方法,其特征在于,所述根据基线值和所述度量值确定所述第一程序与第二程序是否匹配,包括:根据所述第一基线值与所述第一度量值确定所述第一类文件的校验结果;根据所述第一类文件的校验结果,确定所述第一程序与所述第二程序是否匹配。7.根据权利要求1
‑
6任一项所述的方法,其特征在于,所述第一度量值包括所述第一类文件对应的字节码的哈希Hash值。8.根据权利要求5所述的方法,其特征在于,所述获取所述第一类文件对应的方法字节码包括:获取句柄集合,所述句柄集合包括一个或多个句柄,所述一个或多个句柄用于标识所述第一类文件对应的方法字节码在所述内存中的存储位置;根据所述句柄集合,从所述内存中的存储位置获取所述第一类文件对应的方法字节码。9.根据权利要求1
‑
8任一项所述的方法,其特征在于,在所述根据基线值和所述度量值确定校验结果之前,所述方法还包括:使得所述内存中任意一个类文件处于非运行状态。10.根据权利要求1
‑
9任一项所述的方法,其特征在,所述第一程序包括第三类文件,所述方法还包括:获取类字节码的度量值,所述类字节码是根据所述第三类文生成并存储到内存中的;将所述类字节码的度量值确定为所述类字节码的基线值。
11.根据权利要求10所述的方法,其特征在于,所述将所述类字节码的度量值确定为所述类字节码的基线值之前,所述方法包括:确定所述第三类文件与所述第二程序中与所述第三类文件对应的类文件的校验结果为匹配。12.根据权利要求1
‑
11任一项所述的方法,其特征在于,所述方法还包括:向管理端发送所述第一程序的校验结果。13.根据权利要求1
‑
12任一项所述的方法,其特征在于,所述方法还包括:响应于所述第一程序与第二程序不匹配,使得所述内存中任意一个类文件处于非运行状态。14.根据权利要求1
‑
13任一项所述的方法,其特征在于,所述目标程序为基于JAVA开发的应用程序。15.一种程序完整性校验装置,其特征在于,所述装置包括:获取单元,用于响应于第一程序满足获取条件,获取所述第一程序的度量值,所述第一程序包括第一类Class文件,所述度量值包括第一度量值,所述第一度量值是根据被加...
【专利技术属性】
技术研发人员:吕建荣,朱贤,员旭东,王勋,林靖,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。