Ru-Board.club
← Вернуться в раздел «Программы»

» Process Hacker

Автор: Skif_off
Дата сообщения: 23.10.2013 04:43
Victor_VG

Цитата:
кинуть в каталог с программой старый kprocesshacker.sys из r5465

Все равно ошибка. Замена WindowExplorer тоже ничего не меняет.
Автор: Victor_VG
Дата сообщения: 23.10.2013 05:41
Skif_off

Нет, тут штука попаганее если я правильно на MSDN разыскал - приложение не успевает полностью проинитить свои либы и себя, и именно на сём наборе падает. Днём пересоберу более старую ревизию 5484 и на ней попробуем. Похоже 5485 ожидают исправления....
Автор: Victor_VG
Дата сообщения: 23.10.2013 16:11
На всякий случай я сам зарепортил обе проблемы на форум - первую с решением, вторую с тем что раскопал на MSDN, но там не столь чёткая информация была чтобы от неё отталкиваться - одна из возможных причин ошибок, а что на самом деле происходит нужно искать. Возможно, что причины в очередной каверзе от Микрософт подложенной в компиляторе подобно той, что они подкладывали ещё в 2012-й студии....
Автор: addhaloka
Дата сообщения: 23.10.2013 17:19
Victor_VG
Чёто не наблюдаю такого, как у SLasH. Process Hacker v2.3.2 r5485 portable, WinXP SP3 Pro Ru x86.

Автор: Victor_VG
Дата сообщения: 23.10.2013 18:24
addhaloka

Отлично! Пусть ребята потестят этот набор Process_Hacker_v2.32_r5484-bin.7z - он специально для них был собран. Там обычный комплект из установщика, раскиданного скриптом бинарника и портативки. Пусть на ней посмотрят, тем паче что я обещал им подкинуть тестового кролика.
Автор: Skif_off
Дата сообщения: 23.10.2013 19:36
Victor_VG
У меня все равно ошибка.
Автор: Victor_VG
Дата сообщения: 23.10.2013 20:24
Skif_off

Я сейчас попросил друга проверить что у него на ХР SP3 будет - у него ошибки так же нет ни с r5484, ни с r5485. Значит тут нужны по возможности более точные данные. Идеально конечно лог отладчика со всей информацией что происходит именно в момент сбоя, но думаю, что не всегда удастся его сделать из-за разницы событий во времени...

Пока у нас есть два случая наличия явления и два его отсутствия....
Автор: addhaloka
Дата сообщения: 23.10.2013 20:39
Victor_VG 21:24 23-10-2013
Цитата:
Пока у нас есть два случая наличия явления и два его отсутствия....

Разобрался, почему у меня не валится. Из-за того, что dbghelp.dll рядом с ProcessHacker.exe лежит. Попробовал её убрать - получил вышеописанную ошибку. Назад вернул - опять всё в норме.
Автор: Victor_VG
Дата сообщения: 23.10.2013 20:50
addhaloka

Цитата:
Разобрался, почему у меня не валится. Из-за того, что dbghelp.dll рядом с ProcessHacker.exe лежит. Попробовал её убрать - получил вышеописанную ошибку. Назад вернул - опять всё в норме.

Ага, а это уже интересно - у нас стоит Windows Debugging и эта библиотека туда включена, а если у ребят этой DLL нет, то возможно что тут и кроется причина явлений. Ссылки на эту библиотеку есть на MSDN, и по идее мы можем решить проблему элементарно - скачать установщик SDK, отметить то что нужно и скачав установить системный отладчик - тот, что включён в Visual Studio отличается от него о чём написано в MSDN.
Автор: Skif_off
Дата сообщения: 23.10.2013 21:09
Victor_VG

Цитата:
у нас стоит Windows Debugging и эта библиотека туда включена, а если у ребят этой DLL нет

Ее не может не быть, библиотека dbghelp.dll версии 5.1.2600.5512 включена в дистрибутив и лежит в system32. Тогда вопрос: почему на Win7, например, Process Hacker находит библиотеку, а на WinXP SP3 уже нет, хотя в обоих случаях библиотека где положено и в конфриге есть строка <setting name="DbgHelpPath">dbghelp.dll</setting>?

Добавлено:
Положил рядом - все равно ошибка.

Добавлено:
Положил рядом dbghelp.dll от Win7 (6.1.7601.17514), получил ошибку
Точка входа в процедуру wcsncpy_s не найдена в библиотеке DLL msvcrt.dll
после нажатия ОК все работало, в т.ч. при повторном вызове диалога окна Miscellaneous\Windows
Автор: addhaloka
Дата сообщения: 23.10.2013 21:39
Skif_off 22:09 23-10-2013
Цитата:
библиотека dbghelp.dll версии 5.1.2600.5512
...
dbghelp.dll от Win7 (6.1.7601.17514)

