@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
@sferomat2. к сожалению, я простой программист на 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
