实现另一个“编程语言” - 记第四届伏魔挑战赛恶意脚本免杀

💡 原文中文,约12400字,阅读约需30分钟。
📝

内容提要

阿里云举办的伏魔挑战赛要求选手编写恶意脚本以绕过查杀引擎。今年的查杀引擎在静态分析和行为检测方面有所增强,选手需采用更复杂的手法实现免杀,如自创编程语言和API hammering等技巧。

🎯

关键要点

  • 阿里云举办伏魔挑战赛,选手需编写恶意脚本绕过查杀引擎。
  • 今年的查杀引擎在静态分析和行为检测方面有所增强,选手需采用更复杂的手法实现免杀。
  • 常规手法如动态函数调用和字符串混淆在今年的引擎中效果不佳。
  • 查杀引擎能够解析执行表达式,识别出恶意代码。
  • 选手可以通过编写复杂的、不纯的函数来绕过静态分析。
  • 使用globals()函数可以隐藏赋值语句,达到隐藏控制流的目的。
  • 字符串格式化功能丰富,可以用来隐藏恶意代码。
  • 选手可以自创编程语言来实现恶意脚本,绕过静态分析。
  • API hammering技巧可以插入大量无用系统调用,干扰查杀引擎的分析。
  • 反弹shell脚本需要调用系统API,使用API hammering可以实现绕过行为分析。

延伸问答

伏魔挑战赛的主要目的是什么?

伏魔挑战赛要求选手编写恶意脚本以绕过查杀引擎。

今年的查杀引擎相比去年有哪些增强?

今年的查杀引擎在静态分析和行为检测方面有所增强。

选手可以使用哪些技巧来实现恶意脚本的免杀?

选手可以使用自创编程语言和API hammering等技巧来实现免杀。

为什么常规手法在今年的引擎中效果不佳?

常规手法如动态函数调用和字符串混淆在今年的引擎中效果不佳,因为引擎能够解析执行表达式,识别出恶意代码。

API hammering技巧的作用是什么?

API hammering技巧可以插入大量无用系统调用,干扰查杀引擎的分析,从而实现绕过行为分析。

如何通过globals()函数隐藏赋值语句?

使用globals()函数可以隐藏赋值语句,从而达到隐藏控制流的目的。

➡️

继续阅读