基础技术
1.运行单一实例:防止病毒木马多次运行,增加暴露风险。
原理:利用CreatMutex()函数创建一个实例,若创建成功,切GetLastError()获取的返回码为ERROR_ALREADY_EXISTS,则表明该命名的互斥对象已存在,程序重复运行,否则,则是首次运行。
2.DLL延迟加载:先执行程序,到调用DLL之前,将嵌入在程序中的DLL文件释放出来,从而程序可以继续执行。通过这种方式,程序编写者只需发送给用户一个可执行文件(exe),减少DLL丢失的风险。
原理:在VS开发环境中进行设置。
3.资源释放:使程序变得简洁,例如只有一个可执行文件(exe)。
原理:(1)获取资源FindResource()(2)确定资源大小SizeofResource()(3)将资源加载到内存LoadResource()(4)锁定资源(获取起始地址)LockResource()(5)将资源保存为文件(释放)
注入技术
目的:为了方便修改目标进程空间的数据;为了戴上目标进程的“面具”进行伪装。
方式和原理:
1.全局钩子注入:SetWindowsHookEx()。在DLL项目中设置全局钩子,监控系统进程间的通讯,一旦进程有消息发送到消息队列中,DLL就会自动加载进该进程。由于进程的地址空间是相互独立的,发生对应事件的进程无法调用其他进程的钩子函数,因