Контроль определенных системных вызовов, сделанных процессом в Windows

select
 X.a,
 SUM(x.B)
from (
  values
   ('hello',1),
   ('hello',2),
   ('goodbye',1)
  ) as X(a,b)
GROUP BY X.a
HAVING SUM(b)>1
34
задан tomasz 20 October 2013 в 14:42
поделиться

4 ответа

В Windows есть несколько опций.

Windows Performance Toolkit может использоваться для включения трассировки различных системных событий, включая файловый ввод-вывод, и включает инструменты для обработки и просмотра эти события. Вы можете использовать xperf, чтобы начать трассировку различных классов событий и сохранить их в ETL-файл, который затем можно будет обработать или просмотреть с помощью тех же инструментов позже.

Process Monitor от SysInternals - еще один, очень простой в использовании вариант, и позволяет быстро увидеть все обращения к файлам и реестру, выполняемые любым процессом в системе. http://blogs.msdn.com/carloc/archive/2008/10/31/how-to-automate-process-monitor.aspx также показывает, как запускать Process Monitor в автоматическом режиме. 1276] Если вы хотите сделать это полностью программно, вы можете использовать функции ETW (StartTrace, EnableTrace, и т. д.), чтобы привязать события ввода-вывода к файлу и сохранить в файл ETL. Пример кода здесь .

25
ответ дан 27 November 2019 в 17:10
поделиться

On windows, you can use process monitor to monitor process activity (io and registry). I guess this fits your need if you are not really want to know the system calls.

And you can use winapioverride32 to monitor api calls.

6
ответ дан 27 November 2019 в 17:10
поделиться

Может быть FileMon ?

Также есть NtTrace , похожий на strace.

2
ответ дан 27 November 2019 в 17:10
поделиться

Другой инструмент трассировки Windows API: logexts.dll (часть Debugging Tools for Windows ), который можно запустить из WinDbg / ntsd / cdb или через отдельную программу logger.exe .

2
ответ дан 27 November 2019 в 17:10
поделиться
Другие вопросы по тегам:

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