恶意代码——注册表
AppInit_DLL(利用user32.dll)
通过AppInit_DLL特殊的注册表项,这样可以获取DLL的加载,因为AppInit_DLL中的DLL会在进程加载User32.dll时被加载
由于很多程序都是加载User32.dll,所以这些进程也会加载AppInit_DLL,恶意代码编写者通常只针对一个进程,(进行精准打击)所以为了排除没用的进程,恶意代码编写的payload在运行前必须先检查恶意Dll在哪个程序中(在DLLMain中完成检查)
Winlogon Notify(利用开机,关机,注销)
当我们挂钩一个Winlogon事件时,(登陆,注销,关机等等)恶意代码就可以在注册表中包含Notify的值
SvcHost DLL(利用服务,注册表)
之前说过的服务也是恶意代码利用的利器,而服务存在于注册表中,恶意代码利用svchost.exe来存活,Windows系统在同一时刻运行多个svchost.exe,每个svchost中都有一组服务,这些组都被定义到下列注册表中
Windows有很多服务组,所以恶意代码也很容易利用这些服务组,它很少会去创建服务组,因为这样很容易被识破,所以通常他们会覆盖一个无关紧要的服务,我们在分析恶意代码的时候,查看导入表中有CreateServiceA这种类似的函数应该多多留意