Pull to refresh
18
0

Reverse Engineer

Send message
1. Альтернатива отладке. Код SMM довольно проблематично отлаживать на продакшн системах. Например, нашел уязвимость, но ожидаемого эффекта от эксплоита не происходит. При помощи трассы можно определить, в каком месте поток исполнения двинулся не в том направлении.
2. Покрытие кода. При написании умного фаззера для кода SMM необходимо знать покрытие кода, но существующие методы инструментации не способны работать в SMM.
от автора:
Зачем трогали IA32_RTIT_STATUS.PacketByteCn я не понял — у вас там какие-то неизвестные мне side-эффекты возникают?

Нам необходимо сбросить этот счетчик, иначе во время обработки трассы Intel PT будет пропущен момент входа в SMM, и трасса Ассемблера начнется со случайного места, когда PSB будет сгенерирован естественным образом.

Суть такая — трасса писаться будет, но вот при включении (traceEn=1) PSB не сгенерится. И ptxed не увидит код до момента естественной генерации PSB. Трасса писалась в юзермоде, стопнулась и вдруг стартовала в SMM, при этом блока синхронизации нет и парсер тупо выкинет весь код от входа в SMM до ближайшего PSB, так как не может понять где он (по IP из tip.pge он не умеет синхронизироваться вроде как).

Сбивая счетчик мы форсируем его сгенерить блок как можно скорее и закинуть в трассу инфу для синхронизации.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity