[发明专利]一种基于树结构的密码算法逻辑表达式识别方法有效
| 申请号: | 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,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210196764.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车床的冷却装置
- 下一篇:一种动臂轴套装配装置





