首页
社区
课程
招聘
[旧帖] [求助]远程注入一个函数出现内存读写错误 0.00雪花
发表于: 2015-9-6 16:43 1202

[旧帖] [求助]远程注入一个函数出现内存读写错误 0.00雪花

2015-9-6 16:43
1202
打算注入到资源管理器进程,执行CreateProcessA这个函数运行一个记事本,代码如下
bool Inject(const char *DllFullPath, const DWORD dwRemoteProcessId)
{
    HANDLE hRemoteProcess, hRemoteThread;
    if(!EnableDebugPriv(SE_DEBUG_NAME)) return false;

    //打开目标进程
    if((hRemoteProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwRemoteProcessId)) == NULL) return false;
     

    //得到CreateProcessA函数地址
    PTHREAD_START_ROUTINE pfnStartAddr = (PTHREAD_START_ROUTINE)GetProcAddress(LoadLibrary("Kernel32.DLL"), "CreateProcessA");
   

        if(pfnStartAddr == NULL) return false;
        STARTUPINFO si;
        memset(&si,0,sizeof(STARTUPINFO));//初始化si在内存块中的值
        si.cb=sizeof(STARTUPINFO);
        si.dwFlags=STARTF_USESHOWWINDOW;
        si.wShowWindow=SW_SHOW;
        PROCESS_INFORMATION pi;//必备参数设置结束
        if((hRemoteThread = CreateRemoteThread(hRemoteProcess, NULL, 0, pfnStartAddr, (NULL,TEXT("c:\\windows\\system32\\notepad.exe"),NULL,NULL,FALSE,0,NULL,NULL,&si,&pi), 0, NULL)) == NULL) return false;

    cout<<"Inject TRUE!"<<endl;
    return true;
}
最后cout的那句"Inject TRUE!"正常输出了,说明远程线程启动成功了,但是弹出一个内存读写错误的对话框:0x7c818837引用的0x7c839b48内存不能为"written"。补充一点,读到的CreateProcessA函数的地址是0x7c802336.点完确定之后资源管理器直接重启了。求大神支援~~~不尽感激

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//