Как изменить внешний процесс с помощью Python - PullRequest
0 голосов
/ 30 сентября 2011

Начинающий здесь. Я пытаюсь выяснить, как изменить работающий процесс в системе Linux с помощью Python.

Пример: у меня есть программа на Python, которая принимает в качестве аргумента PID. Моя цель - использовать этот PID и получить информацию о запущенном процессе с этим PID. (1) Найти, где он находится в памяти (2) Где указатель инструкции (3) Измените программу так, чтобы следующая исполняемая инструкция была чем-то другим. (4) Вернуть указатель на следующую правильную инструкцию (5) Пусть исходный процесс выполняется так, как должен:

Я пытаюсь разработать POC, чтобы показать, как маленький кусочек кода может быть внедрен в работающий процесс, чтобы просто напечатать 'привет' на стандартный вывод и не мешать остальной части процесса.

Я посмотрел трассировку и некоторые другие модули, но все они, похоже, следят за текущим выполняющимся процессом python. Также посмотрел на pyhook, но в основном для перехвата сигналов с клавиатуры и т. Д. Кроме того, я немного посмотрел на pygdb.

Может ли кто-нибудь указать мне на некоторые модули, которые могут быть полезны, или на некоторые примеры кода. Я пробовал поискать в Google "PID процесса проверки Python" и т. Д., Но не получил ничего очень полезного.

Любая помощь очень ценится.

Спасибо!

1 Ответ

0 голосов
/ 30 сентября 2011

Также новый пользователь Python. Можете ли вы сделать все это только с помощью командной строки? Если это так, то вы можете использовать os.system ('[command]') или модуль подпроцесса . Например, вы можете использовать команду pmap для получения отображений памяти. Что касается 2-5, у меня нет опыта там. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...