Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Станьте Детективом! Решайте логические головоломки, чтобы найти преступника! 
Множество уровней и интересных историй! События и задачи дня!

Тебе предстоит раскрывать массу разных дел, в этом тебе поможет известный всем сыщикам метод дедукции.

Детектив - логические головоломки

Головоломки, Казуальные, Логическая

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Bypass

13 постов сначала свежее
39
egortyrin
4 года назад
Сообщество Ремонтёров

Сброс Google-аккаунта (FRP) на телефоне Samsung J1 mini prime (SM-J106F) с помощью комбинашки⁠⁠

Всем привет! Может кому пригодится

1) Устанавливаем драйвера Samsung -

2) Переводим телефон в режим прошивки (громкость вниз+home+кнопка питания)

3) Подключаем телефон к компьютеру, запускаем Odin, проверяем что Odin видит телефон, нажимаем AP, выбираем комбинашку

4) Когда комбинашка установиться, идем в настройки и ищем пункт где можно поменять графический ключ. задаем графический ключ

5) Прошиваем телефон обычной прошивкой - для CSC выбираем HOME_CSC

Драйвера Samsung - https://yadi.sk/d/8j0sUhpWQnbavA

Программа для прошивки Odin3_v3.14.4 - https://yadi.sk/d/uj11WAc6qbHKkw

Комбинационная прошивка J106FJVU0API4 - https://yadi.sk/d/gIIZ9oHwQAg47w

Нормальная прошивка J106FJVU0ARE1 - https://yadi.sk/d/shkC-uZh0w4oGA

Показать полностью 1
[моё] FRP Samsung Bypass Firmware Видео
53
44
egortyrin
4 года назад
Сообщество Ремонтёров

Обход блокировки FRP (гугл аккаунт) на Samsung A11 с помощью sim-карты и bluetooth наушников⁠⁠

На днях попал мне в руки очередной заблокированный и потрёпанный жизнью самсунг...
Описывать текстом данный метод не буду, так как есть моменты которые сложно описать словами и лучше их продемонстрировать в видео.

P.S. этот метод 100% работает только на данной версии прошивки (A115FXXU1ATK4), если у вас другая прошивка, то необходимо установить на телефон ту прошивку. Как это сделать и где ее взять написано в описании к видео.

[моё] Samsung Frp Lock FRP Bypass Обход блокировок Видео
19
30
hejd
hejd
5 лет назад
Мы худеем!

Hejd должна похудеть. Bypass. Часть 2⁠⁠

Привет всем!

Я снова тут.
К первой части были заданы справедливые вопросы и оставлены справедливые замечания. Да, при весе 55-60 я не была полной, но и худенькой я не была. Я была нормальной. Вообще, странная тенденция считать, что норма - это та или иная степень худобы, даже с этимологической точки зрения. Ну да ладно.
Так же некоторые вполне резонно спросили, а нафига аж на операцию, когда можно спорт, диета, вот это все? Тем более, кто-то уже так и делает. В этой части я расскажу, что мне сказал врач и что повлияло на моё решение.

Дисклеймер: мой опыт - это мой опыт, моё решение - это моё решение. Не принимайте отчаянных шагов без консультации с врачом и серьёзным обдумыванием этого шага. Воспринимайте данную серию постов как чужой опыт, за которым полезно наблюдать. Если он вас вдохновляет - идите к врачу. Я понимаю, что самолечение в этом случае маловероятно (ну, как себе отрезать кусок чего-то без врача?), но напоминаю, что люди хоть и похожи, но всё-таки здоровье вещь индивидуальная. Кушайте кашу, слушайте маму. Если данный опыт вам не интересен или вы считаете его неправильным - обязательно напишите мне об этом, я этого очень жду (нет).

Итак, мне несколько поплохело после куришки и пары ступенек, и я села горевать анализировать своё состояние. Наанализировала проблемы с лишним весом (тяжело ходить, не хочется секса, на алиэкспрессе надо выбирать 5XL), проблемы с давлением (140/100 - это хороший день), туманное будущее. Ну, то есть, я надеюсь дорешать свой квартирный вопрос и удариться в воспроизведение (не-не, никаких часиков, просто это прикольный социальный эксперимент длиной лет в 20). И вот против этого стоят 35-40 килограмм, пивное брюшко (да, у женщин оно тоже бывает) и общее состояние "мне тяжело" (как физически, так и морально).

