Создать процесс из захваченных данных памяти - PullRequest
0 голосов
/ 24 мая 2019

Я хотел бы знать, возможно ли или как можно создать новый процесс из захваченной памяти другого процесса.

Неважно, работает ли он в Linux или Windows. Мне было бы интересно найти подход к обоим или к чему-то еще.


Цель примерно такая:
1. Приостановить процесс.
2. Захватите всю память одного процесса, включая дескрипторы ресурсов.
3. Сохраните его на диске / и т. Д.
4. Создайте новый процесс.
5. записать память в этот новый процесс, чтобы возобновить процесс, включая все потоки, воссоздав новые дескрипторы для ресурсов и т. если нужно.


Возможно ли что-то подобное, и / или кто-то делал что-то подобное раньше?

Что я должен учитывать при захвате и восстановлении данных процесса?
например например, захватывать что-то кроме памяти процесса или воссоздавать новые дескрипторы из старых дескрипторов (возможно, это можно решить, используя хук функции / API для функций, используемых для создания дескрипторов, для захвата параметров создания).
Я также рассмотрел написание этого как системный драйвер, если это необходимо, например. для отслеживания того, как создается процесс.

На данный момент я бы хотел исключить дескрипторы графических ресурсов (если это облегчает задачу), поскольку сейчас я сосредоточен только на серверных системах.

Есть предложения? (Если это неправильный форум, потому что он слишком абстрактный, пожалуйста, дайте мне подсказку.)

...