[发明专利]代码处理方法、污点分析方法和装置在审
申请号: | 202110317801.0 | 申请日: | 2021-03-25 |
公开(公告)号: | CN112926058A | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 王明华;张煜龙 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 处理 方法 污点 分析 装置 | ||
1.代码处理方法,包括:
判断当前加载的程序代码是否属于动态代码;该动态代码为在程序运行时从该程序对应的程序代码文件的外部加载到该程序中的代码;
如果是,识别所述动态代码中的污点源;
将所述动态代码中与所述污点源关联的变量的污点状态设置为污点;
将所述动态代码中与所述污点源未关联的变量的污点状态设置为非污点;
针对所述动态代码中的每一条语句,为该语句插入污点状态计算语句,得到代码重写后的动态代码;其中,所述污点状态计算语句用于根据该语句中引用的各变量的污点状态,计算该语句的污点状态。
2.根据权利要求1所述的方法,其中,
当一条语句中包括一个变量时,该语句的污点状态为该变量的污点状态;
当一条语句中包括至少两个变量时,该语句的污点状态为该语句最终计算出的变量的污点状态。
3.根据权利要求1所述的方法,进一步包括:
获取所述程序包括的静态代码;该静态代码为所述程序对应的程序代码文件内部包括的代码;
识别所述静态代码中的污点源;
将所述静态代码中与该污点源关联的变量的污点状态设置为污点;
将所述静态代码中与该污点源未关联的变量的污点状态设置为非污点;
针对静态代码中的各语句,分别根据该语句中引用的各变量的污点状态,判断各语句的污点状态是否为污点,为污点状态为污点的静态代码中的各语句插入污点状态计算语句,得到代码重写后的静态代码。
4.根据权利要求3所述的方法,在所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句之前,进一步包括:
生成污点使用链;
将污点源作为第一条语句加入该污点使用链;
依次判断静态代码中的每一条语句的污点状态,如果污点状态为污点,则将该语句串联在所述污点使用链中;
判断污点使用链中的最后一条语句是否为敏感操作语句;
如果是,则继续执行所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句,且
所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句,包括:在所述静态代码中,为污点使用链中包括的每一条语句分别插入污点状态计算语句,得到代码重写后的静态代码。
5.根据权利要求3所述的方法,其中,在程序运行之前,执行所述获取所述程序包括的静态代码直至所述得到代码重写后的静态代码的步骤。
6.根据权利要求3所述的方法,在针对静态代码中的各语句,为污点状态为污点的静态代码中的各语句插入污点状态计算语句之后,进一步包括:为包括该静态代码的程序代码文件设置处理标识;
所述判断当前加载的程序代码是否属于动态代码,包括:
判断当前加载的程序代码文件是否设置有处理标识,如果否,则确定当前加载的程序代码文件中的程序代码属于动态代码。
7.根据权利要求3所述的方法,
所述静态代码为bytecode;
或者,
所述静态代码为:根据bytecode转换出的中间语言IR;则在所述为污点状态为污点的静态代码中的各语句插入污点状态计算语句之后,并在得到代码重写后的静态代码之前,进一步包括:将插入有污点状态计算语句的静态代码由中间语言IR转换为bytecode。
8.根据权利要求1至7中任一所述的方法,其中,所述根据该语句中引用的各变量的污点状态,计算该语句的污点状态包括:
如果该语句中引用的各变量中包括污点状态为污点的变量,且该变量的引用方式为对该变量进行无害处理操作,则该语句的污点状态为非污点;
如果该语句中引用的各变量中包括污点状态为污点的变量,且该变量的引用方式为对该变量进行非无害处理操作,则该语句的污点状态为污点;
如果该语句中引用的各变量中不包括污点状态为污点的变量,则该语句的污点状态为非污点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110317801.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:欺诈识别的方法和装置
- 下一篇:标识生成方法和装置