Сначала я даже сходила к своему терапевту, на что она сказала классическое "ну, всё не так плохо, хотите у моей знакомой попить БАДы за миллион денег?" (да, Чехия этим тоже грешит. Например, мой гинеколог по второму образованию гомеопат, хорошо, что по второму). И я решила уйти за ответом в интернет. Интернет мне сказал, что есть шансы получить шунтирование желудка на халяву (ну, как на халяву, я по 50 евро в месяц плачу страховку вот уже n лет), и я записалась на консультацию в частную клинику хирургии на первую консультацию, которая бесплатно.

"И всё заверте..." Меня всесторонне померили на модном аппарате (типа весы, но надо еще держать на вытянутых руках датчики), раздели, помяли, дали одеться обратно, расспросили всю мою биографию и сказали: да, операции быть, вам оно надо и вот почему. Метаболизм мой пошел в разгул и его уже не остановить. Посему все изменения в питании не помогут от слова совсем, ибо организм привык всасывать больше полезных и не очень веществ, чем надо бы. Спорт на данном этапе мне только навредит ибо до своидания колени, позвоночник, а заодно и сердце. И вообще, мой ИМТ уже такой (38,1), что за углом меня ждут-поджидают инсульты и диабет второго типа, странно что второй уже не тут. Поэтому времени на раскачку нет, надо под нож ложиться.

Также мне объяснили разницы в операциях. Итак, чем отличаются резекция и бандажирование желудка от шунтирования, которое будут делать мне. В первых случаях при операции уменьшается объём желудка и человек начинает просто "жрать меньше", метаболизм остаётся не изменен, посему да, человек худеет, но если не изменить пищевые привычки, желудок растягивается обратно, эффект йо-йо, и здравствуйте, любимые килограммы, о, смотрю вы привели друзей. Во втором случае,  от желудка отрезают меньшую часть, 30-50 мл объемом, и пришивают к средней части тонкого кишечника. Изменяется мальсорбация, меняется метаболизм и вот это все. Я не доктор, но я думаю, по словосочетанию "шунтирование желудка gastric bypass" дядя гугл насыпет много информации. На английской википедии есть гигантская статья, например.

Итак, мы пришли к самому интересному. Последствия. Не смотря на мою убежденность, что после принятия решение все последствия нейтральны по своей окраске (ну ты же знал, на что шёл, алё!), разделю их на условные плюсы и минусы.
+ похудание в течение года на 35,7 кг в моём конкретном случае
+ исчезает риск диабета
+ уменьшается риск сердечно-сосудистых
+ исчезают проблемы с моим супервысоким давлением (на приёме мен намерили 160/110, а я как бы пью таблетки для снижения)
+ исчезает проблема с дыханием во сне (у меня предапнлоэ и храплю я как полная шхуна матросни)
+ увеличивается шанс выносить здоровый плод, ну и вообще беременность должна стать лайтовее. Ну, по крайней мере, менее вредной и для эмбриона, и для носителя, то есть меня.
+ лёгкость такая приятная образуется. Ладно тут я уже шучу.
- это, блин, операция. (Да ты чо?)
- так как изменяется метаболизм и мальсорбация всех веществ - до конца дней сидеть на добавках витаминов, железа и кальция. Вот тут без шуток.
- пищевые привычки придется менять, ибо на кону уже не килограммы, которые вернуться, а осложнения. (меня это мотивирует, но я немножко странная). К слову о пищевых привычках - первые пару месяцев после я буду жить на пюрешках, а так вообще - по ползёрнышка полгорсточки еды за раз, 5 раз в день. со своими ограничениями по составу. Точнее на эту тему напишу через пару недель - после консультации со специалистом по питанию (об этом ниже).
- на первое время (тут точнее не скажу, полгода - год) увеличивается шанс язвы желудка.
- после операции 12-18 месяцев никаких беременностей - пусть организм отдохнёт.

Вот такая фигня, ребята.

Ещё в этом посте я хочу написать, что меня ждёт перед операцией, ибо я получила кучу направлений, обязательных к прохождению ДО. А сантименты тяжёлого выбора/принятия решения оставим на потом. Хотя как по мне - это тоже будет важный пост, ибо "всё идёт из головы".

