发明名称 一种基于树结构的密码算法逻辑表达式识别方法
摘要 本发明涉及一种基于树结构的密码算法逻辑表达式识别方法。通过下述步骤识别密码算法及密码函数:1)通过研究不同密码算法的实现原理,抽取出密码算法实现中所使用的逻辑表达式,采用树形结构存储到密码算法逻辑表达式特征数据库中;2)对待识别的目标程序进行反汇编分析,构建仅含有逻辑操作的抽象语法树集合;3)根据密码算法逻辑表达式特征数据库,使用树结构的匹配算法对目标程序的函数抽象语法树集合进行匹配,并记录匹配结果;4)重复第3步,直到所有函数完成匹配;5)对匹配结果进行梳理,标注。本发明与现有的静态特征码检测、核心函数判别和动态分析等方法相比,在识别效率、准确性上具有突出优势,并提高密码函数的分析效率。
申请公布号 CN102799806B 申请公布日期 2015.02.25
申请号 CN201210196764.3 申请日期 2012.06.14
申请人 中国人民解放军信息工程大学 发明人 蒋烈辉;尹青;李继中;谢耀滨;何红旗;常瑞;刘铁铭
分类号 G06F21/60(2013.01)I 主分类号 G06F21/60(2013.01)I
代理机构 郑州大通专利商标代理有限公司 41111 代理人 白毅明
主权项 一种基于树结构的密码算法逻辑表达式识别方法,其特征是:通过下述步骤识别密码算法及密码函数:1)通过研究不同密码算法的实现原理,抽取出密码算法实现中所使用的逻辑表达式LE,采用树形结构存储到密码算法逻辑表达式特征数据库T<sub>character</sub>中,采用模式树构建算法PTCA构建密码算法逻辑表达式特征数据库T<sub>character</sub>,具体流程如下:步骤1.1:扫描逻辑表达式LE,记录操作优先级最小的操作符OP<sub>min</sub>,创建特征树内部结点,并挂载在其父结点的相应位置,并把OP<sub>min</sub>保存在内部结点中,OP<sub>min</sub>把LP分成左、右两个部分;步骤1.2:左部若为操作数,则挂载在父结点相应位置;若为LE,则调用PTCA算法进行处理;步骤1.3:右部若为操作数,则挂载在父结点相应位置;若为LE,则调用PTCA算法进行处理;步骤1.4:遍历完所有逻辑操作符,算法结束;2)对待识别的目标程序进行反汇编分析,得到目标程序的函数序列P&lt;F<sub>1</sub>,F<sub>2</sub>…F<sub>n</sub>&gt;,对函数F<sub>i</sub>进行基本块内数据流分析,构建仅含有逻辑操作的抽象语法树集合F<sub>i</sub>&lt;T<sub>1</sub>,T<sub>2</sub>…T<sub>m</sub>&gt;,即目标模式树;其中i标识一个函数,m是抽象语法树个数,n是函数个数;3)根据密码算法逻辑表达式特征数据库T<sub>character</sub>,使用树结构的匹配算法M(T<sub>target</sub>,T<sub>character</sub>),对目标程序的函数F<sub>i</sub>抽象语法树集合进行匹配,并记录匹配结果;4)重复第3步,直到所有函数完成匹配;5)对匹配结果进行梳理,标注的信息主要有:函数名、密码算法名称、逻辑表达式的内容、LE在文件中的偏移地址。
地址 450002 河南省郑州市俭学街7号