Ремонт: Ноутбуков, Компьютеров 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, то вообще минуем тело модуля и сразу на выход. То есть, проверка априори "проходится" успешно? Было бы шикарно, заменить переход на безусловный и отвязаться от этих проверок. Но почему-то мне кажется, что так нельзя Ближе к концу из стека забираем три переменных, 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/ |