Всем привет.
Нужно создать дочерний процесс с своей точкой входа.
Как такое сделать?
К примеру есть чужой процесс, допустим calc.exe
И я создаю дочерний процесс в нём с именем "calc2.exe"
И в нём исполняется код: MessageBox(NULL, "123", "123", MB_OK);
Можно ли такое сделать?
armadillo-cld, так процесс же называется по имени файла, который запустили. или вы хотите скопировать исходный файл во временную папку, модифицировать его и запустить?
не очень понимаю, какие цели желаете достигнуть и каким путём.
к примеру, есть опция изменить данные в памяти процесса наживую (attach to process, map memory), возможно так получится отредактировать в том числе и код уже запущенного процесса и влезть в него.
15432, Мне нужно запустить свою точку входа в процессе, если быть точнее.
Что бы без DLL процесс выполнил точку входа
dllmain
или
main
либо какое то другое название
БЕЗ ДЛЛ
Что бы она находилась внутри моей программы, и там была функция MessageBox
нужно что бы эта точка входа вызвалась у процесса, он вывел MessageBox, что находится внутри функции, и вернул управление своей точке входа (calc)
15432, Я видел на ютубе на канале "Zer0memory" видео "Inject code cave", он делал поиск адресса MessageBoxA, и вызывал. Но я попытался сделать так же, но приложение просто вылетало...
armadillo-cld, для ответа на подобные вопросы достаточно самостоятельно изучить документацию.
Или у тебя проблемы непосредственно с изучением документации?
armadillo-cld, а дело в том, что у тебя присутствует непонимание своего вопроса.
Процесс (Process) - это изолированная единица многозадачности. У процесса свое, изолированное, адресное пространство, свой код и свои данные. Процесс не может работать от кода другого процесса. COW для памяти в среде Windows не предусмотрен, форкинг физически невозможен. Процесс ты можешь запланировать только через функции WinAPI. Дальше тебе самая дорога еще раз прочитать предложенную мной документацию.
Ну и еще стоит поменьше верить видосикам на ютубчике. А то так и до существования вечного двигателя можно докатиться.
armadillo-cld, тебе нужно сформулировать свой вопрос более корректно. А для этого тебе нужно лучше разобраться в информационной среде своего вопроса. Сейчас невозможно только дать ответ на твой вопрос.
Евгений Шатунов, Куда ещё конкретнее? Ну посмотрите тогда мой новый вопрос. Я нашел способ инжекта шеллкода в процесс, но после отработки шеллкода - процесс закрывается.
armadillo-cld, да, я видел этот вопрос. С ним тебе тоже только в одиночку разбираться, т.к. ты не предоставил никакой информации для его решения.
Ты не забирал управление чтобы отдавать его кому-то, ты просто сделал в другом процессе исключение и все.