Надо чёто среднее класть. У меня работала 6.12.0002.633, но по-моему для XP она всё же не совсем подходящая. А подсунул dbghelp.dll 6.9.0003.113 из дистрибутива 2-й Ольки - и ошибки нет, и в импорте порядок.
Автор: Victor_VG
Дата сообщения: 23.10.2013 21:52
Skif_off

Всё верно, в ОС включается библиотека-заглушка, а полноценная есть только в составе Windows Platform SDK и её можно скачать например так:



Или он есть в Windows Platform SDK 7.0 в каталогах \Setup\WinSDKDebuggingTools и \Setup\WinSDKDebuggingTools_amd64 на ХР у меня они работали - я ставил как раз этот SDK из-за того, что в нём есть MS VC++ v9.0 который и был мне тогда нужен, а ставить всю студию не было желания.
Автор: Skif_off
Дата сообщения: 23.10.2013 22:00
Victor_VG

Цитата:
в ОС включается библиотека-заглушка

Однако с ней работало до как минимум r5465

addhaloka
Спасибо, добавил dbghelp.dll 6.9.0003.113. На Win7 с ней тоже порядок - загружается, ошибок нет, оставлю для совместимости, пожалуй.
Автор: Victor_VG
Дата сообщения: 23.10.2013 22:17
Skif_off

В r5478 было изменение:

* Fixed console host information for Windows 8.1
* Automatically detect dbghelp.dll from SDK 8.1
а в OleDbg только одна х86 версия, нужна и х64 для 64-х битной сборки. Которая есть только в SDK.
Автор: SLasH
Дата сообщения: 23.10.2013 23:20
По подсказке addhaloka добавил dbghelp.dll 6.9.0003.113 от Ольки и PH 2.32.0.5485 больше от таких действий не валится.
Автор: Victor_VG
Дата сообщения: 23.10.2013 23:43
SLasH

Но это решение годится только для х86, для х64 придётся её брать из пакета Debugging Tools for Windows идущего в Windows Platform SDK.
Автор: Skif_off
Дата сообщения: 23.10.2013 23:47
Victor_VG
x64 на Win7x64 работает нормально, dbghelp.dll из системы хватает, x86 тоже хватает, косяк, кажется, достался исключительно WinXP.
Автор: Victor_VG
Дата сообщения: 24.10.2013 00:56
Skif_off

Это да, но реальный функционал этих DLL различен - в либе для ХР нет 54 вызовов которые есть в либе от системного отладчика, у семёрочной системной разницы ещё больше - 141 вызов, и я сильно опасаюсь что эти вызовы ещё преподнесут где-то сюрпризы...
Автор: Skif_off
Дата сообщения: 24.10.2013 01:17
Victor_VG
Лично я бы хотел по возможности избежать использования SDK Крайняя версия 8.1 работает только с WinVsta-Win8+серверные 2008-2012, XP за бортом.
Автор: Victor_VG
Дата сообщения: 24.10.2013 01:30
Skif_off

Ну, это не проблема. Могу подбросить и сами либы от Windows 2003 SDK к примеру, но должны работать и от Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 . Попробуй отдельные либы - они версии 6.4, может и хватит.

Добавлено:
Process Hacker v2.32 r6586

Постоянный линк в шапке, проблем у себя я не заметил, архив обновлён. Исправления в исходники внёс wj32.

Что нового?

Цитата:
r5486
fixed IntelliSense warnings

Автор: Skif_off
Дата сообщения: 24.10.2013 03:27
Victor_VG
Взял 6.12.0002.633 из SDK 7.1 for Win7, х86 сразу положил, х64 на всякий случай припас.

r6586 так же валится с ошибкой, махнули рукой на старушку WinXP
Автор: Victor_VG
Дата сообщения: 24.10.2013 04:50
Process Hacker v2.32 r5487

Постоянный линк в шапке, проблем у себя я не заметил, архив обновлён. Исправления в исходники внёс wj32.

Что нового?

Цитата:
r5487
changed treenew selection behavior to match Windows 8 listview

Skif_off

А либы версии 6.4 как себя на r5487 ведут?
Автор: Skif_off
Дата сообщения: 24.10.2013 06:09
Victor_VG

Цитата:
А либы версии 6.4 как себя на r5487 ведут?

Только с r5485 пробовал, нормально вроде. 6.12 оставил из-за максимального охвата ОСей, с ней работает и r5487.
Автор: Victor_VG
Дата сообщения: 24.10.2013 06:49
Process Hacker v2.32 r5489

Постоянный линк в шапке, проблем у себя я не заметил, архив обновлён. Исправления в исходники внёс dmex.

Что нового?

Цитата:
r5489

r5488
Plugins: Removed WindowsCodecs dependencies

В r589 просто переформатирован updater.c, зависимость от WIC устранена в r5488.

Что касается dbghelp.dll, то берётся последняя версия данной DLL из Widows 7/8 SDK соответствующей разрядности и кладётся в каталог Process Hacker рядом с ProcessHacker.exe согласно статье в MSDN:

Цитата:
Путь поиска, используемый Windows для обнаружения библиотеки DLL

http://msdn.microsoft.com/ru-ru/library/7d83bc18.aspx

