一种基于操作链接的机器指令码取词方法技术

技术编号:24205465 阅读:28 留言:0更新日期:2020-05-20 14:28
本发明专利技术实施例公开了一种基于操作链接的机器指令码取词方法,所述取词方法为:将机器指令码按照逻辑顺序进行相互链接,重构语句的顺序;每个机器指令码对应不同的目的操作数,目的操作数将对应相应的操作行为;对出现频率大的没有区别价值的机器指令码进行去除,得到链接指令树;在链接指令树上自树根向下遍历,进行取词。本发明专利技术解决了现有指令码取词方式单一,不能体现程序语言内在含义的问题。

A machine instruction code word extraction method based on operation link

【技术实现步骤摘要】
一种基于操作链接的机器指令码取词方法
本专利技术实施例涉及机器语言处理
,具体涉及一种基于操作链接的机器指令码取词方法。
技术介绍
自上世纪40年代现代数字计算机专利技术以来,人类创造了数量繁多的CPU,每个CPU系列都又一套指令体系。除此之外,计算机科学家和工程师们创造了众多的编程语言,其中有很多编程语言最终运行在专用的虚拟机之中。例如Java,Java程序被编译为JavaBytecode,JavaBytecode在Java虚拟机(JVM)中执行。在实践中,需要对这些经过编译的指令码进行分析,比如发现隐藏的恶意代码,比如软件版权保护,再比如软件家族溯源……显然,这项工作是浩大而艰难的。一个自然的想法是使用一些自动化的手段来帮助人工实施分析。近年来,自然语言处理(NaturalLanguageProcessing,NLP)是人工智能应用的一个热点,在应用的过程中产生了很多基础技术,比如n-gram。随着人工智能技术向相关领域渗透和扩展,一些技术也在不同的领域中取得了新的发展。但是传统的N-gram没有考虑到函数的边界,也没有考虑到操作和操作之间的关联,传统的N-gram只能依据机器指令的自然顺序进行取词。
技术实现思路
为此,本专利技术实施例提供一种基于操作链接的机器指令码取词方法,以解决现有指令码取词方式单一,不能体现程序语言内在含义的问题。为了实现上述目的,本专利技术实施例提供如下技术方案:本专利技术实施例公开了一种基于操作链接的机器指令码取词方法,所述取词方法为:将机器指令码按照逻辑顺序进行相互链接,重构语句的顺序;每个机器指令码对应不同的目的操作数,目的操作数将对应相应的操作行为;对出现频率大的没有区别价值的机器指令码进行去除,得到链接指令树;在链接指令树上自树根向下遍历,进行取词。进一步地,所述机器指令码利用参数链接方法进行转化,转化为指令和目的操作数相互关联的树状形式。进一步地,所述参数链接方法为:根据计算机的机器指令的内在逻辑连接安排顺序,使链接后的机器指令码更贴合逻辑顺序。进一步地,所述机器指令码利用一个参数存储结果,或者隐含使用某个寄存器存储结果作为结果参数,用来存储机器指令码的结果。进一步地,所述结果参数作为整个操作的值,或者将存储结果的寄存器作为整个操作的值,后续有对结果参数的存取,则将整个机器指令码作为后续操作的参数。进一步地,所述链接指令树中利用n-grams取词操作进行取词。进一步地,所述n-grams取词操作为:从链接指令数的树根开始向下遍历,忽略叶子节点,其中n为取n个词,取词不跨越不同的子树。进一步地,所述取词方法中,按照设定的取词个数根据逻辑顺序进行取词,取词结束后对取词结果进行输出。本专利技术实施例具有如下优点:本专利技术实施例公开了一种基于操作链接的机器指令码取词方法,借助机器指令码内在的逻辑,对机器指令码进行逻辑链接,重构了语句的顺序,得到链接指令树,在链接指令树上自树根向下遍历,进行取词,使取出的词组更加贴合程序的本质,在此基础上运用机器学习对程序的识别准确率得到提升。附图说明为了更清楚地说明本专利技术的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本专利技术可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本专利技术所能产生的功效及所能达成的目的下,均应仍落在本专利技术所揭示的
技术实现思路
得能涵盖的范围内。图1为本专利技术实施例提供的一种基于操作链接的机器指令码取词方法的流程图;图2为本专利技术实施例提供的一种基于操作链接的机器指令码取词方法的操作码链接示意图;图3为本专利技术实施例提供的一种基于操作链接的机器指令码取词方法的操作码链接局部示意图;图4为本专利技术实施例提供的一种基于操作链接的机器指令码取词方法的操作码链接局部示意图;图5为本专利技术实施例提供的一种基于操作链接的机器指令码取词方法的操作码链接局部示意图;具体实施方式以下由特定的具体实施例说明本专利技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本专利技术的其他优点及功效,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例本实施例公开了一种基于操作链接的机器指令码取词方法,所述取词方法为:将机器指令码按照逻辑顺序进行相互链接,重构语句的顺序;每个机器指令码对应不同的目的操作数,目的操作数将对应相应的操作行为;对出现频率大的没有区别价值的机器指令码进行去除,得到链接指令树;在链接指令树上自树根向下遍历,进行取词。本实施例以具体的代码进行举例说明取词方法,操作程序为:机器指令码为:参考图2,根据操作码内在的联系对操作码进行链接操作,机器指令码利用参数链接方法进行转化,展现为指令和目的操作数相互关联的树状形式,参数链接方法为:根据计算机的机器指令的内在逻辑连接安排顺序,使链接后的机器指令码更贴合逻辑顺序。机器指令码利用一个参数存储结果,或者隐含使用某个寄存器存储结果作为结果参数,用来存储机器指令码的结果,结果参数作为整个操作的值,或者将存储结果的寄存器作为整个操作的值,后续有对结果参数的存取,则将整个机器指令码作为后续操作的参数。比如:movl$0x1,-0x4(%rbp),得到图3,在其后加上“mov-0x4(%rbp),%eax”,得到图4。在图2中,链接指令树中去除出现频率大的没有区别价值的机器指令码,利用n-grams取词操作进行取词,即图中编号为①、②、④、⑤、⑥、⑦、⑧的树。参考图5,仅存编号为③的树。然后在剩余的树上进行n-gram取词操作,n-grams取词操作为:从链接指令数的树根开始向下遍历,忽略叶子节点,其中n为取n个词。以取2-gram为例,得到:(mov,add),(add,mov),(mov,movl),取词结束后对取词结果进行输出。本专利技术实施例公开的一种基于操作链接的机器指令码取词方法,借助机器指令码内在的逻辑,对机器指令码进行逻辑链接,重构了语句的顺序,得到链接指令树,在链接指令树上自树根向下遍历,进行取词,使取出的词组更加贴合程序的本质,运用机器学习对程序的识别准确率得到提升。虽然,上文中已经用一般性说明及具体实施例对本专利技术作了详尽的描述,但在本专利技术基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。本文档来自技高网
...

