способ "перевернуть" хеши dw20.exe? - PullRequest
5 голосов
/ 09 ноября 2009

Наше приложение выбрасывает необработанные исключения. DW20.exe регистрирует эти как этот тестовый случай:

EventType clr20r3, P1 clr20r3.exe, P2 1.0.0.0, P3 4af175d6, P4 clr20r3, P5 1.0.0.0, P6 4af175d6, P7 1, P8 a, P9 system.applicationexception, P10 NIL.

P9 - название исключения. Если имя исключения превышает 32 символа, DW20.exe хэширует имя (и предположительно кодирует хэш). Например, исключение "LongExceptionWithNameThatIsOver32" регистрируется как:

EventType clr20r3, P1 aspnet_wp.exe, P2 2.0.50727.3082, P3 492b8702, P4 app_web_bmcy0pha, P5 0.0.0.0, P6 4af86274, P7 59, P8 5, P9 3e3rjg2ow1fkknn0eqptakfytpvxew1k, P10 NIL.

Как видите, P9 больше не является именем исключения, а хешем имени.

Я могу генерировать исключения в нашем приложении по одному, но я бы предпочел передать имя исключения в служебную программу, чтобы получить хеш. Я вполне уверен, что DW20.exe - это программа, выполняющая хеширование (а не .NET Runtime). Я хотел бы знать, что использует алгоритм хеширования / кодирования dw20.exe, чтобы я мог создать утилиту, которая будет принимать все мои исключения и создавать соответствующий хэш / кодирование.

Я пытался подключить windbg к тестовой программе, но затем dw20.exe не вызывается. Я попытался подключить windbg к dw20.exe, когда он открывает диалоговое окно о передаче в Microsoft, но к тому времени он уже зарегистрировал исключение. Я не могу запустить dw20.exe под управлением windbg.exe, что может быть одним из способов выяснить, что используется.

JR

...