Итак, обязательным к посещению до второй консультации перед операцией являются следующие врачи и сдача следующих анализов.
Врачи:
1) специалист по питанию - надо понять и разработать меню до операции, на время реабилитации, после операции. Краткое содержание я уже пересказала выше, подбробности будут 13.12 - именно на этот день я записана на приём.
2) эндокринолог. Что и как изменится в моём организме, как будет работать и как этому помочь. Тут труба - пока записаться на до операции не удаётся - мест нет. Я продолжаю искать.
3) психолог - 2 часа консультации (и одна из немногих вещей, которая не покрывается страховкой, про цены напишу в конце поста), вдруг я действительно просто ленивый мудак, а не хватает мне только скакалки и зашить рот.
4) специалист по избыточному весу (не путать с хирургом, у которого я консультировалась, и с диетологом, который подбирает питание. Эта тётя мне расскажет всё о том, как вес влияет на весь организм в целом и на что-то в частности)
5) гинеколог и терапевт - к этим я схожу уже сама, ьез направления. Терапевта я должна поставить в известность, хотя в электронной карте это и так появится, а к гинекологу я хочу с позиции планирования детей.
Анализы:
1) Спирометрия - вот как раз дыхалку и проверят
2) Кровь на TSH. T3, T4, fT4 (это всё тироксины) и кортизол
3) УЗИ живота, рентген сердца и лёгких
4) и моя любимица - гастроскопия (сарказм).

С результатами этого всего меня ждёт вторая консультация и операция.  СОбственно, дату операции уже установили на день всех (само)влюблённых, следовательно, у меня есть 2.5 месяца (минус рождество и новый год), чтоб всё это пройти.

Теперь самый инетересный вопрос - how much is the fish? Итак, данная информация актуальная для Чешской Республики. Вам не надо быть гражданином (я же не он), но у вас должна быть обязательная медицинская страховка (которая по 50 евро в месяц или, если есть работа, её платит работодатель). Всё вот это счастье в частной (это важно) клинике, с анализами и консультациями как у государственных, так и частных специалистов, с нахождением в больнице 5 дней после операции и для моей ситуации  (вот это суперважно, помните, я писала в начале, что всё индивидуально?) будет мне стоить около около 200 евро, просписью - двести евро.

На этой новости я закончу. В следующих сериях нас ждут:
- тяготы принятия решения
- результаты посещений и консультаций
- прямой репортаж из больнички (вот там-то будут фотки)
- если мне удастся подкупить врача - видео операции (ШОК-КОНТЕНТ), но это не точно. :)

Мне интересно ваше мнение, даже если оно отличается от моего, правда. Мне интересен ваш опыт. Мне интересен опыт по данному вопросу, но тут, пожалуйста, не надо "а вот у моей тётки подруга сестры...". И особенно я буду признательна за ссылки на рецензируемые издания с исследованиями. Ещё раз - я никого ни к чему не призываю. Я делюсь опытом, который получаю прям сейчас. Возможно, это будет кому-то полезным.

Показать полностью
[моё] Похудение Здоровье Лишний вес Текст Длиннопост Bypass
66
44
hejd
hejd
5 лет назад
Мы худеем!

Hejd должна похудеть. Bypass.⁠⁠

Привет, Пикабу!
Привет Лиге Худеющих!

Привет моим 77 подписчикам, которые скорее всего давно подписались из-за историй о самолечении (не надо так).


Постараюсь удержаться в самоироничном стиле, возможно, будет мат, если будет - поставлю тег. Моя история с похудением только начинается, но мне кажется это будет полезно для тех, кто в самом начале этого же пути для "ленивых", так что введу и свой личный тег. Админам сообщества: если вам кажется, что не по теме (хотя с чего бы?), смело переносите в общую ленту.


Синопсис: Женщина, 33 года, с вредными привычками (курю и люблю попивать иногда пиво/вино/водку - зависит от компании, нужное подчеркнуть), не люблю спорт, рост 162, вес ровный центнер, худеть будем через шунтирование желудка, оно же Bypass.

Hejd должна похудеть. Bypass. Похудение, Здоровье, Bypass, Лишний вес, Текст, Длиннопост

