Чтобы быстро понять, как приложение взаимодействует с ОС, использовал инструмент API Monitor (rohitab). На новых версиях Win10 и Win11 начал замечать нестабильное поведение данного приложения. Короче говоря, оно уже устарело. Чем вообще его можно заменить? Смотрел альтернативы, но они делают не совсем то, что хотелось бы. Нужен трассировщик, которым можно быстро смотреть цепочки вызовов. Кто чем пользуется? Я склоняюсь к WinDbg, но не имею особого опыта работы с ним.
Process Monitor - Windows Sysinternals | Microsoft Docs Process Explorer - Windows Sysinternals | Microsoft Docs WinObj - Windows Sysinternals | Microsoft Docs посмотрите там ещё, у Руссиновича много всяких утилит (в большинстве случае консольных) hfiref0x/WinObjEx64: Windows Object Explorer 64-bit (github.com) processhacker/processhacker: A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. (github.com) x64dbg
k3rnl, знаком со всем этим. По смыслу подходит лишь procmon, но он ограничен в возможностях. Ну, и ещё просмотр стека и последних системных вызовов тредов. Это не совсем то. Нужен именно трассировщик API-вызовов, чтобы посмотреть поведение приложения в среде, подсмотреть какую функциональность системы использует. Естественно, в динамике (хотя и статика приветствуется, если это удобно).
Да в разном. От работы драйвера, до работы с какими-то библиотеками. Было бы чудно починить его, но может есть более актуальный инструмент. WinDbg, например, имеет какие-то расширения для этого (по крайней мере, имел году в 2008), и мне интересно, может им кто-то пользуется для этой цели? Или этим вообще уже никто не занимается?
Ну это нужно конкретно знать в чем проявляется проблема, с такой расплывчатой формулировкой не понятно даже в принципе что может быть. Мне кажется просто смещения где-то поменялись в системных структурах и достаточно просто пофиксить несколько байт в либах. Но это только на первый взгляд.
Thetrik, в том и суть моего поста. Стоит ли его вообще чинить, или проще похоронить... Мало того, что не поддерживается давно, он ещё и приложения крашит, даже на старых системах.
Это зависит от того что в итоге требуется. Если решение проблемы занимает слишком много усилий, то возможно стоит поискать другой инструмент, но я тут уже не подскажу т.к. подобных инструментов с такой функциональностью я не знаю. Мне просто интересен данный вопрос именно в контексте "выяснить причину и пофиксить баг".
Понял. Причину я буду искать после того, как не найду достойной альтернативы. Пока я знаю лишь, что драйвер не загружается (приложение лишилось части возможностей кернела), и есть какие-то ошибки с системными длл (может, это связано с работой драйвера). То что целевой процесс крашится - уже привык
Поставляемый с приложением кернел-модуль. Там их 2x2, на разрядности. Думаю, что не работают оба. --- Сообщение объединено, 9 янв 2022 --- Thetrik, и в логе он жалуется на ApiSet'ы.
GwasmG, наверное , тут как раз подошел бы тот самый визор. Попробуйте например вот это https://github.com/hasherezade/tiny_tracer правда, гуёв там нет, но врядли будет какой-то инструмент по типу апи монитора. кстати, можно было бы пойти на форум разраба (рохитаб) и запостить там баг репорт. Но с такой расплывчатой формулировкой (не работает, а что - сам не знаю) толку не будет.
Просмотрю, спасибо. А гуй и не нужен для таких вещей. Несколько окон консоли - куда удобнее для текстовой информации, чем отрисовка в графических элементах. Я ж даже про WinDbg писал... Разраб ещё в 2018 году писал, что вроде как что-то там ищет время и силы на обновление, но 2018 уже давно прошёл. Думаю, мысль понятна
Это обычные DLL. Можно глянуть почему не грузятся, только там примитивная антиотладка, но она элементарно обходится.
При запуске 32 битной версии на 64 битной системе запускается 64 битный с параметром psn. Этот вызов отрабатывает успешно? apimonitor-psn-x64.sys инжектируется в csrss? CsrCreateProcess перехватывается успешно? Уверен, где-то в этой цепочке трабла.
Только что увидел, что это действительно лишь длл для внедрения в подсистему... Я даже не знаю, упрощает ли это задачу, или усложняет.
Ну ты посмотри, проходит ли инжект в csrss. С большой вероятностью система просто отклоняет все модификации / аллокации памяти / создание удаленных потоков в этом процессе и все. В этом и проблема скорее всего.
Нет, модуль только в процессе самого монитора. Это я и подразумевал, когда писал Меня это и удивило. Я-то думал, что там драйвер упакован. А по сути - да, где-то в этой цепочке и кроется проблема. Но кроме того, смущают ApiSet'ы в логе (Schema Map Version 6 is not supported; и куча Failed to open). --- Сообщение объединено, 9 янв 2022 --- Thetrik, похоже, вот и ответ: Failed to open process: 696 - Error: 5, Отказано в доступе. Failed to open process: 784 - Error: 5, Отказано в доступе. Оба айди соответствуют csrss.exe
GwasmG, А в чём проблема, пропатчить весь экспорт/импорт ? Там коденга на час. Думаешь визор собрать или какой то трейсер проще - нет, нет там гуя он не нужен.