Re[4]: Удаление .NET
От: AlexRK  
Дата: 17.10.17 10:28
Оценка:
Здравствуйте, AlexGin, Вы писали:

ARK>>Это пофиг. Тяжелые приложения не нужны (совсем).

AG>Прощайте:
AG>вижуалка, оффис, современные многопользовательские игры, и многое, многое другое

Точно. Весь этот мусор — прямиком в биореактор.
Re[4]: Удаление .NET
От: AlexRK  
Дата: 17.10.17 10:31
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Моё беглое гугление нашло вот это:

AG>Anatomy of a .NET Assembly – The CLR Loader stub
AG>Там кратко описано как работает CLR Loader Stub.

Большое спасибо.

AG>Тот самый, который загружает .NET в ту систему, где дотнет не тесно интегрирован.

AG>Там утверждается, что эта тесная интеграция начиная с XP:
AG>

AG>In Windows XP and above, the OS loader knows natively what to do with .NET executable assemblies, and fires up an instance of the CLR.

AG>У меня нет более авторитетного источника, сам что-то сомневаюсь, моя память подсказывает, что в XP x86 таки ещё не было нативной поддержки .NET в загрузчике.

Но тут возникает такой вопрос, а нужен ли дотнет при старте системы? Ну да, "OS loader knows natively what to do with .NET executable assemblies", но это вроде как не означает, что без дотнета система работать не будет.
Впрочем, направление дальнейших изысканий ясно.

UPD. Пардон, неверно понял предложение про загрузчик (думал, речь идет о загрузке системы, а речь о загрузчике приложений). Впрочем, это ничего не меняет.
Отредактировано 17.10.2017 10:36 AlexRK . Предыдущая версия .
Re[4]: Удаление .NET
От: AlexRK  
Дата: 17.10.17 10:39
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>С другой стороны, если почитать, например Hosting Overview, то вроде как по шагам описывается, как инициализируется хост для .Net приложений, но не понятно, должен ли это делать stub в самом приложении (как это было исходно), или аналогичные действия может проделать сам загрузчик.

МР>В любом случае, у .Net исполнимого файла должна быть ссылка на MSCorEE.dll из которой экспортируется CLRCreateInstance (для .Net 4)
МР>И теоретически, можно найти все зависимые от .Net приложения, поискав, кто ссылаетсян на эту библиотеку, и импортирует данную функцию.
МР>Только искать нужно именно по зависимостям, а не по тексту, а как это сделать быстро, я не очень представляю, если честно.

Ну, самый интересный вопрос — будет ли сама система работать и грузить unmanaged код (а не .NET приложения, которые не нужны ).
Re[5]: Удаление .NET
От: Alexander G Украина  
Дата: 17.10.17 11:09
Оценка: +1
Здравствуйте, AlexRK, Вы писали:

ARK>UPD. Пардон, неверно понял предложение про загрузчик (думал, речь идет о загрузке системы, а речь о загрузчике приложений). Впрочем, это ничего не меняет.


Да, PE Loader, где PE это Portable Execuable, нативные и дотнетовские, 32 и 64 битные, EXEшники и DLLки. EXEшники прежде всего.

Загрузчик для нативных EXEшников была, есть, и будет в NTDLL.

С учётом того, что система сама знает что делать с .NET EXEшником, можно предположить такие варианты:

Все варианты, в общем, сводятся к тому, что "совсем вычистить" будет сложно.

Upd: ниже по ветке сообщение от okman, где подтверждается, что загрузчик в XP знает о .Net и есть в NTDLL специфичные для .Net функции.
Русский военный корабль идёт ко дну!
Отредактировано 17.10.2017 11:29 Alexander G . Предыдущая версия .
Re[5]: Удаление .NET
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 17.10.17 11:11
Оценка: +1
Здравствуйте, AlexRK, Вы писали:

