[发明专利]客户端程序数据采集方法及系统在审
申请号: | 201810784703.6 | 申请日: | 2018-07-17 |
公开(公告)号: | CN109063040A | 公开(公告)日: | 2018-12-21 |
发明(设计)人: | 闻立杰;李肖赫 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;吴欢燕 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 客户端程序 目标函数 调用 采集 函数调用信息 函数调用 获取数据 目标功能 数据采集 反射 客户端界面 定义函数 定义目标 功能调用 函数执行 重新执行 返回 筛选 记录 | ||
1.一种客户端程序数据采集方法,其特征在于,包括:
执行客户端程序的目标功能,并在执行过程中记录获得函数调用信息,所述目标功能是与所述客户端程序获取数据相关的功能;
对所述函数调用信息中的各函数进行筛选,获得与获取数据相关的目标函数,并定义所述目标函数的函数调用逻辑;
根据所述函数调用逻辑,采用反射调用的方式依次调用各所述目标函数,获得所述目标函数的返回值。
2.根据权利要求1所述的方法,其特征在于,所述函数调用信息包括函数调用参数;相应地,所述对所述函数调用信息中的各函数进行筛选,获得与获取数据相关的目标函数,包括:
对所述函数调用信息中的各函数进行初步筛选,去除与所述目标功能无关的所述函数;
根据每个所述函数对应的所述函数调用参数,对所述函数进行筛选,获得所述目标函数。
3.根据权利要求2所述的方法,其特征在于,所述函数调用信息包括函数调用日志,所述函数调用参数包括函数的类名;
相应地,所述对所述函数调用信息中的各函数进行初步筛选,去除与所述目标功能无关的所述函数,包括:
若判断获知所述函数的调用次数与所述函数在所述函数调用日志的出现次数不匹配,则去除所述函数;和/或,
若判断获知所述函数的类名与预先设置的无关函数类名库中的类名相匹配,则去除所述函数。
4.根据权利要求2所述的方法,其特征在于,所述根据每个所述函数对应的所述函数调用信息,对所述函数进行筛选之前,还包括:
建立调用关系二叉树,所述调用关系二叉树用于指示经过初步筛选后的所述函数的调用关系。
5.根据权利要求1所述的方法,其特征在于,所述定义所述目标函数的函数调用逻辑,包括:
若判断获知所述目标函数在反射调用时需要目标参数,则获取所述目标函数的目标参数;
根据多个所述目标函数的调用流程设置多个所述目标函数的执行顺序,并为在反射调用时需要所述目标参数的所述目标函数设置所述目标参数,生成所述函数调用逻辑。
6.根据权利要求5所述的方法,其特征在于,所述获取所述目标函数的调用参数,包括:
若所述客户端为Java客户端,则通过字节码插桩法获取所述调用参数。
7.一种客户端程序数据采集系统,其特征在于,包括:
记录模块,用于执行客户端程序的目标功能,并在执行过程中记录获得函数调用信息,所述目标功能是与所述客户端程序获取数据相关的功能;
筛选模块,用于对所述函数调用信息中的各函数进行筛选,获得与获取数据相关的目标函数,并定义所述目标函数的函数调用逻辑;
调用模块,用于根据所述函数调用逻辑,采用反射调用的方式依次调用各所述目标函数,获得所述目标函数的返回值。
8.根据权利要求7所述的系统,其特征在于,所述函数调用信息包括函数调用参数;相应地,所述筛选模块,包括:
第一筛选单元,用于对所述函数调用信息中的各函数进行初步筛选,去除与所述目标功能无关的所述函数;
第二筛选单元,用于根据每个所述函数对应的所述函数调用参数,对所述函数进行筛选,获得所述目标函数。
9.一种电子设备,其特征在于,包括:
至少一个处理器;
以及与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810784703.6/1.html,转载请声明来源钻瓜专利网。