Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форумы PDA2U.RU _ Шаманства для посвященных _ Как ломать дрова, не наломав дров :)

Автор: Allbest 12.7.2008, 2:11

Всем большой привет smile.gif ArHon предложил мне оставить небольшой комментарий по методике дружественной "коррекции" драйвера Battdrvr ( http://forum.pda2u.ru/forum/ipb.html?s=&showtopic=324&view=findpost&p=5332 ), что я в этой теме и попытаюсь проделать. Надеюсь, это будет достаточно наглядно smile.gif Какой была благая цель? Попытаться договориться с драйвером батарейки, чтобы он впредь не занимался столь неблагодарной задачей, как выключение дорогого серду питомца
Во-первых, следует заметить, что ломать, как говорится, не строить, но, если подойти к этом делу творчески, то процесс покажется увлекательным, чем-то напомнив решение нескушной шахматной задачки. Кроме того, сломав опостылевшую "стену" в рассматриваемой архитектурной конструкции, мы сможем его (нашего горячо любимого "ласкового и нежного зверя") в некоторой степени "построить"
Техника используется традиционная для знакомых с искусством взлома ;-) Находим один-два-три нужных байта в бинарном контенте и меняем, как правило, условный переход на безусловный smile.gif Здесь все так и было. Никто не изобретал витиеватых наворотов защиты (не предполагали создатели, что в чью-то больную голову придет идея взламывать именно это blink.gif ), поэтому не пришлось прибегать к дебагу и прочим тяжеловесным техникам
Как делалось? Разумеется, IDA. Разве можно в наше время можно обойтись без этой великолепной программы (у меня установлена версия 5.2). Незаменимый инструмент, который позволяет непринужденно (почти) продираться сквозь дебри ассемблерного кода
Итак, скармливаем рассматриваемую DLL почтенной программе. Не приложив ни малейших усилий, чудо-робот почти что смог провернуть фарш назад, кроме того, без лишних вопросов применив необходимые сигнатуры
Что нас прежде всего заинтересовало? Конечно же, string-list. Обратите внимание на рисунок ниже:

Увиденный заветный набор строк ,как минимум, обнадеживает. Здесь просматривается и ветка реестра с сообщением, увидев которое на экране своего любимца, каждый хозяин начинает лихорадочно обшаривать руками все близлежайшие окрестности в поисках зарядного устройства (hklm/drivers/builtin/battery/message).. Здесь же мы имеем возможность наблюдать и отладочные сообщения об ошибках. Все эти милые зацепки просто обязаны навести нас на путь истинный. Следующий шаг прост. Ищем API-вызов, который цепляет указанную ветку реестра. Очень быстро мы здесь:

Так-так, тот самый заветный RegOpenKeyExW. Но не останавливаемся!
Что видем выше? Вот (по ходу дела найденным функциям будем давать осмысленные имена):

Ага, то же неплохо. Обожаемая всеми взломщиками MessageBoxW
И что же будет нас ждать на следующей высоте? Думаю, это тот самый корень, в который мы "зрим" ;-) И как это его угораздило объявится на таких Альпийских высотах? blink.gif Но от нас не уйдешь! tongue.gif

Оба вожделенных (условных) перехода можно видеть на этом рисунке. Обратите внимание на загрузку в регистр R0 адреса отладочного сообщения о том, что иссяк источник ( "не верю",- как бы прокричал старина Станиславский mad.gif ). Но вот сюда-то мы почему-то и не хотим попадать. Также на всякий случай чуть-чуть изменим строку по адресу 2a50 (попросту затрем ее предыдущей строкой - ненавредив), поскольку далее совсем страшно huh.gif

Подлый и жестокий хищник по прозвищу PowerPolicyNotify ждет в засаде, так и норовя безвременно погрузить во тьму нашего беззащитного зверька! Но изыди, сатана! БЕЗУСЛОВНО терпеть тебя здесь мы более не будем! tongue.gif
Делаем пару невинных правок:
Оригинал:

он же, но только лишь с косметической коррекцией:

В дизассемблере где-то так:

Ну вот. Любо- дорого посмотреть
На этом и сказке той конец. А кто слушал - молодец wink.gif

Русская версия Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)