|
Текущее время: 21 ноя 2024, 17:54
|
Сообщения без ответов | Активные темы
|
Страница 1 из 1 [ Сообщений: 10 ] |
|
|
|
|
|
Автор |
|
Nik_1991
[ТС]
|
Заголовок сообщения: G6-2xxx (Quanta R53) Обход защиты от внесения изменений Добавлено: 06 янв 2017, 19:09 |
Пользователь |
|
|
Зарегистрирован: 07 окт 2016, 19:45 Наличности на руках: 459.95
Сообщения: 460 Откуда: Новосибирск
|
Доброго вечерья всем. Выдался выходной, решил в свободное время покурить гайд по обходу защиты от внесения изменений в дамп на буках 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.
Последний раз редактировалось Nik_1991 06 янв 2017, 21:20, всего редактировалось 1 раз.
|
|
|
|
|
Nik_1991
[ТС]
|
Заголовок сообщения: Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений Добавлено: 06 янв 2017, 21:10 |
Пользователь |
|
|
Зарегистрирован: 07 окт 2016, 19:45 Наличности на руках: 459.95
Сообщения: 460 Откуда: Новосибирск
|
Мне не нужно готовое решение, стал бы я на это тратить свободный вечер? Хочу новый скилл. Трудность сейчас в самом алгоритме, чтобы его понять, ныряя за описанием каждой команды в другую вкладку, уйдет уйма времени, но по-другому не бывает. И вот, собственно, глядя на алгоритм, начиная с того места, где есть паттерн 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. простите за огромные полотна писанины.
Последний раз редактировалось Nik_1991 06 янв 2017, 21:38, всего редактировалось 1 раз.
|
|
|
|
|
Nik_1991
[ТС]
|
Заголовок сообщения: Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений Добавлено: 06 янв 2017, 21:39 |
Пользователь |
|
|
Зарегистрирован: 07 окт 2016, 19:45 Наличности на руках: 459.95
Сообщения: 460 Откуда: Новосибирск
|
orbit писал(а): Или R53 взята как учебный "кролик"? Именно. Дамп под рукой был. Я туда пробовал ставить 10028, с простой подменой id работать он не зажелал, тогда-то я и узнал про $HSS сигнатуру. Ну и плата такая есть, как раз у нее дохлый 3000. Правда еще и отвал сокета) Поэтому будет учебным кроликом.
|
|
|
|
|
Nik_1991
[ТС]
|
Заголовок сообщения: Re: G6-2xxx (Quanta R53) Обход защиты от внесения изменений [РЕШЕНО] Добавлено: 07 янв 2017, 11:54 |
Пользователь |
|
|
Зарегистрирован: 07 окт 2016, 19:45 Наличности на руках: 459.95
Сообщения: 460 Откуда: Новосибирск
|
Почему-то не получается с помощью 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 [ Сообщений: 10 ] |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|