xiabl
驱动牛犊
驱动牛犊
  • 注册日期2005-10-24
  • 最后登录2010-05-20
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望77点
  • 贡献值0点
  • 好评度71点
  • 原创分0分
  • 专家分0分
阅读:1267回复:0

远程注入问题?

楼主#
更多 发布于:2007-04-16 14:03
  我在 XP 系统上,以User用户登陆
程序中使用CreateRemoteThread进行远程注入
提示 "存储空间不足 无法处理此命令"

在XP 管理员用户上无错误, 2000上User用户,管理员用户皆无提示

下面是程序代码
                 enableDebugPriv();
        // 取得LoadLibraryA函数的地址,我们将以它作为远程线程函数启动
        HMODULE hModule=::GetModuleHandle("kernel32.dll");
        if (hModule==NULL)
        {
            PrintLog("kernel32.dll未载入");
            return 0L;
        }
        LPTHREAD_START_ROUTINE pfnStartRoutine = (LPTHREAD_START_ROUTINE)::GetProcAddress(hModule, "LoadLibraryA");

        // 在目标进程中申请空间,存放字符串szDllName,作为远程线程的参数        
        CHAR szDllName[MAX_PATH];
        GetSystemDirectory(szDllName,MAX_PATH);
        strcat(szDllName,"\\abc.dll");
        int cbSize = (strlen(szDllName) + 1);

        LPVOID lpRemoteDllName = ::VirtualAllocEx(hProcess, NULL, cbSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        if (lpRemoteDllName)
        {
            SECURITY_ATTRIBUTES sa;
            SECURITY_DESCRIPTOR sd;

            InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
            SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
            sa.nLength = sizeof(SECURITY_ATTRIBUTES);
            sa.bInheritHandle = TRUE;
            sa.lpSecurityDescriptor = &sd;

            ::WriteProcessMemory(hProcess, lpRemoteDllName, szDllName, cbSize, NULL);            
            // 启动远程线程,并立刻运行
            HANDLE hRemoteThread = ::CreateRemoteThread(hProcess, NULL, 0, pfnStartRoutine, lpRemoteDllName, 0, NULL);
            if (hRemoteThread==NULL)
            {
                ::VirtualFreeEx(hProcess, lpRemoteDllName, cbSize, MEM_RELEASE);
                ::CloseHandle(hProcess);
                return 0;
            }
            // 等待目标线程运行结束,即LoadLibraryA函数返回
             ::WaitForSingleObject(hRemoteThread, INFINITE);        
            ::CloseHandle(hRemoteThread);
            ::VirtualFreeEx(hProcess, lpRemoteDllName, cbSize, MEM_RELEASE);
        }

请各位大侠指点一下!
小桥流水人家
游客

返回顶部