Size: a a a

2018 October 25

Dv

Dr. Friedrich von Never in .NET CIL Chat
Сегодня я узнал, что в ilasm поддерживается такая прекрасная инструкция, как .emitbyte.
источник

К

Карен in .NET CIL Chat
Что делает? )
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Ты ей в компил-тайме говоришь любой байт, а она его просто эмбеддит в тело метода.
источник

VK

Vladislav Khapin in .NET CIL Chat
Dr. Friedrich von Never
Ты ей в компил-тайме говоришь любой байт, а она его просто эмбеддит в тело метода.
Прям 1 байт?
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Да, прям один байт.
источник

К

Карен in .NET CIL Chat
Прикольно
источник

AK

Andrei Kurosh in .NET CIL Chat
И оно воспринимается как опкод?
источник

К

Карен in .NET CIL Chat
Andrei Kurosh
И оно воспринимается как опкод?
Конечно... а как еще может быть?)
источник

К

Карен in .NET CIL Chat
Но я думаю что если итоговый набор байт будет некорректным il кодом то наверно CLR сообщит
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Andrei Kurosh
И оно воспринимается как опкод?
Необязательно.
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
В интернете можно найти интересные экзерсисы: чуваки вставляют какие-нибудь рандомные байты в середину метода, а потом обходят их джампами. Во время выполнения эти байты не имеют никакого смысла, а вот многие декомпиляторы на них ломаются.
источник

К

Карен in .NET CIL Chat
Прикольно
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Я думаю, можно сделать не менее смешные вещи, если найти цепочки опкодов, которые можно начинать выполнять по разным смещениям.
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Ну типа когда середина опкода является началом другого валидного опкода.
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
В нативном мире крутые дизасмы уже умеют с этим бороться, а вот в managed пока навряд ли. Но я не уверен, что и JIT сможет это правильно раскурить :)
источник

К

Карен in .NET CIL Chat
Dr. Friedrich von Never
Я думаю, можно сделать не менее смешные вещи, если найти цепочки опкодов, которые можно начинать выполнять по разным смещениям.
не думаю что такое получится, если IL будет компилиться в натив
источник

Dv

Dr. Friedrich von Never in .NET CIL Chat
Да, ты прав. Вряд ли это заработает.
источник

DK

Dmitry K. in .NET CIL Chat
Dr. Friedrich von Never
В интернете можно найти интересные экзерсисы: чуваки вставляют какие-нибудь рандомные байты в середину метода, а потом обходят их джампами. Во время выполнения эти байты не имеют никакого смысла, а вот многие декомпиляторы на них ломаются.
Wow
источник

SS

Stanisλav Seregin in .NET CIL Chat
Элитарность чата зашкаливает
источник

К

Карен in .NET CIL Chat
Dr. Friedrich von Never
Да, ты прав. Вряд ли это заработает.
не ну а вообще можно, никто не запрещает платформозависимый асм-код запихать в числа (или другие данные, которые будут в аргументах опкода или просто в теле метода) и сделтаь джамп на этот опкод со смещением
источник