@74806658

Господа айтишники, а есть среди вас спец по .NET? Суть проблемы: 1. Есть приложение на J#. 2. В приложении есть аля проводник. 3. В проводнике файлы не упорядочены. Это очень сильно раздражает. 4. Я декомпильнул dll, нашел кусок, где можно это пофиксить. Собственно вопрос: В Java я бы байт-код мог бы руками поправить. Но в IL моих текущих знаний не хватит. Нужно как-то добавить код в dll. Кто-то силен в этом?

2021-02-17 19:03:28

@sferomat

я вижу два варианта решения этой проблемы: 1) написать автору приложения, чтобы он пофиксил, и выпустил новую версию; 2) заменить (вставить?) в декомпилированный текст код, который сортирует список, и получить из него новую DLL. думаю, это можно сделать при помощи ilasm.exe. получить код для вставки, наверное, можно, написав нужный код на C# (J# ?), например, и декомпильнув получившуюся DLL. или, наверное, есть ещё какой-то более простой способ получения CIL из высокоуровневых языков...

2021-02-17 19:36:56

@74806658

Спасибо большое за ответ! 1. Автор — большая компания, которая забила конкретно на это приложение и предлагает альтернативу, которая в моем случае сильно хуже. Но если бы и не забила, нужен был бы жирный контракт, чтобы в суппорт писать и что-то требовать. 2. А вот это примерно тот путь, который хочу попробовать. Допустим, я получу IL код сортировки. Его потом можно будет в DLL вставить? DLL для NET — это обычный IL-бинарник или же нет?

2021-02-17 20:07:52

@sferomat

2. к сожалению, я простой программист на C#, и не знаю внутренней кухни .NET настолько глубоко :) но беглый поиск в Гугле даёт надежду, что вариант с ilasm.exe должен сработать... и не важно, что в бинарном виде представляет собой "DLL для .NET". хотя могу ошибаться — не проверял...

2024-04-25 06:47:30

@74806658

Спасибо! В велочате еще подсказали про dnSpy. Попробую и отпишусь, что помогло.

2021-02-17 20:15:35

@74806658

В итоге dnSpy оказался суперским инструментом. Код добавил, все теперь работает, как хотел, просто кайф. Напрягает только то, что проект а архиве, при этом релиз был недавно, но инфы вообще никакой нет. Моя паранойя предлагает позже добить вопрос через ildasm -> ilasm.

2021-02-18 14:15:26

@sferomat

понятно. спасибо за окончание этой истории, будем знать :) хорошо, что всё получилось как было нужно! 👍

2021-02-18 14:21:01