Картинка того, что будут со мной делать, из интернетов.


О чем будут посты (да, одним я не ограничусь):

- как я дошла до жизни такой

- где, зачем и почему

- трудности/особенности выбора именно такого решения

- что входит, что не входит, чего ждать

- дневничок по мере прохождения разными процедурами

- что можно/что нельзя до, после и вовремя

- постоперационные заметки с результатами (ну, тут на год хватит, но обещаюсь выдавать отчеты по мере поступления)


Погнали!


Ну, начать стоит с того, что Хейд никогда особо худенькой не была. В лучшие свои годы (атопический дерматит прошел, сиськи торчат, волосы вьются, и ноги хотят ходить на каблуках) при росте 162 вес держался на отметке 55-60. Но это были золотые для любого миллениала: начало 2000-х, а значит героиновый шик 90-х был уже позади, ореховые попы Кардашьянов еще впереди, а главным секс-символом и эталоном для девочек всех возрастов на территории бывшего СССР стала аргентинка с русским сердцем Наташа, так её, Орейро. Следовательно, никто никого не шеймил, бабушки готовили пирожки на "прям щас", а не с надеждой "вдруг одумается, скелетина", а подростки всех мастей радостно наедали после костей 90-х фигуры в уже появившихся Крошках Картошках.


Но потом случился мой 2009, в который мне решилось, что пора менять дислокацию. И "этот город - самый лучший город на земле", наверняка, таковым и является, когда твоя фамилия Хавтан, но с моими мордовскими корнями однозначно пора валить. И я свалила. В Чехию. Там и сейчас проживаю. Это важно для темы поста с точки зрения моего опыта. В других странах, с другими социальными и медицинскими системами все может быть иначе. Так что держим это в голове, п'нятненько?


Девять лет тихой, сытой жизни (из которых 4 во внезапном замужем), не сделали из меня лань, я планомерно поправлялась, поправлялась и допоправлялась до центнера (вот эти ваши вепрева колена и пива, да (на самом деле не только)). Меня это не особо угнетало, комплексов у меня нет, нагрузок хватало (люблю ходить пешком, в день отмахать 20к шагов - как нефиг делать), пиво вкусное и вроде все ок. А потом как-то разом дошло.


Итак, почему я вообще этим занялась. В один прекрасный день я обнаружила у себя проблемы с дыхалкой - я живу в двухэтажном доме и, покурив внизу на террасе и поднявшись к компу на второй этаж, я вдруг заметила у себя одышку. Причем такую нехилую. И я села думать, и, подумав, нашла целый список говна, которое со мной уже есть, но я его старательно не замечала. По пунктам:

- Проблемы с дыханием (одышка и начальная степень апноэ с храпом, ох, сама просыпаюсь от этого)

- Давление. Ну, тут вообще весело: пошла я как-то на работе на обед и по местной традиции взяла себе какие-то кнедлики с белым соусом, а соус стал красным - это у меня от давления кровь носом пошла. А потом уже мне мой терапевт намерил 190/120, которые я даже не чувствую (да, щас я на таблетках с этой фигней).

- Мобильность в принципе. Да, я по-прежнему с удовольствием много хожу пешком, но вот эти приключения формата "это холм, чехи считают это горой, давай туда наверх залезем, всего 1,5 км высоты, а наверху есть кабак - пива попьем" - стали уже тяжеловаты.

- Секса тоже стало меньше - ибо не хочется тупо. То есть подрочить - норм, а "толкаться пузиками" 30-40 минут лень.

- При этом супруг мой все чаще стал говорить о передаче родовой пушки 15 века, да вот наследника-то пока и нет.

- И прочее по мелочам.


И я пошла в интернет. Ибо сразу скажу - я не человек спорта, ходьба с собачкой и ленивые велопрогулки раз в месяц - мой максимум, и опять же я не человек диет. Слава всем богам, я не люблю сладкое, не прусь по мучному, вполне себе люблю шпинат и брокколи, но еще больше я люблю готовить и готовлю слишком хорошо. То есть - запечь 4 кг гуся на выходные - легко, плов/пельмешки/холодец - да как два пальца, ну, вы поняли, что я травить нас буду. Так что да, я пошла в интернет, и интернет мне сказал: "в Чешской республике резекции/шунтирования желудка по медицинским показаниям покрываются обязательной медицинской страховкой" или с юридического на нормальный "ты можешь получить это на халяву". И я взяла телефон, и я набрала номер, и я преодолела себя и поговорила с человеком на том конце провода, и я записалась на бесплатную консультацию у хирурга, чтобы понять надо ли оно мне, а если надо, то "чо, правда халява?".


