Управляющий процесс запускается в системе

Если вы действительно хотите, это можно сделать, используя applymap и zip.

a, b = map(list, zip(*df.applymap(lambda x: (x, )).values.tolist()))   
a = list(map(tuple, [a_[0] for a_ in a]))

a
# [('h', 'j', '1', '2', '3', '4'),
#  ('g', 'u', '0', '9', '9', '8'),
#  ('i', 'u', '5', '6', '7', '8'),
#  ('5', '6', 'h', '7', '8', '1')]     
b
# [(2,), (5,), (7,), (11,)]

Другой вариант - просто обрабатывать каждый столбец отдельно.

a = list(map(tuple, df['Input']))
b = [(x, ) for x in df['Output']]

a
# [('h', 'j', '1', '2', '3', '4'),
#  ('g', 'u', '0', '9', '9', '8'),
#  ('i', 'u', '5', '6', '7', '8'),
#  ('5', '6', 'h', '7', '8', '1')]   
b
# [(2,), (5,), (7,), (11,)]
7
задан Cody Gray 8 May 2012 в 08:48
поделиться

4 ответа

Существует несколько способов сделать это. Если только необходимо отследить создание процесса, прибывающее из определенной программы (или несколько программ), метод EasyHook/Detours, упомянутый здесь, будет работать вполне прилично, но эффективно необходимо установить рычаг на CreateProcess в каждую программу, таким образом, это не отличное решение, если Вы хотите отследить все создание процесса в системе.

Существует определенный API для этого в основанных на NT вариантах Windows (NT/2000/XP/Vista) назван PsSetCreateProcessNotifyRoutine (). К сожалению, можно только вызвать эту функцию от ring0, таким образом, это должно быть сделано в драйвере. Существует удобное объяснение (и код) в этой статье CodeProject: http://www.codeproject.com/KB/threads/procmon.aspx.

AFAIK, это - просто уведомление и отдельно не позволяет Вам говорить систему, должен ли процесс быть создан или нет. Однако, если бы необходимо было сделать это, то Вы могли бы приостановить процесс (например, путем присоединения к нему как отладчик), в то время как код решает, уничтожить ли его или нет.

7
ответ дан 6 December 2019 в 10:55
поделиться

Необходимо проверить easyhook-continuing-detours проект, который является портом.NET проекта Microsoft Detours. Это позволит Вам сцеплять неуправляемые API (такие как CreateProcess). Проверьте примеры кода для простой подобной FileMon программы здесь.

6
ответ дан 6 December 2019 в 10:55
поделиться

Можно узнать, когда процессы запускаются через использование потребителя ETW в реальном времени - однако, чтобы смочь принять некоторые меры, которые могли возможно отменить процесс от запуска, необходимо будет сделать что-то теневое / недокументированный, как сцепление CreateProcess или использование драйвера фильтра ядра для блокирования чтений к EXE.

3
ответ дан 6 December 2019 в 10:55
поделиться

Просто используйте уведомления о создании процесса. Это включено в Windows. Вы ничего не должны сцеплять.

2
ответ дан 6 December 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: