#DevJungles #dotnet #ityoutubers
Telegram канал Dev Jungles -
Поддержать канал можно:
- Спонсорством на YouTube
- Переводом на карту или пополнением банки монобанка:
Dev Jungles YouTube Channel Fund
Номер карты банки:
5375 4112 0230 1466
- Или криптой:
BTC - 18C3jsFYwviN5FvzpAt4uMWRfUeVKvdWxy
ETH - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on ERC20 - 0x2903f63ba9009732272e91a299053b9d7b623216
USDT on TRC20 - TSmS5RzQKbWdxZkoM2oRo9HK8FYBaq744T
LTC - LN3CkrnvZLZTXDUhqTy1gUKMVpLjEPA4G2
DOGE - DPwon439jf3axVSBwyuXso6z7CivuJF655
AAVE - 0x2903f63ba9009732272e91a299053b9d7b623216
Waves - 3P8D57Zw7CrqW2o7dHpvZR2UzAzQRFA2kZd
Описание:
Доброго времени суток тебе, странник! Добро пожаловать в Dev Jungles Stories!
Сегодня буду рассказывать про то, как CLR загружает и выполняет код в памяти, как код JIT'ится, будем смотреть ассемблерные листинги, и даже сможем сделать override для sealed метода. Как вам такое?
А еще эти трюки пригодятся, для того что бы написать плагин к какой-то программе, которая вообще-то не предусматривает написание плагинов.
Вы знаете как можно замокать статический метод? Наверняка скажите, что Moq или NSubstiture это умеют, но как это работает под капотом?
А что делать если в системной библиотеке оказалась проблема: где найти рычажки, что бы влезть в это и исправить?
А еще вам сюда, если вам по зарез как нужно пропатчить что-нибудь от чего у вас нет исходников! Расскажу как это можно сделать!
Будем ковыряться и в листингам памяти и в ASM, посмотрим как JIT раскладывает методы в оперативной памяти.
Что ж, не будем долго тянуть, вперед!
Полная версия тут:
Тайм-коды:
00:00 - Тизер
00:38 - Как работает .Net
04:27 - Visual Basic
08:48 - Процессоры?
11:30 - Method Call: Under the hood
19:20 - Проверка полученной информации на практике
20:30 - jetbrains dotpeek
29:23 - Сколько занимает JITting
35:18 - Пример из жизни когда Ngen помог уделать конкурентов
{"parent": "W4TeToJe8gI"}