Используя механизмы явного и неявного связывания, Windows сначала выполняет поиск "известных библиотек DLL", таких как Kernel32.dll и User32.dll. Затем Windows выполняет поиск библиотек DLL в следующей последовательности:

1) Каталог, в котором находится исполняемый модуль текущего процесса.
2) Текущий каталог.
3) Системный каталог Windows. Путь к этому каталогу извлекается с помощью функции GetSystemDirectory.
4) Каталог Windows. Путь к этому каталогу извлекается с помощью функции GetWindowsDirectory.
5) Каталоги, указанные в переменной среды PATH.

Примечание

Переменная среды LIBPATH не используется.

тот же совет дал и dmex и это же написано в FAQ в разделе Symbols don't work properly!. Путь к библиотеке укажите на всякий случай прямо чтобы исключить вероятность использования DLL не подходящей версии.
Автор: ItsJustMe
Дата сообщения: 24.10.2013 08:40
Skif_off
Что за ошибку вы ловите? Опишите процесс ее получения, любопытно у себя посмотреть.
Автор: Skif_off
Дата сообщения: 24.10.2013 09:23
ItsJustMe
На любом процессе (лучше с GUI, чтобы был список) ПКМ/Miscellaneous/Windows, по любому элементу списка ПКМ/Properties или двойной клик. Скрин есть здесь, сам дополнительные сведения не смотрел, т.к. только проверял есть ошибка у меня или нет. После нажатия кнопки Закрыть Process Hacker легко закрывается из меню в панели задач, запускается снова без ошибок, в памяти висят два процесса drwtsn32.exe (один дочерний), сами не завершались (ради любопытства перезагружал - прощальный экран и все, пришлось кнопкой питания вырубать), прибиваются легко.
Автор: taxion
Дата сообщения: 24.10.2013 09:43
Не мог понять, откуда лезут "зомби процессы" на Windows 8.1, процессы по привычке прибивал PH, всё переворошил, грешил на сырость OS, оказалось, зомбяков плодит PH, штатным дипетчером процессы нормально завершаются. Может кто сталкивался?
Автор: ItsJustMe
Дата сообщения: 24.10.2013 09:52
Skif_off
Скрины постить лень - опишу словами
Открывается окно с кучей Classes. Некоторые черные, основная масса - серые. Двойной клик на любом - окно с вкладками General, Class Styles, Properties. Закрываются все окна без проблем.
Автор: Skif_off
Дата сообщения: 24.10.2013 10:30
ItsJustMe
WinXP SP3, Process Hacker не ниже r5485 (дефолтный, dbghelp.dll в корне папки отсутствует), никаких Debugging Tools for Windows/SDK/прочего для отладки?
Автор: Victor_VG
Дата сообщения: 24.10.2013 17:08
taxion

Это не "тени" процессов, а разные способы показа реальности - программа от M$ действует по принципу: "Если пользователь сказал завершить процесс, то он уже сохранил обрабатываемые данные и процесс можно завершить аварийно!" и использует вызов TerminateProcess() который аварийно завершает всё его дерево вместе с дочерними процессами без сохранения данных, а РН если мы нажимаем в дереве DEL реализует функцию ExitProcess() которая даёт время процессу сохранить данные. При это те процессы код возврата которых равен 1 (success) ни системный Task Manager ни Process Explorer в списке запущенных в упор не видят даже если он ещё находится в памяти, а РН показывает их реальное состояние. Отсюда и "зомби" - это ушедшие в фоновый режим, но ещё не завершившие до конца сохранение данных процессы.

Аварийное завершение функцией TerminateProcess() используется только если процесс не отвечает на системные сигналы. И одной из особенностей системного Task Manager и Process Explorer является установка кода возврата для любого завершённого ими процесса в 1 (success), что часто не позволяет процессу winlogon перезапустить аварийно завершённый процесс explorer поскольку он это сделает только если его код возврата не будет равен 1.

Skif_off
ItsJustMe

И должно падать ибо в таком случае берётся первая попавшаяся в процессе поиска DLL, а есть ли в ней нужные функции или нет пока её не позвали проверить нельзя. Не соблюдение правил поиска DLL описанных в MSDN и вынуждено прибитых в шапку априори подразумевает создание условий для возникновение ошибок. Как с ними бороться так же прописано в шапке и на странице 57.

И я думаю что стоит прекратить эксперименты с dngjrlp.dll от Windows XP/2003 ибо о том что они бесполезны я уже не раз говорил. В dnghelp.dll из OS Win XP/2003 импортируемые вызовы используют экспорты из DrWtsn который остался практически неизменным ещё со времён Windows 3.0 где он появился, а начиная с Vista/2008 её постепенно переориентировали на использование Debugger Engine API что позволяет использовать оптимальный отладчик для каждой задачи и DrWtsn в итоге из системы просто по тихому выкинули за ненужностью.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123

Предыдущая тема: ICE Encrypt vs Drag'n'Crypt ULTRA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.