一种逆向解析GPU指令的方法及系统与流程

文档序号:12664774阅读:来源:国知局

技术特征:

1.一种逆向解析GPU指令的方法,其特征在于,包括:

步骤1,将所述GPU指令进行编译,生成编译文件,将所述编译文件进行反汇编,生成反汇编文件,通过汇编解析器将所述反汇编文件表示成instMap变量,其中所述instMap变量的变量类型包括操作码、修饰码、指令、操作数与对应的操作数类型;

步骤2,将所述instMap变量输入到解码求解器,所述解码求解器判断所述instMap变量的变量类型,并通过已经确定的所述操作码或修饰码查找相对应的编码。

2.如权利要求1所述的逆向解析GPU指令的方法,其特征在于,若所述解码求解器分别对所述instMap变量的64位编码的每一位进行探测,再通过反汇编将所述64位编码进行反汇编,如果生成的新反汇编的指令与所述64位编码原有指令的指令名称不一样,则说明所述64位编码当前位表示操作码,根据所述当前位,对操作码在编码空间中进行枚举。

3.如权利要求1所述的逆向解析GPU指令的方法,其特征在于,将所述instMap变量中指令的名称与操作数类型作为关键字查询visited字典,对于所述instMap变量里的每一条指令,探测除了操作数之外的其他位,返回已修改的某一位操作数,将<指令,操作数类型>在visited字典里标注为1,表示已经访问过了。

4.如权利要求1所述的逆向解析GPU指令的方法,其特征在于,通过将所述instMap变量中指令逐位进行异或,通过修饰码是否改变完成探测修饰码,找到每条指令的修饰码的编码空间后,在修饰码的编码空间进行枚举,找出所有的修饰码的名称,然后根据某一修饰码的名称,找出所有带所述某一修饰码的指令的所有交集,最后将编码与所有带所述某一修饰码的指令的操作码的编码做异或,获取修饰码的编码。

5.如权利要求1所述的逆向解析GPU指令的方法,其特征在于,根据操作数的名称,获取与其相对应的编码。

6.一种逆向解析GPU指令的系统,其特征在于,包括:

生成变量模块,用于将所述GPU指令进行编译,生成编译文件,将所述编译文件进行反汇编,生成反汇编文件,通过汇编解析器将所述反汇编文件表示成instMap变量,其中所述instMap变量的变量类型包括操作码、修饰码、操作数与对应的操作数类型;

查找编码模块,用于将所述instMap变量输入到解码求解器,所述解码求解器判断所述instMap变量的变量类型,并通过已经确定的所述操作码或修饰码查找其余编码。

7.如权利要求6所述的逆向解析GPU指令的系统,其特征在于,若所述解码求解器分别对所述instMap变量的64位编码的每一位进行探测,再通过反汇编将所述64位编码进行反汇编,如果生成的新反汇编的指令与所述64位编码原有指令的指令名称不一样,则说明所述64位编码当前位表示操作码,根据所述当前位,对操作码在编码空间进行枚举。

8.如权利要求6所述的逆向解析GPU指令的系统,其特征在于,将所述instMap变量中指令的名称与操作数类型作为关键字查询visited字典,对于所述instMap变量里的每一条指令,探测除了操作数之外的其他位,返回已修改的某一位操作数,将<指令,操作数类型>在visited字典里标注为1,表示已经访问过了。

9.如权利要求6所述的逆向解析GPU指令的系统,其特征在于,通过将所述instMap变量中与编码相对应的指令逐位进行异或,通过修饰码是否改变完成探测修饰码,找到每条指令的修饰码的编码空间后,在修饰码的编码空间进行枚举,找出所有的修饰码的名称,然后根据某一修饰码的名称,找出所有带所述某一修饰码的指令的所有交集,最后将编码与所有带所述某一修饰码的指令的操作码的编码做异或,获取修饰码的编码。

10.如权利要求6所述的逆向解析GPU指令的系统,其特征在于,根据操作数的名称,获取与其相对应的编码。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1