技术背景
随着计算机技术的发展,计算机研究人员根据现有语言的缺陷,尝试创造出更好的编程语言,而新技术在造福计算机社区的同时,往往会被攻击组织所盯上,成为攻击者的崭新的武器开发语言。
对传统的安全检测设备和安全研究人员而言,新语言相对晦涩且冷门,具有语言本身的特性。在面对传统的安全措施时,绕过更加轻松,使得安全设备增大识别和检测难度,大大增加安全防御成本。
在这些新的编程语言中,Nim语言尤其受到了攻击者的青睐。其中,APT组织TA800在攻击中多次使用Nim语言开发的NimzaLoader下载器;APT28组织的攻击工具Zebrocy用Nim语言进行重构等。
本文将从蓝军研究人员的角度对Nim语言的优势和利用面进行分析,希望能对读者有所启发。
Nim语言优势分析
1. 语言本身的优势
相较于其他同类语言,Nim拥有更简洁的语法,执行性能上也有所提高。类脚本语言式的语法和封装完善的内部函数降低了开发难度,更低的开发成本缩短了武器化项目开发周期。
效率上
如下图,在求0到1亿的秋水仙数时,Nim的速度跟C语言不分伯仲,且比python快得多:
可读性上
在语法和表达上,比起类C的语言需要有大括号和分号(比如JavaScript和C++),Nim语言更加地简洁和易读,同时也不具备Ruby语言的do和end等。
C++语言和Nim语言实现0到9的循环代码,对比如下:
# Nim语言实现0-9的循环输出for i in 0 ..