• XSS.stack #1 – первый литературный журнал от юзеров форума

[C#] dnlib - Изменение версии .NetFramework'a другого приложения

r3xq1

(L3) cache
Пользователь
Регистрация
14.01.2020
Сообщения
233
Реакции
146
Народ кто нибудь работал с библиотекой dnlib?

Средствами dnlib библиотеки пробую изменить версию, сама версия меняется ( проверял через утилиту die - Detect It Easy )
Собственно код для изменения версии:

C#:
 // MyBinaryExeFile - Файл .exe находящийся в ресурсах ( Version .NetFramework: 4.5 )
byte[] resource = Properties.Resources.MyBinaryExeFile;
using var module = ModuleDefMD.Load(resource);
if (module.IsILOnly)
{
    module.RuntimeVersion = "v4.8.3928.0"; // тут меняется версия ( пробовал по разному с v и без и.т.д )
    module?.Write(Path.Combine(GlobalPath.CurrDir, "NewBuild.exe"));
}

После запуска нового файла появляется ошибка:

Screenshot_1.png


Если убрать module.RuntimeVersion то всё норм! Но с этим параметром ломается
Все версии NetFramework на компе установлены.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Так а оригинальное значение как выглядит?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Обновил вопрос
И где в вопросе написано, какое значение имеет эта строка в оригинале? Если ты меняешь версию, то вероятно, и все версии библиотек в референсах придется тоже менять. Больше пока ничего в голову не приходит.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Еще, если оригинальная версия была меньше или равна 3.5, то вероятно это в принципе не будет работать. Там между версиями 2.0 и 4.0 какая-то была существенная разница в байткоде штоли, если мне память не изменяет. Ну смысл в том, что 2.0-3.5 исполняемые файлы гоняются на рантайме 2.0, а выше 4.0 уже на рантайме 4.0. Ну а рантайм 4.0 может загружать 2.0-3.5, но видимо в режиме совместимости, тк для этого нужно специальный конфиг докладывать к исполняемому файлу.
 
Походу я что-то не добавил ещё для изменения версии, странно в DIE показывает что версия изменена, закинув в dnspy версия постоянно остаётся 4.5. Пока буду думать как решить эту проблему, но если кто шарит, подскажите)
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх