基于API Hook的Stealth Loader局部堆问题解决

2021-02-27 08:53:10徐晓亭
现代计算机 2021年35期
关键词:程序实验检测

徐晓亭

(四川大学网络空间安全学院,成都 610207)

0 引言

鉴于当今恶意代码爆炸性增长趋势,国外安全厂商如卡巴斯基、VirusTotal等,和国内安全厂商如腾讯、微步等均推出了自动化判别未知恶意代码系统。API调用序列无疑是判别未知程序有无恶意行为的关键信息,其记录的完整与否直接影响判定结果。

Windows API可分为用户层和内核层,一个用户层API的调用将需要多个内核层API的配合才能完成,因而用户层API可以提供更加抽象的语义信息,相应的动态检测误报率和漏报率会更低。为了绕过动态检测,攻击者使用了API混淆技术来干扰用户层行为信息收集过程。

API混淆技术指在进行静态或动态分析恶意代码时,获取API地址对应的名称失败,从而可以隐藏它的真实意图,增加分析难度。Kawakoya等人[1]提出最新的 API混淆方案 Stealth Loader是该方向的最新成果,可击败大多数静态和动态反混淆技术。但本身也存在多种缺陷,如ntdll模块初始化、多个DLL之间局部堆共享、消息回调函数注册失败等。程斌林等人[2]提出的BinUnpack属于自动化脱壳方向的最新成果,可以检测到Stealth Loader,跟踪记录加壳后的程序调用的API,实现反混淆。

本文聚焦堆共享问题,依靠API Hook的原理解决此问题,使得其支持更加广泛的内存管理函数。将基于空闲链表的内存管理系统嵌入Stealth Loader中,删除加壳后程序的IAT,成功逃脱Bi⁃nUnpack的检测。

1 相关工作

1.1 API反混淆技术原理

根据上述对API混淆的定义,与之相对的反混淆就是将API地址与名称重新建立连接。现有的反混淆技术大多都是基于以下两个条件:

登录APP查看全文

猜你喜欢
程序实验检测
记一次有趣的实验
做个怪怪长实验
试论我国未决羁押程序的立法完善
人大建设(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
环球时报(2017-03-30)2017-03-30 06:44:45
NO与NO2相互转化实验的改进
实践十号上的19项实验
太空探索(2016年5期)2016-07-12 15:17:55
小波变换在PCB缺陷检测中的应用
创卫暗访程序有待改进
中国卫生(2015年3期)2015-11-19 02:53:32