ARK>Ну, самый интересный вопрос — будет ли сама система работать и грузить unmanaged код (а не .NET приложения, которые не нужны

Достоверно ответить не смогу.
Подозреваю, что да — будет.

Но единственный приходящий на ум способ хотябы примено понять, чем это обернется — тот что я привел выше, т.е. вручную вычислить зависимости.
Re[4]: Удаление .NET
От: okman Беларусь https://searchinform.ru/
Дата: 17.10.17 11:11
Оценка: 4 (3)
Здравствуйте, Alexander G, Вы писали:

AG>...

AG>У меня нет более авторитетного источника, сам что-то сомневаюсь, моя память подсказывает, что в XP x86 таки ещё не было нативной поддержки .NET в загрузчике.

Поддержка была.

В Windows XP загрузчик во время выполнения функций ntdll!_LdrpInitialize и ntdll!LdrpInitializeProcess
определяет .NET-приложение по наличию директории "CLR header" (индекс 0xE), после чего вызываются функции
ntdll!LdrpCorValidateImage (видимо, какие-то проверки) и ntdll!LdrpCorReplaceStartContext (подмена стартового
адреса в стеке на CorExeMain).

Это все было проверено на самой обычной WinXP-SP2-x86 без установленных .NET Framework, версия ntdll — 5.1.2600.2180.
Отредактировано 17.10.2017 11:13 okman . Предыдущая версия .
Re[4]: Удаление .NET
От: Alexander G Украина  
Дата: 17.10.17 11:26
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>В любом случае, у .Net исполнимого файла должна быть ссылка на MSCorEE.dll из которой экспортируется CLRCreateInstance (для .Net 4)


Мои опыты показали, что 32 битное C# консольное приложение импортирует только _CorExeMain, а 64 битное консольное C# приложение вообще ничего не импортирует.

Впрочем, по структуре файла .Net не очень сложно определить — ImageDirectoryEntryToData с параметром IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR должна что-то хорошее возвращать для .Net
(Да, нет никакого COM Decriptor в Image Directory, но зато есть .Net Metadata вместо него).
Русский военный корабль идёт ко дну!
Отредактировано 17.10.2017 11:43 Alexander G . Предыдущая версия .
Re[5]: Удаление .NET
От: Alexander G Украина  
Дата: 17.10.17 11:37
Оценка: +1
Здравствуйте, okman, Вы писали:

O>Поддержка была.


O>В Windows XP загрузчик во время выполнения функций ntdll!_LdrpInitialize и ntdll!LdrpInitializeProcess

O>определяет .NET-приложение по наличию директории "CLR header" (индекс 0xE), после чего вызываются функции
O>ntdll!LdrpCorValidateImage (видимо, какие-то проверки) и ntdll!LdrpCorReplaceStartContext (подмена стартового
O>адреса в стеке на CorExeMain).

O>Это все было проверено на самой обычной WinXP-SP2-x86 без установленных .NET Framework, версия ntdll — 5.1.2600.2180.


Возможно, потому что SP2, мне кажется, в "чистой" её нет.
(Вообще разные SP иногда сильно меняли подобные внутренности системы)
Русский военный корабль идёт ко дну!
Re[6]: Удаление .NET
От: okman Беларусь https://searchinform.ru/
Дата: 17.10.17 11:59
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>...

AG>Возможно, потому что SP2, мне кажется, в "чистой" её нет.

Скорее всего, так и есть. WinXP зарелизили в 2001-ом году, а первая версия .NET вышла в 2002-ом.
По логике вещей, поддержку .NET в ntdll добавили в SP1 для Windows XP, т.к. он тоже вышел в 2002-ом.
Но проверить, увы, не на чем, т.к. WinXP без SP еще попробуй найди
Re[3]: Удаление .NET
От: Iron Monkey  
Дата: 17.10.17 13:54
Оценка: +1
Мне кажется, ты не с той стороны заходишь
Мож тебе просто хрюшу поставить безо всяких FW и прочих свистелок?
Re[4]: Удаление .NET
От: AlexRK  
Дата: 17.10.17 14:37
Оценка:
Здравствуйте, Iron Monkey, Вы писали:

IM>Мож тебе просто хрюшу поставить безо всяких FW и прочих свистелок?


Во-первых, хрюшу нельзя купить легально.
Во-вторых, хрюшу совсем мало какой софт и хард сейчас поддерживают.
Re[4]: Удаление .NET
От: Ops Россия  
Дата: 17.10.17 20:00
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Я предлагаю не грохнуть, а переместить или хотябы переименовать. Зачем сжигать мосты?


Зачем, если сам же советуешь виртуалку со снимком?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: Удаление .NET
От: Iron Monkey  
Дата: 18.10.17 12:49
Оценка:
O>Но проверить, увы, не на чем, т.к. WinXP без SP еще попробуй найди

пффф.. вчера скачал из-за этой темы
надо смотреть дистрибы, у которых пометка "SP0"
Re[5]: Удаление .NET
От: Alexander G Украина  
Дата: 19.10.17 05:07
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Ну, самый интересный вопрос — будет ли сама система работать и грузить unmanaged код (а не .NET приложения, которые не нужны ).


А, если цель уже в том, чтобы сломать все .NET приложения, а не совсем вычистить весь .NET, то, по идее, поддержка .NET в загрузчике мешать не будет.
Все зависимости в NTDLL.DLL на MSCorEE.dll динамические, иначе почему в нативных приложениях MSCorEE.dll нет.
Русский военный корабль идёт ко дну!
Re[6]: Удаление .NET
От: AlexRK  
Дата: 19.10.17 10:12
Оценка:
Здравствуйте, Alexander G, Вы писали:

ARK>>Ну, самый интересный вопрос — будет ли сама система работать и грузить unmanaged код (а не .NET приложения, которые не нужны ).


AG>А, если цель уже в том, чтобы сломать все .NET приложения, а не совсем вычистить весь .NET, то, по идее, поддержка .NET в загрузчике мешать не будет.

AG>Все зависимости в NTDLL.DLL на MSCorEE.dll динамические, иначе почему в нативных приложениях MSCorEE.dll нет.

Ну, не совсем так, цель — вычистить дотнет в той степени, в какой это возможно.

И, кстати, я нашел вроде как рабочий способ — утилита NTLite. Позволяет выкорчевать и дотнет, и трезубец, и кучу другого мусора.
Re[7]: Удаление .NET
От: flаt  
Дата: 19.10.17 11:05
Оценка:
.

ARK>И, кстати, я нашел вроде как рабочий способ — утилита NTLite. Позволяет выкорчевать и дотнет, и трезубец, и кучу другого мусора.


Что такое трезубец?
Re[8]: Удаление .NET
От: AlexRK  
Дата: 19.10.17 11:13
Оценка:
Здравствуйте, flаt, Вы писали:

ARK>>И, кстати, я нашел вроде как рабочий способ — утилита NTLite. Позволяет выкорчевать и дотнет, и трезубец, и кучу другого мусора.


F>Что такое трезубец?


https://en.wikipedia.org/wiki/Trident_(layout_engine)
Re[7]: Удаление .NET
От: Ночной Смотрящий Россия  
Дата: 19.10.17 12:13
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>И, кстати, я нашел вроде как рабочий способ — утилита NTLite. Позволяет выкорчевать и дотнет, и трезубец, и кучу другого мусора.


Может уже тогда сразу Nano Server, не?
Re[8]: Удаление .NET
От: AlexRK  
Дата: 19.10.17 12:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

ARK>>И, кстати, я нашел вроде как рабочий способ — утилита NTLite. Позволяет выкорчевать и дотнет, и трезубец, и кучу другого мусора.


НС>Может уже тогда сразу Nano Server, не?


Честно говоря, не слышал вообще о таком. Интересно посмотреть.

Upd. А, оно без графического интерфейса — не подходит.

Кстати, на форуме NTLite народ ужал размер установленной Win 7 до одного гигабайта, с сохранением графического интерфейса и работы с сетью. Как раз то, что надо.
Отредактировано 19.10.2017 12:36 AlexRK . Предыдущая версия .
Re[9]: Удаление .NET
От: Ночной Смотрящий Россия  
Дата: 19.10.17 13:18
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Upd. А, оно без графического интерфейса — не подходит.


Нафига тебе графический интерфейс?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.