• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此

Raspberry Robin分析

恶意代码样本分析 云涯 5个月前 (02-06) 350次浏览

基本信息

216421829e1ca1bd8c18258b373f0aa9

样本分析

第1层

第一层是单个隔离器

第一层

第2层

第三层在第二层之后,偏移0x3F0处

第二层

第三层偏移

 

2层取消原始dll内存映射,并将第三层dll映射到原始dll内存空间,并从入口点执行

 

第3层

 

从第3层开始,每个子程序都被视为一个状态机,并且以循环的形式实现。状态机是一种计算模型,它可以根据输入和当前状态转移到不同的状态。将子程序实现为状态机意味着程序的执行不是直线性的,而是根据某些条件在不同状态之间跳转,这大大增加了理解和分析程序的难度。

 

值表的解密

在每个子程序开始时,都会解密一个值表。这个值表作为常量值的容器,用于子程序中,同时也作为状态转移表。这意味着,程序执行的具体逻辑(包括状态转移)依赖于这个动态解密的值表,而不是静态编码在程序代码中。这种做法进一步隐藏了程序的真实逻辑和执行路径。

隐藏对其他子程序的调用

描述中提到的另一种混淆技术隐藏了对其他子程序的调用。在常规程序中,调用另一个子程序时,被调用的子程序地址直接出现在 call 指令中。然而,在这种混淆的恶意软件中,被调用的地址是通过硬编码的值和前面提到的解密值表中的值计算得出的。这个计算结果被放置在一个寄存器中,然后使用该寄存器进行间接调用。这种方法使得静态分析工具很难确定哪个子程序会被调用,因为调用目标的确定需要执行时间的动态计算。

4

5

使用不同的 RC4 密钥来解密下一阶段,以防恶意软件检测到它没有在物理计算机上运行

 

8

在第 8 层,执行分为两条路径。如果恶意软件检测到它正在被分析,它就会加载虚假的有效负载。否则,它将加载真正的有效负载。

 

其他

3 层和第 5 层具有反分析技术的能力

 

4层和第7层相同

 

10层和第13层相同

 

8层和第14层相同

 

重复使用加壳程序意味着该组织正在使用单独的加壳程序。我们正在继续分析,看看这个程序是他们自己的还是外包给其他组织的,因为这种技术可以表明该组织未来对这些相同加壳器的使用。这些相同的封隔器也可以用不同的图案来替换。

 


云涯历险记 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Raspberry Robin分析
喜欢 (1)