发明名称 软件探测方法和应用该方法的软件探测器及软件探测系统
摘要 本发明属于一种软件探测方法和应用该方法的软件探测器及软件探测系统。所述软件探测方法用于对应用软件在运行中的程序流程信息的实时探测,在对被测软件进行代码插装后,通过模型检测判断是否存在“特殊的结构”或“漏洞”,并找出代码执行轨迹,然后将程序流程信息采用无线或有线方式将此信息传送到监管节点或监管网络。本发明在法制监管领域可以对计算机系统内部运行的软件进行实时监控。本发明的软件探测系统构成法制计量监控网络,对计量器具的使用进行监控,为执法打假快速反应提供服务和支撑。能对电子衡器软件或金融监管软件中的“后门程序”和“作弊口令”等特定目标进行探测、并将探测得的信息对外传输,以使监管部门实时监视。
申请公布号 CN101923510B 申请公布日期 2012.07.04
申请号 CN201010146146.9 申请日期 2010.04.13
申请人 张克东 发明人 张克东;张溟;吴华芳
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 常州市江海阳光知识产权代理有限公司 32214 代理人 蒋全强
主权项 一种软件探测方法,其特征在于包括如下步骤:A、启动代码插装步骤,该步骤包括:虚拟执行被测软件,即对被测软件的程序源代码进行词法分析和语法分析,以识别出特征代码,该特征代码包括:变量、函数、子程序和面向对象的类;然后对所述程序源代码的程序流程按数据块进行划分,以得到表述所述被测软件的程序结构和静态流程的划分数据并存入一静态数据库中,同时该静态数据库预存有根据被测软件的功能说明书得到的正常程序结构和静态流程;然后在所述程序源代码中插入对应于所述特征代码的探测代码;最后把插入了所述探测代码的程序源代码编译链接成可执行程序;所述探测代码用于收集所述可执行程序运行时生成的动态数据;该动态数据包括:函数、子程序的调用记录,面向对象的类的消息传递,以及由所述函数、子程序的调用记录和面向对象的类的消息传递构成的所述被测软件运行时的程序结构和控制流程;B、执行模式识别步骤,该步骤用于对所述可执行程序执行模型检测,即:将所述静态数据库中预存的正常程序结构和静态流程与所述探测代码获取的被测软件运行时的程序结构和控制流程进行比较;若二者一致,则判断所述可执行程序正常;否则,则判断所述可执行程序中存在“特殊的结构”或“漏洞”;所述“特殊的结构”是指与被测软件的功能说明书不相关的变量、函数、子程序或类的消息传递;所述“漏洞”是指根据被测软件的功能说明书被测软件中缺少应有的变量、函数、子程序或类的消息传递;C、当发现存在“特殊的结构”或“漏洞”后,执行模式分析步骤,该步骤用于分析所述可执行程序的控制流程,以找出并上报引起“特殊的结构”或“漏洞”的代码执行轨迹;该代码执行轨迹是由引起执行“特殊的结构”或“漏洞”的一系列代码的集合所构成的程序流程;D、执行数据处理与传输步骤,该步骤用于根据所述代码执行轨迹,得出被测软件存在“特殊的结构”和/或“漏洞”的信息、及其运行的时间信息和运行次数,然后通过无线或有线的方式,传输到监管节点和/或监管网络;所述控制流程是指:虚拟执行被测软件,即对被测软件的程序源代码进行词法分析和语法分析,识别出特征代码,然后对所述程序源代码的控制流按块进行划分,得到所述被测软件的程序划分数据的流程;所述静态流程是指:把插入了所述探测代码的程序源代码编译链接成可执 行程序;运行该可执行程序得到的被测软件运行时的程序流程。
地址 213000 江苏省常州市天宁区浦北新村7幢甲单元301室