Systrace для Windows - PullRequest
       61

Systrace для Windows

78 голосов
/ 03 октября 2010

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

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

Ответы [ 8 ]

37 голосов
/ 03 августа 2011

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

Монитор процесса

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

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

21 голосов
/ 12 октября 2012

WinDbg's Logger.exe является наиболее близким к strace: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060(v=vs.85).aspx

РЕДАКТИРОВАТЬ: Есть также вес Windbg: http://blogs.msdn.com/b/debuggingtoolbox/archive/2009/10/12/special-command-tracing-applications-using-wt.aspx

13 голосов
/ 07 апреля 2014

Средство Dr. Memory (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% в устойчивом состоянии, но намного выше при запуске нового кода, например при запуске большого настольного приложения), которые могут подходить или не подходить для ваших целей.

7 голосов
/ 21 января 2015

API Monitor выглядит очень полезным для этой цели.

5 голосов
/ 26 июля 2013

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

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

3 голосов
/ 03 июня 2015

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

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

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

1 голос
/ 21 января 2017

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

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

1 голос
/ 20 декабря 2011

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

есть и другие полезные ресурсы.
...