[发明专利]一种基于树结构的密码算法逻辑表达式识别方法有效

专利信息
申请号: 201210196764.3 申请日: 2012-06-14
公开(公告)号: CN102799806A 公开(公告)日: 2012-11-28
发明(设计)人: 蒋烈辉;尹青;李继中;谢耀滨;何红旗;常瑞;刘铁铭 申请(专利权)人: 中国人民解放军信息工程大学
主分类号: G06F21/00 分类号: G06F21/00
代理公司: 郑州大通专利商标代理有限公司 41111 代理人: 白毅明
地址: 450002*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 结构 密码 算法 逻辑 表达式 识别 方法
【权利要求书】:

1.一种基于树结构的密码算法逻辑表达式识别方法,其特征是:通过下述步骤识别密码算法及密码函数:

1)通过研究不同密码算法的实现原理,抽取出密码算法实现中所使用的逻辑表达式LE,采用树形结构存储到密码算法逻辑表达式特征数据库Tcharacter中;

2)对待识别的目标程序进行反汇编分析,得到目标程序的函数序列P<F1,F2…Fn>,对函数Fi进行基本块内数据流分析,构建仅含有逻辑操作的抽象语法树集合Fi<T1,T2…Tm>,即目标模式树;其中i标识一个函数,m是抽象语法树个数,n是函数个数;

3)根据密码算法逻辑表达式特征数据库Tcharacte,使用树结构的匹配算法M(Ttarget,Tcharacter),对目标程序的函数Fi抽象语法树集合进行匹配,并记录匹配结果;

4)重复第3步,直到所有函数完成匹配;

5)对匹配结果进行梳理,标注的信息主要有:函数名、密码算法名称、逻辑表达式的内容、LE在文件中的偏移地址。

2.根据权利要求1所述的基于树结构的密码算法逻辑表达式识别方法,其特征是:采用模式树构建算法PTCA构建密码算法逻辑表达式特征数据库Tcharacter,具体流程如下:

步骤1:扫描逻辑表达式LE,记录操作优先级最小的操作符OPmin,创建特征树内部结点,并挂载在其父结点的相应位置,并把OPmin保存在内部结点中,OPmin把LP分成左、右两个部分;

步骤2:左部若为操作数,则挂载在父结点相应位置;若为LE,则调用PTCA算法进行处理;

步骤3:右部若为操作数,则挂载在父结点相应位置;若为LE,则调用PTCA 算法进行处理;

步骤4:遍历完所有逻辑操作符,算法结束。

3.根据权利要求1或2所述的基于树结构的密码算法逻辑表达式识别方法,其特征是:在对目标代码反汇编的基础上,以函数为基本粒度进行局部数据流分析,构建目标模式树,具体流程如下:

步骤1:对目标代码进行反汇编,结果记为P=(f1,f2…fn);

步骤2:在函数fi内扫描逻辑操作符,具有直接逻辑关系的操作聚合到一个模式树中,函数fi内的模式子树集合为Ti=(t1,t2…tm);

步骤3:重复步骤2,直至所有函数被处理一遍,记录下程序P的模式树集合T=(T1,T2…Tm),算法结束。其中i标识一个函数,m是模式子树个数,n是函数个数。

4.根据权利要求3所述的基于树结构的密码算法逻辑表达式识别方法,其特征是:在函数的模式子树构建后,根据定义的密码函数LE特征树数据库进行匹配,匹配过程分成两个部分:内结点匹配和叶子结点匹配,基于树结构的匹配算法TreeMatch(TargetTree,PatternTree,L)实现步骤如下:

步骤1:初始化识别结果Result、左子树的识别结果L_result、右子树的识别结果R_result分别为false;

步骤2:判断目标树T的根节点是否为叶子节点,若是则转步骤3,若不是则转步骤6;

步骤3:模式树P的根节点是否为叶子节点,若不是则返回Result为false并结束,否则转步骤4;

步骤4:判断P和T的根节点操作数类型是否相同,若相同则把T的根叶子节点作为P的根叶子节点的副节点,并加入到关系序列L中,转步骤5,否则返回 Result为false,结束;

步骤5:判断P的根叶子节点是否有相同的节点信息,若不同,则返回Result为true,否则,取与P的根叶子节点相同节点的副节点N,并判断T的根叶子节点是否与N相同,若相同,返回Result为true并结束,否则,返回Result为false并结束;

步骤6:判断树P的根节点是否为内部节点,若不是则返回Result为false并结束,若是则转步骤7;

步骤7:判断T和P的根节点运算符是否相同,若相同,转步骤8,若不同,转步骤9;

步骤8:以T的左子树、P的左子树、L为输入参数,调用TreeMatch算法,返回结果为L_result,以T的右子树、P的右子树、L为输入参数,调用TreeMatch算法,返回结果为R_result,若L_result和R_result都为真,则返回Result为true,结束;

步骤9:以T的左子树、P、L为输入参数,调用TreeMatch算法,返回结果为L_result,以T的右子树、P、L为输入参数,调用TreeMatch算法,返回结果为R_result,若L_result和R result有一个为真,则返回Result为true,结束。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210196764.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top