【100】为什么这段代码在VC6里面好使而在VC2008里面却接连提示分配失败,写入失败?

qu228811462 2010-02-23 10:17:35
各类老大请注意:俺VC2008用的是多字符集
void usegoods()
{
_asm
{
push 6 // 金创药分类编号
push 1
push 0
mov eax, 0x5a5920
call eax
}
}

void RemoteCall()
{
HWND h;
h= ::FindWindow(NULL, "YB_OnlineClient"); //查找窗口句柄
DWORD id; //进程ID
LPDWORD Pid= &id;
::GetWindowThreadProcessId(h, Pid); //取得指定窗口的进程ID 存放到变量id里边
HANDLE hp= OpenProcess(PROCESS_ALL_ACCESS, false, id); //获取访问进程权限 存放至hp

//分配一块 内存 以写入我们自己的代码
LPVOID callbase= VirtualAllocEx(hp, NULL, 0x3000, MEM_COMMIT| MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if(callbase==NULL)
{
AfxMessageBox("申请空间失败");
}

if(!::WriteProcessMemory(hp,callbase,usegoods,0x3000,NULL))
{
AfxMessageBox("写入代码失败");
}

//远程调用代码
DWORD tid;
CreateRemoteThread(hp, NULL, 0, (LPTHREAD_START_ROUTINE)callbase, 0, 0, &tid);
}

void C远程Call调用Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
RemoteCall();
}

在VC6里面正常调用Call不提示任何东西,在VC2008里面接连提示:
	if(callbase==NULL)
{
AfxMessageBox("申请空间失败");
}

if(!::WriteProcessMemory(hp,callbase,usegoods,0x3000,NULL))
{
AfxMessageBox("写入代码失败");
}
...全文
105 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qu228811462 2010-02-23
  • 打赏
  • 举报
回复
哈哈,俺这到一时忘了,马上结。
yxwsbobo 2010-02-23
  • 打赏
  • 举报
回复
结贴就行了。。。 分多了我也拿去问问题。。。
qu228811462 2010-02-23
  • 打赏
  • 举报
回复
老大俺爱你,俺以身相许吧,哈哈,成功了,谢谢这个不知道名字的好人。
yxwsbobo 2010-02-23
  • 打赏
  • 举报
回复
OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION | PROCESS_VM_WRITE,FALSE,id)


试试这样 估计是权限不够,可以看看 hp 是否为NULL 另外要查到具体哪一步出错 多用 GetLastError 查看哪里出错
qu228811462 2010-02-23
  • 打赏
  • 举报
回复
楼上的老大请详解................
yxwsbobo 2010-02-23
  • 打赏
  • 举报
回复
HANDLE hp= OpenProcess(PROCESS_ALL_ACCESS, false, id); //获取访问进程权限 存放至hp


估计是这里错了
hackwolfoscar 2010-02-23
  • 打赏
  • 举报
回复
外挂????????

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