IPB

Здравствуйте, гость ( Вход | Регистрация )

Форум перемещен на новый домен: forum.pda2u.ru - исправьте, пожалуйста, свои ссылки
 
 
Ответить в данную темуНачать новую тему
> Как ломать дрова, не наломав дров :), Рассказ в картинках о том, как приручить battdrvr
Allbest
сообщение 12.7.2008, 2:11
Сообщение #1


Разработчик
**

Группа: Разработчики
Сообщений: 39
Регистрация: 20.10.2007
Пользователь №: 13
Спасибо сказали: 34 раз(а)




Всем большой привет (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) ArHon предложил мне оставить небольшой комментарий по методике дружественной "коррекции" драйвера Battdrvr ( http://forum.pda2u.ru/forum/ipb.html?s=&show...post&p=5332 ), что я в этой теме и попытаюсь проделать. Надеюсь, это будет достаточно наглядно (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Какой была благая цель? Попытаться договориться с драйвером батарейки, чтобы он впредь не занимался столь неблагодарной задачей, как выключение дорогого серду питомца
Во-первых, следует заметить, что ломать, как говорится, не строить, но, если подойти к этом делу творчески, то процесс покажется увлекательным, чем-то напомнив решение нескушной шахматной задачки. Кроме того, сломав опостылевшую "стену" в рассматриваемой архитектурной конструкции, мы сможем его (нашего горячо любимого "ласкового и нежного зверя") в некоторой степени "построить"
Техника используется традиционная для знакомых с искусством взлома ;-) Находим один-два-три нужных байта в бинарном контенте и меняем, как правило, условный переход на безусловный (IMG:http://forum.pda2u.ru/style_emoticons/default/smile.gif) Здесь все так и было. Никто не изобретал витиеватых наворотов защиты (не предполагали создатели, что в чью-то больную голову придет идея взламывать именно это (IMG:http://forum.pda2u.ru/style_emoticons/default/blink.gif) ), поэтому не пришлось прибегать к дебагу и прочим тяжеловесным техникам
Как делалось? Разумеется, IDA. Разве можно в наше время можно обойтись без этой великолепной программы (у меня установлена версия 5.2). Незаменимый инструмент, который позволяет непринужденно (почти) продираться сквозь дебри ассемблерного кода
Итак, скармливаем рассматриваемую DLL почтенной программе. Не приложив ни малейших усилий, чудо-робот почти что смог провернуть фарш назад, кроме того, без лишних вопросов применив необходимые сигнатуры
Что нас прежде всего заинтересовало? Конечно же, string-list. Обратите внимание на рисунок ниже:
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/strings.jpg)
Увиденный заветный набор строк ,как минимум, обнадеживает. Здесь просматривается и ветка реестра с сообщением, увидев которое на экране своего любимца, каждый хозяин начинает лихорадочно обшаривать руками все близлежайшие окрестности в поисках зарядного устройства (hklm/drivers/builtin/battery/message).. Здесь же мы имеем возможность наблюдать и отладочные сообщения об ошибках. Все эти милые зацепки просто обязаны навести нас на путь истинный. Следующий шаг прост. Ищем API-вызов, который цепляет указанную ветку реестра. Очень быстро мы здесь:
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/regcall.jpg)
Так-так, тот самый заветный RegOpenKeyExW. Но не останавливаемся!
Что видем выше? Вот (по ходу дела найденным функциям будем давать осмысленные имена):
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/show_mes.jpg)
Ага, то же неплохо. Обожаемая всеми взломщиками MessageBoxW
И что же будет нас ждать на следующей высоте? Думаю, это тот самый корень, в который мы "зрим" ;-) И как это его угораздило объявится на таких Альпийских высотах? (IMG:http://forum.pda2u.ru/style_emoticons/default/blink.gif) Но от нас не уйдешь! (IMG:http://forum.pda2u.ru/style_emoticons/default/tongue.gif)
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/fin1.jpg)
Оба вожделенных (условных) перехода можно видеть на этом рисунке. Обратите внимание на загрузку в регистр R0 адреса отладочного сообщения о том, что иссяк источник ( "не верю",- как бы прокричал старина Станиславский (IMG:http://forum.pda2u.ru/style_emoticons/default/mad.gif) ). Но вот сюда-то мы почему-то и не хотим попадать. Также на всякий случай чуть-чуть изменим строку по адресу 2a50 (попросту затрем ее предыдущей строкой - ненавредив), поскольку далее совсем страшно (IMG:http://forum.pda2u.ru/style_emoticons/default/huh.gif)
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/powerp.jpg)
Подлый и жестокий хищник по прозвищу PowerPolicyNotify ждет в засаде, так и норовя безвременно погрузить во тьму нашего беззащитного зверька! Но изыди, сатана! БЕЗУСЛОВНО терпеть тебя здесь мы более не будем! (IMG:http://forum.pda2u.ru/style_emoticons/default/tongue.gif)
Делаем пару невинных правок:
Оригинал:
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/hex1.jpg)
он же, но только лишь с косметической коррекцией:
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/hex2.jpg)
В дизассемблере где-то так:
(IMG:http://malbe.nm.ru/batdrvr/battdrvr/fin2.jpg)
Ну вот. Любо- дорого посмотреть
На этом и сказке той конец. А кто слушал - молодец (IMG:http://forum.pda2u.ru/style_emoticons/default/wink.gif)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 28.3.2024, 21:40
return_links(); ?>