腾讯科技讯 8月30日,AVG中国病毒实验室近日发现一类为了躲过杀毒软件主动防御,利用正常程序加载和执行恶意代码的木马程序正在大规模爆发。这种木马由两部分组成:正常的程序加恶意程序,正常程序被利用后,恶意代码即可被加载和执行。AVG实验室将该木马命名为“白加黑”恶意程序。

下面这款木马程序就是采用此种方式执行。下图是该木马的WinMain函数,看起来虽然是很简单,但是在Fn_ReleaseVirusFile这个函数中却别有洞天。

该木马通过申请内存,然后将主要代码拷贝到其中并执行。

这段代码实现的功能相当复杂,会根据程序启动时的参数执行不同流程,实现不同的功能。让我们看看它究竟复杂在哪:

1. 该木马首次执行时没有参数,会在system32目录下释放NvSmart.exe,NvSmartMax.dll和Boot.ldr这三个文件。NvSmart.exe为正常文件(就是我们所说的白),有合法的数字签名;NvSmartMax.dll恶意文件(就是我们所说的黑);Boot.ldr为一段shellcode。然后通过com方式创建并启动服务。

2. 服务启动后,NvSmart.exe得到执行并通过导入表加载NvSmartMax.dll,NvSmartMax.dll会在其dllmain函数中修改NvSmart.exe的入口代码,转到NvSmartMax.dll中的代码,然后读取boot.ldr中的代码到内存中并执行。

3. 当启动参数为“200 0”时,该木马会启动svchost.exe进程,写入恶意代码,修改程序入口代码,跳转到恶意代码执行。

4. 当参数为”k”时,该木马会加载多种插件,包括keylogger(键盘记录)模块、远程控制模块、木马隐藏模块等等。

5. AVG通过对比写入的代码,发现该木马所有进程间的注入代码都是Boot.ldr文件中保存的二进制代码,只是通过进程启动时的参数来控制程序的流程,以实现不同的功能。

另外,该木马可能正处于测试阶段,因为在代码出现了如下字符串:

白加黑加载方式_AVG中国实验室发现“白加黑”型恶意程序相关推荐

  1. 白加黑加载方式_基层干部白加黑的工作方式不可取

    原标题:基层干部白加黑的工作方式不可取 基层是实施各项政策.落实各项工作的前沿阵地,事多人少一直是基层的"老毛病".一些基层干部反映自己的加班状态说,"周六加班是定式,随 ...

  2. 白加黑加载方式_利用白加黑原理 绕过杀软主动防御

    如何绕过杀软主动防御?且看这篇文章渡尽劫波兄弟在,相逢一笑泯恩仇.--鲁迅 利用白文件绕过杀软的主动,可以追溯到很久之前.我在看雪看到一篇关于白加黑的文章时候还是在13年,当时也有人在研究白加黑.所谓 ...

  3. 白加黑加载方式_“白加黑减”即曝光补偿的应用方法及原理全面详解——致新手新新手...

    "白加黑减"即曝光补偿的应用方法及原理全面详解 --致新手新新手 本文对曝光补偿这一摄影基本技术及原理做一全面详细的分析和解释,旨在让受此困惑的新手能够从原理上彻底理解" ...

  4. 浅谈Entity Framework中的数据加载方式

    如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...

  5. cesium 切换瓦片地图的加载方式

    cesium 切换瓦片地图的加载方式 如果你熟悉 cesium,那么你或多或少应该用过或者了解如何用 cesium 加载瓦片地图. 熟悉加载瓦片地图这本身不是一个太难的工作,一般来说,只要你照着官方的 ...

  6. html加载百度地图,百度地图API详解之地图API加载方式

    本文将向大家介绍百度地图API的两种不同加载方式:同步加载和异步加载. 同步加载 这是最常见的加载方式,开发者需要在页面的head标签内添加一个script标签,标签的src属性填写为地图API的地址 ...

  7. python ctypes库中动态链接库加载方式

    最近看了<Gray hat python>一书,这才知道为什么python是黑客必学的编程语言.通过python的ctypes模块,可以直接调用动态链接库中的导出函数,而且甚至可以直接在p ...

  8. React Native 的图片加载方式

    在做APP的时候,遇到了要加载图片的问题,本来以为很简单,,但是知道真相的我眼泪掉下来.在此记录一下.. 一.本地图片的加载 如上图:./代表当前文件,相当于是在本地项目根据目录找到该图片即可.问题是 ...

  9. hive--udf函数(开发-4种加载方式)

    UDF函数开发 标准函数(UDF):以一行数据中的一列或者多列数据作为参数然后返回解雇欧式一个值的函数,同样也可以返回一个复杂的对象,例如array,map,struct. 聚合函数(UDAF):接受 ...

最新文章

  1. 数据结构与算法(1)——数组与链表
  2. Java基础之IDE
  3. RealFormer:把残差转移到Attention矩阵上面去
  4. Spring AOP EXPRESSION
  5. /opt/hbase/conf 中不能启动hbase_Hbase从入门到入坑
  6. R语言观察日志(part23)--bibliometrix包
  7. 【渝粤题库】广东开放大学标准文献检索与应用 形成性考核
  8. ERP开发中应用字符串解析实现界面翻译智能化
  9. 洛谷 P3244 / loj 2115 [HNOI2015] 落忆枫音 题解【拓扑排序】【组合】【逆元】
  10. 日志写入hbase_千亿级日志系统设计思路,牛人必学!
  11. 解压大于4g的文件_U盘容量还很大,拷贝时提示“文件太大”无法传输!
  12. XBug:一个强大的JavaScript调试器
  13. 计算机硬盘必内存的容量大,电脑基础知识:内存条的作用
  14. “每个人的商学院”系列丛书
  15. 拉卡拉支付最新支付方式预览——刷脸支付上线
  16. 思科Cisco交换机的基本模式和命令基本使用和技巧大全
  17. 尘福通:智慧城市建设、运营、演进路径思考
  18. 2019.11.4 英语学习
  19. android 高德地图 定位蓝点消失,高德地图蓝点定位不显示蓝点
  20. JAVA zip 压缩包 导出

热门文章

  1. java谐音,那位有If I were a boy 谐音啊?!
  2. 真北敏捷公众号里的群友
  3. 元宇宙备受关注,Imagination 高性能 GPU 技术将加速元宇宙建设
  4. 西游记中观世音菩萨为什么能与如来佛祖同为五方五老之一?
  5. 系统之家启动维护光盘v3.1[大盘版·贺岁篇]
  6. php生成图表_使用PHP组件的4种最佳图表生成选项
  7. 前田约翰《简单法则》十条
  8. 搭建 Cobbler 无人值守安装服务器
  9. 如果想做数据标注,你可能会遇到哪些坑?
  10. IP媒体服务器:3G视频业务的基石