求解C++问题

aa1387239 2011-03-03 03:56:42
我用C++往自己的程序里远程注入

结果一直不行,
我是想试着做做简单的外挂
可是我注入的函数里哪怕是一片空白,当注入的时候,目标程序都会报错,
请各位帮我看一下....
代码如下:
void BBB()
{

}
void CCallDlg::OnButton1()
{
HWND hwnd = ::FindWindow(NULL, "啦啦无法表达");
if (hwnd == NULL)
{
AfxMessageBox("找不到程序");
return;
}
DWORD tid=NULL;
GetWindowThreadProcessId(hwnd, &tid);
HANDLE pid = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tid);
if (pid == 0)
{
AfxMessageBox("打不开进程");
return;
}
LPVOID taddr=VirtualAllocEx(pid, NULL, 1024 , MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(pid, taddr,BBB,1024 ,0);
HANDLE tmpHandle;
tmpHandle = CreateRemoteThread(pid, NULL, 0, (LPTHREAD_START_ROUTINE)taddr, 0, 0,0);
WaitForSingleObject(tmpHandle,INFINITE);
VirtualFreeEx(pid,taddr,2048,MEM_RELEASE);
CloseHandle(pid);
}

我的BBB函数里什么都没有写
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aa1387239 2011-03-05
  • 打赏
  • 举报
回复
感谢LS大大,在发行模式下一切正常,不过这是什么原因呢?
solohac 2011-03-04
  • 打赏
  • 举报
回复


void BBB()
{
}


void main (int argc, char *argv[])
{


HWND hwnd = ::FindWindow(NULL, _T("计算器"));
if (hwnd == NULL)
{
//AfxMessageBox("找不到程序");
return;
}
DWORD tid=NULL;
GetWindowThreadProcessId(hwnd, &tid);
HANDLE pid = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tid);
if (pid == 0)
{
//AfxMessageBox("打不开进程");
return;
}
LPVOID taddr=VirtualAllocEx(pid, NULL, 1024 , MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(pid, taddr,BBB,1024 ,0);
HANDLE tmpHandle;
tmpHandle = CreateRemoteThread(pid, NULL, 0, (LPTHREAD_START_ROUTINE)taddr, 0, 0,0);
if (tmpHandle == NULL)
{
return;
}
WaitForSingleObject(tmpHandle,INFINITE);
VirtualFreeEx(pid,taddr,2048,MEM_RELEASE);
CloseHandle(pid);
}

不报错
你用Release模式试试。
solohac 2011-03-03
  • 打赏
  • 举报
回复
目标程序报错,有可能是反注入
一下子也看不出程序哪里有问题
PID 正确吗?
你试试注入计算器什么的
willabc 2011-03-03
  • 打赏
  • 举报
回复
等待大牛!
aa1387239 2011-03-03
  • 打赏
  • 举报
回复
目标程序是我自己编的小程序,没有反注入啊,PID什么一切都正常

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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