Ремонт: Ноутбуков, Компьютеров
https://vlab.su/

G6-2xxx (Quanta R53) Обход защиты от внесения изменений
https://vlab.su/viewtopic.php?f=53&t=55443
Страница 1 из 1

Nik_1991 [ 06 янв 2017, 19:09 ]
Заголовок сообщения:  G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Доброго вечерья всем. Выдался выходной, решил в свободное время покурить гайд по обходу защиты от внесения изменений в дамп на буках HP. Под рукой валялся дамп от R53. Перечитал известную статейку CodeRush, точнее две, и, с помощью UEFITool начал искать вхождения сигнатуры $HSS. Нашлось троев лодке.
1. В non-uefi data области, нас не интересует.
2. В UefiBiosImageInterface, опять же, опираясь на статью, вряд ли там окажется нужный нам "проверяльщик".
3. Остался один. Извлекаем и открываем в IDA. Модули кстати PE32, не ТЕ, конвертировать не пришлось.

Снова ищем вхождение $HSS, а точнее $SSH, почему-то нифига не находим, зато по 53534824h очень даже находим, одно вхождение. И вот дальше у меня начался ступор. Приложу скрин из IDA с моими почеркушками.

Изображение
этот граф какой-то херовый, слепил из скринов другой
Изображение



Вопроса всего 2.

1. Тот ли я взял модуль для анализа.
2. Если тот, то подскажите, как бы обойти этот код (будет на картинке), чтобы проверка всегда проходила успешно и мы шли к return.

С асмом тяжко, занимался немного на 2 курсе, а это уже лет 6 назад, все наглухо забыто. Да и не х86 он был, а AVR.

Сообщение не в тему
В этой viewtopic.php?f=53&t=53776 теме MSF113 открывал аукцион :-) . Интересно, с какого ценника начнём тут? ))

Черномор [ 06 янв 2017, 19:19 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Ну если ida взял, по аналогии понять?
Аналогия..... а посмотреть

Nik_1991 [ 06 янв 2017, 19:28 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Ну если по аналогии со статьёй CodeRush, то аналогии той я не уловил. В его случае https://habrastorage.org/files/df3/89d/ ... d62e9c.png вот так выглядел алгоритм проверки.

Черномор [ 06 янв 2017, 20:00 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Напишика ....

И вообще. Готового не бкдет, но мыслей можно...

Nik_1991 [ 06 янв 2017, 21:10 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Мне не нужно готовое решение, стал бы я на это тратить свободный вечер? Хочу новый скилл. Трудность сейчас в самом алгоритме, чтобы его понять, ныряя за описанием каждой команды в другую вкладку, уйдет уйма времени, но по-другому не бывает. И вот, собственно, глядя на алгоритм, начиная с того места, где есть паттерн 53534824h:

смотрим, лежит ли по адресу ebx-20h тот самый 53534824h, если лежит, то
корируем в eax из ebp+arg_10, далее смотрим, равен ли eax нулю (cmp dword ptr [eax], 0),
если _не_ равен, то в eax копируем ebp+arg_8. Снова сравниваем eax с нулём, если равен, то снова
корируем в eax из ebp+arg_10, далее смотрим, равен ли eax нулю (cmp dword ptr [eax], 0),
и вот если тут он равен, то xor eax, eax и далее в любом случае успешно заканчиваем.

Это только один алгоритм, и очень не очень уверен, что он правильный. Потому как "нет" в моем сценарии был только один раз, остальные всегда да.

Проглядев весь модуль, я тут увидел в самом начале большой кусок
Изображение

Вот если в этом блоке на выходе получаем true, то вообще минуем тело модуля и сразу на выход. То есть, проверка априори "проходится" успешно? Было бы шикарно, заменить переход на безусловный и отвязаться от этих проверок. Но почему-то мне кажется, что так нельзя :smu:sche_nie: Ближе к концу из стека забираем три переменных, ebx, esi, edi, значения которых будут не такие, как нужно.


Кстати для уверенности я и тот модуль проверил, который UefiBiosImageInterface, там вообще ничего похожего, и для него IDA64 нужна.
P.S. простите за огромные полотна писанины.

orbit [ 06 янв 2017, 21:36 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Nik_1991
Что то не наблюдал сложностей с внедрением на R53. Сейчас не вспомню что на что менял, помню только что сложностей не было вообще, даже сохранять не стал дамп в копилочку, ибо дел на сигарету и проще каждый раз делать сохраняя "индивидуальности" каждого дампа.
Или R53 взята как учебный "кролик"?

Nik_1991 [ 06 янв 2017, 21:39 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

orbit писал(а):
Или R53 взята как учебный "кролик"?

Именно. Дамп под рукой был. Я туда пробовал ставить 10028, с простой подменой id работать он не зажелал, тогда-то я и узнал про $HSS сигнатуру. Ну и плата такая есть, как раз у нее дохлый 3000. Правда еще и отвал сокета) Поэтому будет учебным кроликом.

Черномор [ 06 янв 2017, 21:43 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

Я не буду говорить прямо здесь или нет. Что мешает попробовать?
И, кстати, кроме условных и безусловных переходов (по-разному) вполне возможны другие функции, например уйти на другой адрес, безусловно.. где проверки нет....... или просто проверку похерить ....

Nik_1991 [ 06 янв 2017, 22:16 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений

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

Nik_1991 [ 07 янв 2017, 11:54 ]
Заголовок сообщения:  Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений  [РЕШЕНО]

Почему-то не получается с помощью UEFITool сохранить образ, после того как заменил TE секцию. Кстати да, на взял другой дамп от R53 и тут почти полная аналогия со статьей CodeRush. И вот я извлекаю эту TE-секцию, патчу в одном месте, делаю replace as is... Потом save image file, но сохранять он его не хочет, говорит "executable section reconstruction failed". Разобрал дамп с помощью Phoenix Tools, нашел нужный файл, нашел то место, которое нужно пропатчить (1 байт), подменил модули и собрал обратно. Но ситуация с UEFITool мне не ясна, почему он не может пересобрать исполняемую секцию...

UPD: Собраный дамп работает, засовывал 3 левых Wi-Fi модуля, но он молча их сожрал и в винде предложил новое устройство. Похоже, всё)

P.S. Дамп, который заработал, только под Win7, а тот, который вчера я пытался модифицировать - под Win 8, видимо в этом отличия, отсюда и сложности.

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/