-
-
CreateRemoteThread 遇到error 5
-
发表于:
2014-5-18 23:03
5739
-
CreateRemoteThread 遇到error 5
我自己写了一个程序,点击一个控件,然后界面上的数字加1. 代码如下:
void CRiversemeDlg::OnBtnAdd()
{
m_dit++;
UpdateData(false);
}
我用OD追到地址如下:
00401556 . 83C4 64 ADD ESP,64
00401559 . C3 RETN
0040155A > 8BCE MOV ECX,ESI
0040155C . E8 0B030000 CALL <JMP.&MFC42.#2379_?Default@CWnd@@IA>
00401561 . 5E POP ESI
00401562 . 83C4 64 ADD ESP,64
00401565 . C3 RETN
00401566 90 NOP
00401567 90 NOP
00401568 90 NOP
00401569 90 NOP
0040156A 90 NOP
0040156B 90 NOP
0040156C 90 NOP
0040156D 90 NOP
0040156E 90 NOP
0040156F 90 NOP
00401570 . 8B81 A4000000 MOV EAX,DWORD PTR DS:[ECX+A4]
00401576 . C3 RETN
00401577 90 NOP
00401578 90 NOP
00401579 90 NOP
0040157A 90 NOP
0040157B 90 NOP
0040157C 90 NOP
0040157D 90 NOP
0040157E 90 NOP
0040157F 90 NOP
00401580 . 8B91 A0000000 MOV EDX,DWORD PTR DS:[ECX+A0]
00401586 . 6A 00 PUSH 0
00401588 . 42 INC EDX
00401589 . 8991 A0000000 MOV DWORD PTR DS:[ECX+A0],EDX
0040158F . E8 EA020000 CALL <JMP.&MFC42.#6334_?UpdateData@CWnd@>
00401594 . C3 RETN
00401595 90 NOP
00401596 90 NOP
00401597 90 NOP
00401598 90 NOP
00401599 90 NOP
0040159A 90 NOP
0040159B 90 NOP
0040159C 90 NOP
0040159D 90 NOP
0040159E 90 NOP
0040159F 90 NOP
004015A0 . 8B91 A0000000 MOV EDX,DWORD PTR DS:[ECX+A0]
004015A6 . 6A 00 PUSH 0
004015A8 . 4A DEC EDX
我多复制了一些,我找的地址是标红的地方,00401580,但是我不确定,因为不想是入口,没有
PUSH EBP之类的,但是我看了上下文,应该只有这段代码。
然后我又写了个程序,用如下代码去调用它:
HWND h;
h=::FindWindow(NULL,_T("riverse"));
DWORD pid;
::GetWindowThreadProcessId(h,&pid);
HANDLE hp=::OpenProcess(PROCESS_ALL_ACCESS,false,pid);
DWORD tid;
::CreateRemoteThread(hp,NULL,0,(LPTHREAD_START_ROUTINE)0x401580,NULL,0,&tid);
前面都正常, 但是执行CreateRemoteThread 的时候出错了,error 5. accecc violation.
不知道是什么原因,很简单的程序啊,我用代码注入器去调用这个地址也是一样的错误,还是说我的入口地址没找对,如果是这样,该这么找呢?求大神帮助!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!