[发明专利]一种基于中间语言的工控恶意软件字符串反混淆方法在审
申请号: | 202210380934.7 | 申请日: | 2022-04-11 |
公开(公告)号: | CN114756864A | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 符笑彬;丁勇;郑彦斌;李振宇 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/60;G06F8/53 |
代理公司: | 桂林文必达专利代理事务所(特殊普通合伙) 45134 | 代理人: | 张学平 |
地址: | 541004 广西*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 中间 语言 恶意 软件 字符串 混淆 方法 | ||
本发明涉及工控安全技术领域,具体涉及一种基于中间语言的工控恶意软件字符串反混淆方法,不仅能够同时适用于使用时解密型字符串混淆方案和统一解密型的字符串混淆方案,还能处理ARM32、ARM64、X86和X64等多种常见指令集架构的恶意软件。全面提高了字符串反混淆方案的兼容性和可移植性。
技术领域
本发明涉及工控安全技术领域,尤其涉及一种基于中间语言的工控恶意软件字符串反混淆方法。
背景技术
工业控制系统作为电力、石油、化工、交通以及军工等各大行业的重要基础设施,其安全稳定与否直接地关系到国民经济的命脉。工业控制系统的高中危漏洞比例远超传统行业的高中危漏洞占比。这些漏洞的细节被披露以后,恶意软件极易对其进行利用,从而发起影响巨大的恶意攻击活动。
为了全面地保障工控系统的安全稳定运行,工控安全研究人员积极地与恶意软件展开对抗。在对抗过程中,字符串信息是最直观且最有效地判定恶意软件行为的方式之一。通过提取工控恶意软件的字符串信息,能快速定位到恶意软件的核心逻辑位置,还能有效地提取恶意软件的关键数据,这将有助于后续的恶意软件自动化检测与对抗工作。但是,为了提高工控安全研究人员的分析难度,恶意软件开发者开始使用字符串混淆。
目前,现有方案在处理字符串混淆保护的工控恶意软件时,通常需要依靠人工分析字符串解密函数的位置,进而人工还原解密函数的逻辑并完成字符串的解密。同时,由于字符串混淆的实现方式多样、解密算法的复杂度各不相同,这种反混淆方案存在实现难度较大以及反混淆效率低下等问题。另外,工控安全研究人员可能面临多种指令集架构的工控恶意软件困扰,现有方案可移植性以及兼容性较差。
发明内容
本发明的目的在于提供一种基于中间语言的工控恶意软件字符串反混淆方法,旨在解决现有方案在处理字符串混淆保护的工控恶意软件时,可移植性以及兼容性较差的问题。
为实现上述目的,本发明提供了一种基于中间语言的工控恶意软件字符串反混淆方法,包括如下步骤:
反编译工控恶意软件,得到初始化函数、代码段和数据段;
对所述数据段模拟执行所述初始化函数;
将模拟执行后的数据段覆盖到所述工控恶意软件中,得到第一解密结果;
识别所述数据段中的加密字符串;
对所述加密字符串解密,将解密后的字符串写回原数据位置,得到第二数据段;
将所述第二数据段覆盖到所述工控恶意软件中,得到第二解密结果;
对所述第一解密结果和所述第二解密结果进行解密性验证。
其中,所述工控恶意软件包括:
采用统一解密型字符串混淆方案的工控恶意软件和采用使用时解密型字符串混淆方案的工控恶意软件。
其中,所述对所述数据段模拟执行所述初始化函数,包括:
基于解释型指令集模拟策略设计中间语言IDA microcode模拟执行引擎BinVM;
使用所述BinVM对所述初始化函数进行模拟执行。
其中,所述识别所述数据段中的加密字符串,包括:
使用IDAPro对所述数据段进行识别,所述数据段中的非ASCII和非中文编码的字符串信息都被作为所述加密字符串。
其中,所述对所述加密字符串解密,将解密后的字符串写回原数据位置,得到第二数据段,包括:
根据数据段与代码段之间的映射关系,由所述加密字符串查询到该字符串在所述代码段被引用的位置,将该位置的下一个函数作为字符串解密函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210380934.7/2.html,转载请声明来源钻瓜专利网。