文章插图
函数BackdoorExeFile的邻近图
尽管存在多态后门 , 但解包和后门过程中使用的加密/解密算法是一致的 , 可用于Azov检测 。
文章插图
使用与解包期间相同的算法和密钥重新加密shellcode的主blob
文章插图
反分析和代码混淆技术
防止使用软件断点——如果设置了软件断点 , 使用例程将已经解密并正在执行的部分shellcode复制到新分配的内存中 , 然后将执行转移到它 , 迟早会导致异常 。在这种情况下 , 有必要使用硬件断点 。
文章插图
防止使用软件断点的反分析技术
不透明常量——用产生相同结果常量值的代码例程替换常量 。(这可以在负责计算常量偏移量的例程中反复看到 , 而不是直接使用它们 , 以便直接调用可以被间接调用取代)
文章插图
不透明常数
语法混乱——用语义上不地道或完全扩展的等效指令替换指令 。这方面的一个例子可以在负责解析导出目录的程序中找到;另一种是用直接或间接jmp重复替换调用 。两者如下图所示 。
文章插图
语法扩展
文章插图
在调用中使用间接跳转和直接跳转
下面可以看到解析导出目录的程序集的简化版本 。
文章插图
垃圾代码——插入垃圾字节 , 导致没有有意义的指令 , 甚至根本没有指令 。
不透明谓词——jz/jnz乍一看似乎是一个条件跳转 , 但实际上条件总是满足或总是不满足 , 并且有效地充当无条件跳转 , 使静态分析混淆 。这两种混淆都可以在函数FindGetProcAddress()中看到 。
文章插图
垃圾字节插入和不透明谓词混淆
调用-返回滥用——使用push-ret或Call而不是jmp 。
文章插图
控制间接
Volatile Homebrew IAT ——一个动态分配的结构 , 包含API函数地址 , 被用作嵌套结构 , 作为参数推送给需要使用特定WIN API例程而不是使用普通导入的函数 。
文章插图
动态创建的IAT类结构用作嵌套结构
文章插图
总结
尽管Azov样本在第一次被发现时被认为是一个普通的勒索软件 , 但当进一步调查时 , 我们发现了非常先进的技术——手工制作的组装 , 将有效载荷注入可执行文件以打开后门 。
推荐阅读
- 爆火出圈的chatGPT如何在逆向和恶意软件分析中发挥作用
- 视频驱动软件下载 如何安装视频驱动?
- 为什么手机上的外卖库软件打不开呢 外卖库存同步机器人
- 有哪些软件可以找钱 网上怎么找钱钱
- 同城交友软件 同城好友
- 如何用wps制作公章 公章制作软件哪个好
- 网络传真机软件……有没有比较好用的电子网络传真软件?
- 扫码查价格软件哪个好?怎样扫条形码查价
- 时间同步软件xp—有什么软件同步手机时间,显示,时,分,秒的?
- 用友通财务软件?用友通软件怎么下载呢!需要哪些附件呢?