На этом первую серию я, простите, закончу. В следующей серии (завтра):

- Что мне сказал хирург

- ХАЛЯВА ИЛИ НЕТ???

- Что такое это ваше шунтирование, чем отличается от резекции и в чем суть (кроме песка)?

- Что мне предстоит сделать, чтоб можно было начать

- Потенциальные последствия

- Муки выбора (4 за, 1 против, 1 воздержался)

- Решение и дальнейшие шаги.



PS баянометр выдает сиськи, поняш и лоли. OH SHI--

Показать полностью 1
[моё] Похудение Здоровье Bypass Лишний вес Текст Длиннопост
30
27
kliMaster
kliMaster
8 лет назад
Информационная безопасность IT

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2⁠⁠

Часть1 http://pikabu.ru/story/control_flow_guard_printsip_rabotyi_i...

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Класс VTable является внутренним представлением виртуальной таблицы функций (то есть не той, которую генерирует C++) для классов ActionScript.

Объект данного класса содержит в себе указатели на объекты класса MethodEnv:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Данный класс представляет собой описание метода ActionScript и содержит указатель на тело функции в памяти по смещению $+4.


В объекте VTable по смещению $+D4 находится описание метода ByteArray::toString(). Имея возможность произвольно читать и писать в память, атакующий способен изменить указатель функции на тело функции (MethodEnv + 4) и благополучно перехватить поток исполнения приложения, выполнив ByteArray::toString().



Такое становится возможным по причине того, что метод данного класса будет вызываться из JIT-кода:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Как видно на скриншоте выше, неявный вызов происходит без предварительной проверки вызываемого адреса, поскольку данная функция была сгенерирована динамически.



Данный метод обхода CFG был исправлен с выходом Adobe Flash Player версии 18.0.0.160 (KB3065820, Июнь 2015). Исправление заключается в следующем: если JIT-функция содержит неявный вызов, то JIT-компилятор вставит вызов процедуры проверки непосредственно перед неявным вызовом.


Любой адрес в пределах тела динамической функции является валидным


Предыдущий метод обхода был возможен из-за недочета в функции, которая производит неявный вызов. А данный метод возможен из-за недочета в функции, которую неявно вызывют.


Исследователи Юрий Дроздов и Людмила Дроздова из Center of Vulnerability Research представили данный метод обхода CFG на конференции Defcon Russia.

Статья:

http://cvr-data.b*l*o*g*spot.ru/2015/07/advanced-cfg-bypass-on-adobe-flash.html


Их метод основан на том факте, что при выделении исполняемой памяти ядро выставляет единичный бит в битовой карте CFG для всей выделенной памяти. Посмотрим, к чему может привести такое поведение.

Предположим, что существует некая JIT-функция по адресу 0x69BC9080, в теле которой находится следующий код:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Что именно делает эта функция, нас не интересует, нужно лишь обратить внимание на 2 байта FF D0 инструкции по адресу 0x69BC90F0. Что будет, если начало функции вдруг сдвинется в середину данной инструкции? Вот что:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

FF D0 — не что иное, как call eax! Вот так безобидная на первый взгляд функция превратилась в прекрасную цель для атакующего — неявный вызов без проверки Control Flow Guard. Нужно лишь разобраться с двумя вопросами: как добиться нужной последовательности байтов и как записать в регистр необходимый адрес.



Сгенерировать необходимую последовательность можно, просто экспериментируя с ActionScript-кодом. Стоит лишь учитывать тот факт, что Nanojit (JIT-компилятор AVM) обфусцирует генерируемый код, поэтому легкого пути не будет. Посмотрим, во что превратит Nanojit данную функцию:

public static function useless_func():uint

{


return 0xD5EC;


}

Результат:
Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Совсем не то, что мы ожидали. Опытным путем можно прийти, например, к такому варианту кода:

public static function useless_func():void

{


useless_func2(0x11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26);


}