【技术保护点】
1.一种基于操作链接的机器指令码取词方法,其特征在于,所述取词方法为:/n将机器指令码按照逻辑顺序进行相互链接,重构语句的顺序;/n每个机器指令码对应不同的目的操作数,目的操作数将对应相应的操作行为;/n对出现频率大的没有区别价值的机器指令码进行去除,得到链接指令树;/n在链接指令树上自树根向下遍历,进行取词。/n

【技术特征摘要】
1.一种基于操作链接的机器指令码取词方法,其特征在于,所述取词方法为:
将机器指令码按照逻辑顺序进行相互链接,重构语句的顺序;
每个机器指令码对应不同的目的操作数,目的操作数将对应相应的操作行为;
对出现频率大的没有区别价值的机器指令码进行去除,得到链接指令树;
在链接指令树上自树根向下遍历,进行取词。


2.如权利要求1所述的一种基于操作链接的机器指令码取词方法,其特征在于,所述机器指令码利用参数链接方法进行转化,转化为指令和目的操作数相互关联的树状形式。


3.如权利要求2所述的一种基于操作链接的机器指令码取词方法,其特征在于,所述参数链接方法为:根据计算机的机器指令的内在逻辑连接安排顺序,使链接后的机器指令码更贴合逻辑顺序。


4.如权利要求1所述的一种基于操作链接的机器指令码取词方法,其特征在于,所述机器指令码利用一个参数存储结果,或...

【专利技术属性】
技术研发人员:李志
申请(专利权)人:东巽科技北京有限公司南京东巽信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1