Показать сообщение отдельно
Старый 28.09.2008, 03:18   #1
Постоялец
 
Аватар для Ivan_32
 
Регистрация: 23.12.2007
Адрес: FFFF:64E9
Сообщений: 221
Репутация: 64
Question В Remote Thread не исполняется WinAPI код.

Имеется следущий код

Код:
#include <windows.h>
#include "stdafx.h"
DWORD WINAPI func(LPVOID lparam)
{
	HWND hwn;
	return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
DWORD myPID=4644;//Это PID уже запущенного процесса, я его ввожу вручную
HANDLE process=OpenProcess(PROCESS_ALL_ACCESS,0,myPID);
LPVOID lpBuffer=&func;
DWORD NumberOfBytesWritten;
LPVOID lpMemory=VirtualAllocEx(process, NULL, 100000, MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(process,lpMemory,lpBuffer,100000,&NumberOfBytesWritten);
DWORD tID=1000;//Это для надежности)
CreateRemoteThread(process,NULL,NULL,(LPTHREAD_START_ROUTINE)lpMemory,0,0,&tID);
while(true){};
return 0;
}
Так вот если func содержит WinAPI код , например вызов MessageBox , программа в которую иньектится код, падает.
Какой код может содержать иньектируемая функция ? И второй вопрос.
Можно ли как то определить точно , нужный функции обьем памяти ? 100кб это по моему многовато...
PS: ОС Vista

Заранее благодарен.
__________________
Проблема есть следствие ее решения...
Чем больше я узнаю, тем больше чувствую себя дураком.

Последний раз редактировалось Ivan_32; 28.09.2008 в 03:30..
Ivan_32 вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.02261 секунды с 10 запросами