public static function useless_func2(arg1:uint, arg2:uint, arg3:uint, a, b, c, d, e, f, g, h, i, j, k, l, m, n, p, q, r, s, t, u, v, w, x, y, z):void


{


}

Тело первой функции будет содержать следующие инструкции:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Интересующие нас байты FF 11 являются инструкцией call [ecx]:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Неявный вызов получили, теперь нужно занести в регистр ecx контролируемый адрес. Выясним, что хранится в данном регистре в момент вызова функции useless_func().

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

В момент вызова функции, в регистре ecx находится объект класса MethodEnv. Первый DWORD данного класса является указателем на виртуальную таблицу функций (ту, которую генерирует компилятор C++). Эта таблица в момент вызова метода useless_func() не используется, поэтому ничего не мешает атакующему непосредственно перед вызовом метода заменить указатель на свой.

Реализация данного алгоритма будет следующей:

var class_addr:uint = read_addr(UselessClass);

var vtable:uint = read_dword(class_addr + 8);


var methodenv:uint = read_dword(vtable + 0x54); // $+54 = useless_func


var func_ptr:uint = read_dword(methodenv + 4);



write_dword(methodenv + 4, func_ptr + offset_to_call_ecx);


write_dword(methodenv, rop_gadget); // ecx <- pointer to rop gadgets



UselessClass.useless_func(); // call [ecx]

Таким образом, нам удалось перехватить поток исполнения приложения и перейти, в данном случае, к выполнению ROP-гаджета.


Этот метод обхода CFG был исправлен в версии 18.0.0.194 (KB3074219, Июнь 2015). Исправление заключается в использовании нового флага


PAGE_TARGETS_INVALID/PAGE_TARGETS_NO_UPDATE (0x40000000) для функций VirtualAlloc и VirtualProtect в связке с новой функцией WinAPI — SetProcessValidCallTargets.


Флаг PAGE_TARGETS_INVALID при выделении исполняемой памяти выставляет нулевой бит для всего участка памяти, а флаг PAGE_TARGETS_NO_UPDATE при изменении типа памяти на исполняемую предотвращает изменение битовой карты для целевого участка памяти.


Данное исправление можно наблюдать в функции AVMPI_makeCodeMemoryExecutable в исходном коде ядра AVM (AVMPI/MMgcPortWin.cpp):

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Вызов функции SetProcessValidCallTargets реализован в AVMPI_makeTargetValid (AVMPI/MMgcPortWin.cpp):

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Из этого можно сделать вывод, что правильная последовательность действий при размещении в памяти динамически генерируемого кода в условиях работы CFG должна быть следующей:


VirtualAlloc(PAGE_READWRITE)

Запись кода в выделенный участок

VirtualProtect(PAGE_EXECUTE_READ | PAGE_TARGETS_NO_UPDATE)

SetProcessValidCallTargets()


И, конечно же, не стоит забывать про неявные вызовы внутри динамического кода.

Обход при помощи функций WinAPI

Проверка Control Flow Guard заключается в валидации вызываемого адреса, но валидными адресами являются не только начала пользовательских функций. Все функции WinAPI, как и любые другие функции из таблицы импорта, являются валидными адресатами для неявного вызова. Атакующему ничего не мешает перевести поток исполнения напрямую в библиотечную функцию, минуя тем самым выполнение шеллкода (shellcode) или ROP-гаджетов. Хорошим кандидатом для такой цели является WinAPI функция kernel32!WinExec.



Данная идея впервые была озвучена исследователем Yuki Chen из Qihoo 360 Vulcan Team на конференции SyScan (Сингапур, 2015) в презентации, посвященной эксплуатации уязвимости в Internet Explorer 11 с обходом новых механизмов защиты. Также на конференции BlackHat (США, 2015) исследователь Francisco Falcón описал реализацию данного метода применительно к Adobe Flash Player.


В своей реализации Francisco Falcón оперировал методом toString() объекта класса Vector, но мы попробуем реализовать данный метод, пользуясь наработками из предыдущего.


Основная сложность данного метода заключается в том, чтобы передать параметры WinExec через стек. Данная функция, согласно справке, принимает 2 параметра: LPCSTR lpCmdLine и UINT uCmdShow.


