Windows编程学习笔记(一)(Windows黑客编程技术详解第2、3章)

本文是Windows编程的学习笔记,涵盖了基础技术,如单一实例创建、DLL延迟加载和资源释放,以及注入技术,包括全局钩子、远线程注入和APC注入的原理与实现。此外,还讨论了编程中常见的问题和bug解决方案。
摘要由CSDN通过智能技术生成

基础技术
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就会自动加载进该进程。由于进程的地址空间是相互独立的,发生对应事件的进程无法调用其他进程的钩子函数,因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值