Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как добавить в скомпилированную .NET сборку свой код? |
Посл.ответ | Сообщение |
|
Создано: 21 февраля 2015 16:49 · Личное сообщение · #1 |
|
Создано: 21 февраля 2015 17:13 · Личное сообщение · #2 Какова конечная цель? jangle пишет: - Как транслировать эти строчки C# в байткод? Скомпилировать (в той же VS). jangle пишет: - Как внедрить этот байткод в скомпилированную сборку .NET? Много способов. Самые популярные - пропатчить сборку (тут тоже несколько вариантов - от прямого внедрения вашего IL до внедрения подгрузки вашей dll например) либо заинжектить своё добро в нужный домен. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
Создано: 21 февраля 2015 17:23 · Поправил: v00doo · Личное сообщение · #3 |
|
Создано: 21 февраля 2015 17:25 · Личное сообщение · #4 4kusNick пишет: Какова конечная цель? Есть нативное приложение, которое вызывает COM .NET сборку и передает в нее данные для расчетов. Я хочу изменить условия обработки этих данных. Например было: Code:
а чтобы стало: Code:
и чтобы добавляемые строчки брались из текстового файла к примеру ![]() |
|
Создано: 21 февраля 2015 19:07 · Личное сообщение · #5 jangle jangle пишет: - Как транслировать эти строчки C# в байткод? Заранее скомпилировать функцию в том виде в котором она вас полностью устраивает. Потом в зависимости от ваших целей, вы либо сделает патч, с помощью какого нибудь IL редактора. Либо можете это сделать сами с помощью библиотеки mono.cecil. ----- have a nice day ![]() |
|
Создано: 21 февраля 2015 19:28 · Личное сообщение · #6 jangle пишет: if (readPower < 1 || readPower > 30) readPower = 16; if (writePower < 1 || writePower > 30) writePower = 16; Такое можно вручную добавить прямо в байткоде, там все крайне просто, даже новых переменных объявлять не придётся. Если же вы хотите подгружать это откуда-то - значит надо emit юзать, генерировать на лету из подгруженных констант, что уже посложнее. Добавлено спустя 2 минуты Nimnul пишет: с помощью библиотеки mono.cecil Да, точно, забыл про либы для редактирования сборок упомянуть. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как добавить в скомпилированную .NET сборку свой код? |
Эта тема закрыта. Ответы больше не принимаются. |