【技术实现步骤摘要】
一种代码的分析方法、装置、电子终端及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种代码的分析方法、装置、电子终端及存储介质。
技术介绍
现有技术中,存在一些在没有源码的情况下,对汇编代码进行分析的需求。例如,针对第三方模块,在没有其源码的情况下,存在对第三方模块中某个功能对应的程序执行代码的分析需求。因此,亟需一种计算机可执行的方式,对大量汇编的机器代码进行自动分析,以提高分析效率。
技术实现思路
有鉴于此,本专利技术实施例提供了一种代码的分析方法、装置、电子终端及存储介质,能够对汇编代码进行自动分析,分析效率高。第一方面,本专利技术实施例提供了一种代码的分析方法,包括:获取汇编代码的目标函数链表对象;其中所述目标函数链表对象中包含与根函数对应的函数信息对象;其中所述根函数为,与所述汇编代码对应的源码中,调用除本函数外其他函数的函数;其中,所述函数信息对象中包含所述根函数的函数名称;获取所述目标函数链表对象中函数信息对象的函数名称,并对与所述函数名称对应的根函数,设置第一钩 ...
【技术保护点】
1.一种代码的分析方法,其特征在于,包括:/n获取汇编代码的目标函数链表对象;其中所述目标函数链表对象中包含与根函数对应的函数信息对象;其中所述根函数为,与所述汇编代码对应的源码中,调用除本函数外其他函数的函数;其中,所述函数信息对象中包含所述根函数的函数名称;/n获取所述目标函数链表对象中函数信息对象的函数名称,并对与所述函数名称对应的根函数,设置第一钩子函数;/n接收目标功能的触发指令,基于所述触发指令运行所述汇编代码,并于所述汇编代码运行结束时,根据所述第一钩子函数的回调结果,从所述函数信息对象中,确定热点函数信息对象;/n确定与所述热点函数信息对象的函数名称对应的热 ...
【技术特征摘要】
1.一种代码的分析方法,其特征在于,包括:
获取汇编代码的目标函数链表对象;其中所述目标函数链表对象中包含与根函数对应的函数信息对象;其中所述根函数为,与所述汇编代码对应的源码中,调用除本函数外其他函数的函数;其中,所述函数信息对象中包含所述根函数的函数名称;
获取所述目标函数链表对象中函数信息对象的函数名称,并对与所述函数名称对应的根函数,设置第一钩子函数;
接收目标功能的触发指令,基于所述触发指令运行所述汇编代码,并于所述汇编代码运行结束时,根据所述第一钩子函数的回调结果,从所述函数信息对象中,确定热点函数信息对象;
确定与所述热点函数信息对象的函数名称对应的热点根函数,将所述热点根函数调用的函数中,非循环调用的函数作为目标子函数,并对所述目标子函数设置第二钩子函数;
再次接收所述目标功能的触发指令,基于所述触发指令运行所述汇编代码,并于所述汇编代码运行结束时,根据所述第二钩子函数的回调结果,以及预先生成的所述目标子函数的引用列表,生成分析结果;其中,所述引用列表根据引用所述目标子函数的函数生成。
2.根据权利要求1所述的方法,其特征在于,所述获取汇编代码的目标函数链表对象,包括:
获取汇编代码的函数列表,遍历所述函数列表,获取所述函数列表中各函数的函数信息,将所述函数信息存储至预设文件中;其中,所述函数信息包含函数名称;其中,所述预设文件中每行保存一个函数的函数信息;
逐行读取所述预设文件,根据每行的函数信息创建函数信息对象,并将所述函数信息对象存储至第一函数链表对象中;
对所述第一函数链表对象中的函数信息对象进行过滤,得到包含与根函数对应的函数信息对象的目标函数链表对象。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一函数链表对象中的函数信息对象进行过滤,得到包含与根函数对应的函数信息对象的目标函数链表对象,包括:
将所述第一函数链表对象中,函数信息对象包含的指令长度小于预设长度的函数信息对象进行过滤,得到第二函数链表对象;
将所述第二函数链表对象中,与函数信息对象的函数名称对应的函数的函数头,为跳转指令的函数信息对象进行过滤,得到第三函数链表对象;
将所述第三函数链表对象中,与函数信息对象的函数名称对应的函数为根函数的函数信息对象进行保留,得到目标函数链表对象。
4.根据权利要求1所述的方法,其特征在于,所述引用列表基于下述步骤生成:
遍历所述待分析汇编代码,获取所述待分析汇编代码中各段的段信息;
根据所述段信息获取段名称,并于所述段名称中包含函数名称时,获取与包含的函数名称对应的函数的偏移地址;
遍历...
【专利技术属性】
技术研发人员:周志刚,
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。