lpCmdLine — указатель на строку, которую нужно выполнить (должна заканчиваться нулевым байтом).

uCmdShow — режим отображения запускаемого приложения.


Обратимся к скриншоту из предыдущего метода:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

В момент вызова нашей функции на стеке оказывается 3 параметра. Третий параметр нас не интересует. Со вторым все отлично, поскольку 0 = SW_HIDE (приложение запустится скрыто). Первым параметром является указатель на объект MethodEnv.

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Как мы уже выяснили ранее, первые 4 байта данного объекта являются указателем на виртуальную таблицу функций, и в момент вызова ActionScript-метода она никак не задействуется. Следующие 4 байта указывают на тело функции, и именно их нужно изменить на указатель функции WinExec.

Поскольку порча указателя на тело функции не приведет ни к чему хорошему, в нашем распоряжении имеется лишь первые 4 байта. В данный размер можно, например, уместить строку cmd\0 (командная строка Windows). Данной командой, конечно, не добиться полной компрометации системы, но для демонстрации подойдет.


Модифицируем алгоритм из предыдущего метода и получим следующий код:

var class_addr:uint = read_addr(UselessClass);

var vtable:uint = read_dword(class_addr + 8);


var methodenv:uint = read_dword(vtable + 0x50); // $+50 = useless_func


var winexec:uint = get_proc_addr("kernel32.dll", "WinExec");


write_dword(methodenv + 4, winexec); // useless_func() --> WinExec()


write_dword(methodenv, 0x00646d63); // '\0', 'd', 'm', 'c'


UselessClass.useless_func();

Поиск WinAPI функции в условиях современных Flash-эксплоитов является тривиальной задачей. Данную реализацию мы опустим, но с ней можно всегда ознакомиться, изучив пакет Flash Exploiter из фреймворка Metasploit.

Выполнив приведенный выше алгоритм при эксплуатации уязвимости, можно убедиться в работоспособности данного метода:

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass
Данная реализация, несмотря на свою работоспособность и лаконичность, представляет малый интерес для атакующего, поскольку дает небольшой спектр возможностей.
Образец для подражания

Все современные Flash-эксплоиты так или иначе используют метод запуска полезной нагрузки (payload) из утекших исходников эксплоитов компании HackingTeam. Автором данного метода является Виталий Торопов. Его метод основан на вызове WinAPI функции kernel32!VirtualProtect, благодаря чему достигается обход всех механизмов защиты и, в том числе, Control Flow Guard.

Целью данного метода является метод apply() класса Function (core/FunctionClass.cpp)

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

В исходном коде данного метода происходит нативный вызов core->exec->apply(get_callEnv(), thisArg, (ArrayObject*)AvmCore::atomToScriptObject(argArray));, который можно перехватить, оперируя объектами ActionScript.

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player. Часть 2 Длиннопост, Adobe flash player, Cfg, Control Flow Guard, Exploit, Bypass

Подробное описание данного метода требует отдельной статьи, но с реализацией можно ознакомиться на GitHub. Также есть хороший материал с разбором данного метода в условиях 64-битного Flash в блоге Metasploit.(https://community.rapid7.com/community/metasploit/blog/2015/...)

Заключение

Несмотря на свои недостатки, Control Flow Guard при должном внимании со стороны разработчиков является хорошим дополнением в арсенале борцов с эксплоитами в среде ОС Windows. Компании Microsoft удалось, пусть и не полностью, реализовать концепцию Control Flow Integrity, минимально повлияв на производительность приложений, и сохранив обратную совместимость. Данный механизм еще не достиг предела своих возможностей, и разработчики из Microsoft наверняка в ближайшем будущем смогут усилить защиту приложений.

Хочется надеяться, что все разработчики приложений задумаются над современной защитой от эксплуатации уязвимостей и добавят в свои продукты поддержку CFG.

Источники

https://habrahabr.ru/company/dsec/blog/305960/

http://sjc1-te-ftp.trendmicro.com/assets/wp/exploring-contro...

http://www.powerofcommunity.net/poc2014/mj0011.pdf

https://github.com/adobe/avmplus

https://www.blackhat.com/docs/eu-15/materials/eu-15-Falcon-E...

Показать полностью 15
Длиннопост Adobe flash player Cfg Control Flow Guard Exploit Bypass
3
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии