[发明专利]一种指令级密码算法识别方法和系统有效
申请号: | 201510755316.6 | 申请日: | 2015-11-09 |
公开(公告)号: | CN105426707B | 公开(公告)日: | 2018-06-19 |
发明(设计)人: | 张李军;吉庆兵;于飞;罗杰;陈曼;刘丹;谈程;高鹏军 | 申请(专利权)人: | 中国电子科技集团公司第三十研究所 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 杨永梅 |
地址: | 610000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及密码算法识别技术领域,本发明公开了一种指令级密码算法识别方法,其具体包括以下的步骤:步骤一、建立已公开密码算法的特征库,所述算法的特征包括静态特征码和动态特征指令序列;步骤二、扫描和匹配目标程序中的静态特征码,通过静态特征码识别密码算法;步骤三、收集和分析目标程序的执行迹并抽取实现密码算法的程序代码及其输入输出参数;步骤四、利用输入参数与输出参数之间的匹配关系与动态特征数据进行比较,确认目标程序中执行的密码算法。通过上述方法进行指令级的密码算法识别,识别准确率高。 1 | ||
搜索关键词: | 密码算法 静态特征 目标程序 动态特征 指令 公开密码算法 输入输出参数 程序代码 匹配关系 输出参数 输入参数 指令序列 特征库 准确率 算法 匹配 抽取 扫描 分析 | ||
【主权项】:
1.一种指令级密码算法识别方法,其具体包括以下的步骤:步骤一、建立已公开密码算法的特征库,所述算法的特征包括静态特征码和动态特征指令序列;步骤二、扫描和匹配目标程序中的静态特征码,通过静态特征码识别密码算法;步骤三、收集和分析目标程序的执行迹并抽取实现密码算法的程序代码及其输入输出参数;步骤四、利用输入参数与输出参数之间的匹配关系与动态特征数据进行比较,确认目标程序中执行的密码算法;所述方法还包括执行迹的收集和分析过程,所述执行迹的收集和分析过程主要包含数据简化和数据分析两部分,所述数据简化包括排除掉那些来自于已知代码库里面的指令以及通过线程ID进行过滤两种过滤方式,所述数据分析包括基本块探测、循环探测、循环数据流图生成以及参数信息收集;所述基本块由执行迹动态生成,基本块探测时根据动态特征指令序列的执行迹进行,若其只有单一的入口和出口,则标识为一个基本块,当基本块被自我修改的代码改变,则这种变化将会在第一次新代码执行时被发现;所述循环探测具体包括以下的步骤:步骤a、依次处理执行迹中的机器指令,并把它们存储在列表中,称为History;步骤b、根据其中出现的重复指令得到多个可能的循环实例,每一个循环实例都存在一个对应的下一个所期望的指令;步骤三、将新的机器指令添加进History,从而排除其中不符合条件的循环实例;步骤四、确认循环实例并使用循环标记X在History中进行标记;所述循环数据流图生成具体为:针对探测到的每一对循环实例Li和Lj,使用一个标准的图论算法,通过测试其是否满足二元关系以及其连接分支来构造循环数据流图;所述参数信息收集具体包括:首先根据条件将字节打包成参数变量,然后利用条件把这些参数变量分成两类:输入和输出参数;再采用如下的原则为上一步获取的参数变量赋予一个固定值,执行迹为每次数据访问收集相应的值,为这些参数赋值的原则为:输入参数赋予其首次读取的值,输出参数赋予其末次写入的值;最后,对每个循环实例L,算法返回INM(L)和INR(L),分别为内存和寄存器中的输入参数,和OUTM(L)和OUTR(L),分别为内存和寄存器中的输出参数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510755316.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种Android系统的应用程序的加固方法
- 下一篇:临床试验影像管理系统