中文

通过自主函数调用解析绕过数组金丝雀

密码学与安全 2025-01-24 v1

摘要

我们观察到数组金丝雀(Array Canary),一种新颖的JavaScript反分析技术,目前被钓鱼即服务框架Darcula在野外利用。数组金丝雀似乎是Emotet JavaScript下载器所使用的数组洗牌技术的高级形式。在实践中,一系列数组金丝雀被设置在字符串数组中,如果被修改,将导致程序无限循环。在本文中,我们演示了数组金丝雀的工作原理,并讨论了自主函数调用解析(AFCR),这是我们创建的一种绕过数组金丝雀的方法。我们还介绍了Arphsy,一个用于AFCR的概念验证,旨在指导大型语言模型和安全研究人员对“金丝雀化”的JavaScript代码进行反混淆。我们通过以下步骤实现:(i)从金丝雀化文件中查找并提取所有立即调用函数表达式,(ii)解析文件的抽象语法树,寻找任何未实现导入函数调用的函数,(iii)识别最常重新赋值的变量及其对应的函数体,(iv)计算最大字符串数组的长度,并用它来确定金丝雀化文件中的偏移值,(v)将所有先前识别的函数聚合到单个文件中,以及(vi)将驱动代码附加到验证后的文件中,并用它来反混淆金丝雀化文件。

关键词

引用

@article{arxiv.2501.13256,
  title  = {Bypassing Array Canaries via Autonomous Function Call Resolution},
  author = {Nathaniel Oh and Paul Attie and Anas Obeidat},
  journal= {arXiv preprint arXiv:2501.13256},
  year   = {2025}
}