Комментарии 8
Чтобы надежно использовать эту уязвимость, нужно между вызовами запрещать прерывания — а это уже выход из песочницы :) Однако, нужно ждать патча рантайма, который будет обнулять регистровые пары перед возвратом из fastcall-метода.
А что, собственно, Вы хотели увидеть? Сделайте объекты разной внутренней структуры, с разным количеством полей и разным количеством виртуальных методов — такой фейерверк начнётся, что огого! А если это скрестить с финализатором — так вообще
// удачной отладки!
В статье был реализован аналог union С++, который дважды был инициализирован через разные поля. Поскольку типы нетривиальные, то они неизбежно имеют указатель на таблицу методов — vtable. Для стандарте C++ такая ситуация регламентирована чётко: undefined behavior.
Переписывание с адаптацией под синтаксис C# привёл ровно к такому же результату.
Переписывание с адаптацией под синтаксис C# привёл ровно к такому же результату.
А с какого перепугу у нас загрузился тип со взаимным перекрытием двух полей ссылочных типов?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пропихиваем параметры в небезопасные операции в безопасном коде