| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2531 人关注过本帖
标题:DLL线程注入问题
只看楼主 加入收藏
唐三藏
Rank: 1
等 级:新手上路
帖 子:3
专家分:7
注 册:2020-10-21
结帖率:100%
收藏
 问题点数:0 回复次数:1 
DLL线程注入问题
图片附件: 游客没有浏览图片的权限,请 登录注册


问题如图所示,能编译,编译后也能运行,但是有绿色的报错提示。请问哪里写错了吗?

代码如下:
BOOL DLL线程注入(HANDLE 进程句柄,const char * DLL完整路径)
{
    LPVOID 地址 = 0;
    DWORD 实际写入大小 = 0;
    HANDLE 线程句柄 = 0;
    地址 = VirtualAllocEx(进程句柄, NULL, 256, MEM_COMMIT, PAGE_READWRITE);//分配内存空间
    if (地址 == 0)
    {
        CloseHandle(进程句柄);
        return FALSE;
    }
    WriteProcessMemory(进程句柄, 地址, DLL完整路径, strlen(DLL完整路径) + 1, &实际写入大小);//写入
    if (实际写入大小 < strlen(DLL完整路径))
    {
        VirtualFreeEx(进程句柄, 地址, 256, MEM_DECOMMIT);
        CloseHandle(进程句柄);
        return FALSE;
    }
    线程句柄 = CreateRemoteThread(进程句柄, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibraryA, 地址, NULL, NULL);//创建远程线程
    if (线程句柄 == 0)
    {
        VirtualFreeEx(进程句柄, 地址, 256, MEM_DECOMMIT);
        CloseHandle(进程句柄);
        return FALSE;
    }
    WaitForSingleObject(线程句柄, 0xFFFFFFF);//等待线程
    CloseHandle(线程句柄);
    VirtualFreeEx(进程句柄, 地址, 256, MEM_DECOMMIT);//释放内存空间
    CloseHandle(进程句柄);
    return TRUE;
}
搜索更多相关主题的帖子: 线程 进程 DLL 句柄 地址 
2020-11-07 19:54
zzz3265
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:10
注 册:2022-2-6
收藏
得分:0 
正常应该用 MEM_RELEASE,  
如果用MEM_DECOMMIT, 会导致虚拟地址空间泄漏,  详情可以MSDN或搜索
2022-02-06 01:05
快速回复:DLL线程注入问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015306 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved