Systrace для Windows

Я ищу эквивалент Windows Systrace или хотя бы strace. Я в курсе StraceNT, но интересно, есть ли еще какие-либо альтернативы. В частности, я ищу конкретный способ программного обеспечения политик системных вызовов, хотя это может быть после факта, а не активно останавливать их.

есть хороший способ сделать это в настоящее время?

8 ответов



вариантов несколько:

Контролировать Процесс

Также см. Эту статью об инструментах, встроенных в Windows 7:

основные инструменты ОС


Доктор Память (http://drmemory.org инструмент) поставляется с инструментом для отслеживания системных вызовов называется drstrace, в котором перечислены все системные вызовы, сделанные конечного приложения вместе с их аргументами: http://drmemory.org/strace_for_windows.html

для программного обеспечения политик системных вызовов можно использовать те же базовые механизмы, что и drstrace: платформа инструментов DynamoRIO (http://dynamorio.org) и системный вызов DrSyscall библиотека мониторинга (http://drmemory.org/docs/page_drsyscall.html). Они используют технологию динамического двоичного перевода, которая несет некоторые накладные расходы (20% -30% в устойчивом состоянии, но намного выше при запуске нового кода, такого как запуск большого настольного приложения), который может или не подходит для ваших целей.


API-интерфейс монитора выглядит очень полезным для этой цели.


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

http://jbremer.org/intercepting-system-calls-on-x86_64-windows/


strace доступен от Cygwin в cygwin пакет. Вы можете скачать его из зеркала с Cygwin, например:

http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
#      |                      |                              |     |
#      +-----------+----------+                              +--+--+
#                  |                                            |
#               mirror                                       version

strace-одна из немногих программ Cygwin, которая не полагается на библиотеку DLL Cygwin, поэтому вы должны быть в состоянии просто скопировать strace.exe туда, где вы хотите его использовать.


существует несколько инструментов, построенных вокруг Xperf. Он довольно сложный, но очень мощный-см. краткое руководство. Есть и другие полезные ресурсы на Анализ Производительности Windows страница


вы можете использовать process monitor, написанный Марком Русиновичем. Это фантастическое небольшое приложение, которое позволит вам прикрепить к любого запущенного процесса в системе и видеть все системные вызовы, которые в настоящее время делает.

https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx