Как работает .NET Runtime? Ковыряем вызов virtual методов. Как работает JIT? С# - IL - ASM?
#DevJungles #dotnet #ityoutubersru
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
Буду рассказывать про то, как CLR загружает и выполняет код в памяти, будем смотреть ассемблерные листинги, и даже сможем сделать override для sealed метода. Как вам такое?
А еще эти трюки пригодятся, для того что бы написать плагин к какой то программе, которая вообще-то не предусматривает написание плагинов.
Вы знаете как можно замокать статический метод? Наверняка скажите, что Moq или NSubstiture это умеют, но как это работает под капотом?
А что делать если в системной библиотеке оказалась проблема: где найти рычажки, что бы влезть в это и исправить?
А еще вам сюда, если вам по зарез как нужно пропатчить что-нибудь от чего у вас нет исходников! Расскажу как это можно сделать!
Будем ковырятся и в листингам памяти и в ASM, посмотрим как JIT раскладывает методы в оперативной памяти.
Таймкоды:
00:00 - Начало стрима
00:45 - Как работает .Net
11:30 - Работа JIT - компилятора
21:00 - Проверка полученной информации на практике
25:00 - Просмотр работы JIT в DisAssambly
34:00 - Сколько занимает Jitting
41:00 - Пример из жизни когда Ngen помог уделать конкурентов
43:30 - Как ovveridе-ить метод в sealed классах
47:40 - GetFunctionPointer и для чего он нужен
48:50 - Принудительный Jitting методов
50:00 - void* - что ты такое?
51:00 - Добавляем unsafe
52:55 - Объяснение как заоверрайдить метод в sealed классе
59:05 - Проверка override
59:30 - Почему в проекте с оверрайдом моков не надо включать unsafe
1:02:30 - Как сделать ovveride и сохранить возможность вызова базового метода
1:09:30 - Библиотека
1:14:20 - Для чего это вообще нужно
1:15:40 - Пример использования
1:22:40 - Почему этот стрим нельзя показывать вашим менеджерам
1:22:58 - Как работает метод Patch
1:27:20 - Как получить все ссылки на объект
1:36:50 - Кто разработал Harmony
1:43:00 - Когда это все использовалось на практике
1 view
30
6
2 days ago 00:34:54 0
Топленое масло (гхи): вред под маской пользы
2 days ago 00:36:21 0
💃 ПОЧЕМУ ЖЕНЩИНЫ ВСЁ ЧАЩЕ ОДИНОКИ? МУЖСКОЕ ПРОЗРЕНИЕ! ☝️
2 days ago 00:02:21 33
Как шить из кожи. Как облегчить работу
4 days ago 02:01:28 19
Агенты спецслужб шантажировали и вербовали 40 лет | Историческое расследование
5 days ago 00:05:49 0
АДМИНИСТРИРОВАНИЕ LINUX С НУЛЯ. Уроки для начинающих линуксоидов
1 week ago 00:02:52 3
Ярославские травматологи отметили профессиональный праздник
1 week ago 00:17:14 2
Дыхание, которое меняет реальность: забытая техника, возвращающая силу
1 week ago 00:14:13 0
ЗАМЕЩАЮЩИЕ ОБЛИГАЦИИ — КАК ЗАРАБАТЫВАТЬ НА САНКЦИЯХ? Топ-5 лучших вариантов на 2025 год
1 week ago 01:09:36 0
Что делает нас БОЛЬНЫМИ? ИЗБАВЬСЯ от этого (ПРАКТИКА РАБОТЫ С ПОДСОЗНАНИЕМ)
1 week ago 00:15:22 9
Россия будущего. Что делать со сторонниками режима?