Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как узнать, что под капотом у CLR объекта  [new]
Mikhail__174
Member

Откуда:
Сообщений: 3
На сервере, который я обслуживаю, имеется много CLR объектов. Я впервые сталкиваюсь с ними. Возможно, они работают неправильно, и нужна оптимизация. Исходников нет. Как-то можно узнать код данных объектов? Вероятно, они написаны на c#. Пробовал запустить профайлер, но кроме как "EXEC 'Name Of Clr object'" там не увидел. Как я понимаю, речь идёт о дизассемблировании DLL файла?
26 мар 20, 09:15    [22106123]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
tunknown
Member

Откуда:
Сообщений: 748
Mikhail__174
Пробовал запустить профайлер, но кроме как "EXEC 'Name Of Clr object'" там не увидел.
Если эти CLR работают с базой, то могут в результате отдельного логина получать другой SPID, дополнительный к вызвавшему sql коду. Вручную отловить просто, если поток небольшой. Чтобы отловить автоматически нужно понять условия фильтрации в профилере. Вероятно, что у CLR будет другой Application Name.

C CLR можно работать подобно указанному в статье.
26 мар 20, 09:24    [22106125]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
Mikhail__174
Как-то можно узнать код данных объектов?
Нет. Можно получить код IL, то есть как бы .NET ассемблер. Разбираться в нём будет трудно, к тому же это ничего не даст для каких то практических целей.
Mikhail__174
Исходников нет.
Значит, нет вариантов, кроме как написать новые CLR объекты, или вообще от него отказаться.
26 мар 20, 09:39    [22106133]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5619
ILSpy
Telerik JustDecompile
JetBrains dotPeek
RedGate Reflector
ну, и всё в куче: https://www.google.com/search?q=.net decompiler
Я лично использую ILSpy.
26 мар 20, 09:45    [22106136]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5619
alexeyvg
Mikhail__174
Как-то можно узнать код данных объектов?
Нет. Можно получить код IL, то есть как бы .NET ассемблер. Разбираться в нём будет трудно, к тому же это ничего не даст для каких то практических целей.

Нет, существующие декомпиляторы прекрасно конвертируют IL в код на практически любом языке - C#, VB.Net, хоть F#. Если нет pdb-файлов, то полученный код не будет эквивалентен исходнику, если есть - будет.
Ну, да, если автор прошелся по коду обфускатором, то будут проблемы. Но чтобы хотя бы понять, о чем в исходниках речь, можно применить de4dot - код, обработанный тем же .Net Reactor'ом, переводился во вполне читабельное состояние (хотя в проект его скомпилировать было нельзя).
26 мар 20, 09:49    [22106140]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
Mikhail__174
Member

Откуда:
Сообщений: 3
Спасибо за ответы, буду пробовать IlSpy и de4dot
26 мар 20, 10:49    [22106173]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
Сон Веры Павловны
alexeyvg
Нет. Можно получить код IL, то есть как бы .NET ассемблер. Разбираться в нём будет трудно, к тому же это ничего не даст для каких то практических целей.

Нет, существующие декомпиляторы прекрасно конвертируют IL в код на практически любом языке - C#, VB.Net, хоть F#. Если нет pdb-файлов, то полученный код не будет эквивалентен исходнику, если есть - будет.
И что, получается вменяемый исходник?
Да, не знал, спасибо...
26 мар 20, 12:53    [22106263]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
alexeyvg,

вполне вменяемый, если нет обфускации и не выкинуты комментарии.
26 мар 20, 13:08    [22106276]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30701
Владислав Колосов
alexeyvg,

вполне вменяемый, если нет обфускации и не выкинуты комментарии.
Хм, а комментарии что, содержатся в исполняемом коде? (понятно, что никаких pdb нету, есть просто задеплоенный в БД CLR-объект)
26 мар 20, 15:51    [22106407]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать, что под капотом у CLR объекта  [new]
Mikhail__174
Member

Откуда:
Сообщений: 3
Владислав Колосов,

автор
и не выкинуты комментарии.


в IlSpy всё хорошо видно, но комментариев нет
вчера, 11:38    [22107281]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить