Доброго времени суток. Есть программа - mydriver.sys Запускается с консоли - instdrv MyDriver %windir%\system32\drivers\mydriver.sys net start mydriver.sys После запуска реализует некую важную функциональность с в системе. Я хочу вшить в этот драйвер свой код. Например простенький вывод сообщения "Hello World !" перед запуском самого драйвера на выполнение.. Вопрос - как это можно реализовать. Иходников самого драйвера нет. Подскажите как. С ASM знакомился года 4 назад - на студенческом уровне.. Много подзабыл, но ест желание все вспомнить. Подскажите кто чего может
GaDiNa Не круто ли сразу в драйвер лезть? Checksum ведь менять придётся (если я не ошибся), помимо записывания кода в секцию/создания новой.
Если есть вызовы функций типа printf или MessageBox, то можно попробовать найти свободное место и в нем создать бинарный код, печатающий сообщение. Видимо придется с релоками повоевать. Тут кто-то уже с релоками фокусничал, посмотри темы за последние 2 месяца, кажись у него все получилось. Если же таких функций нет, то не знаю пока, чем помочь. Можно попробовать еще секции расширять, если свободного места нет.
вобщето "Hello world !" это просто проверка своих сил и работоспособности идеи.. Мне нужно сделать привязку этого драйвера к железу.. То есть защитить от копирования.. Вот что мне подсказали на другом форуме: Что скажете ?
GaDiNa Мне нужно сделать привязку этого драйвера к железу.. То есть защитить от копирования.. Только дату сверять это не очень-то. Что касается способа: если PE-редактор не глючит при добавлении секции (как у меня, правда, на EXE, а не на SYS), то способ и подействует, за не имением возможности сделать такое у себя подумал, что потребуются много всяких кривых программок, которые секции добавляют. Тогда тем же PE-редактором выставишь потом Checksum, иначе не загрузится. Кстати, а нельзя изменить точку входа на новую секцию, а уже из твоего кода вызвать исходный. Никаких попорченных байтов не будет.
GaDiNa тебе на одном форуме мягко намекнули что перепродавать чужое - нехорошо. Думаю что если обратится к тем кто тебе это посоветовал, то они тебе все сразу встроят и никаких проблем не будет.
А не проще ли написать новый драйвер, который будет защищать и себя и своего напарника? Загружаешь их поочереди - мороки всё-таки меньше.
NullSessi0n Та не. Про дату имеется ввиду вообще - данные.. Сверка чего угодно.. А я не знаю. ДУмаешь так будет лучше ? Как это сделать ? crypto ну наверное так.. infern0 на том же форуме я не менее мягко обьснил, что "перепродажей" не занимаюсь. Защищаю свое и себя. К тому кто мне дал этот драйвер обращался - человек может сделать, но видимо хочет денег, которые я не могу заплатить.. К тому я хочу решить это сам. Хочу уметь, понимаешь ? Так что харош наверное об этом. А то глядишь и вправду у меня такая идея "перепродавать" устаканится.. cmd_prompt хм.. надо подумать.. Но я стучусь сюда еще и по той причине что мне нужен какойто пример.. от чего оттолкнуться.. сам пока ничего не могу сделать.
Ты наверное не понял мой вопрос про вызов функций и создание новых релоков... Например, как будешь выполнять вызов функции из WinApi (хотя бы), которая не используется в твоем драйвере?
Посмотри статью ms rem'a Перехват API функций в Windows NT там есть пример написания, загрузки и скрытия драйвера на C++ & asm. Также рекомендую скачать KMDKit для MASM32. Если возникнут вопросы, пиши cmd-prompt@yandex.ru
Поскольку ты поместил свой вопрос в Исследования, то самым логичным будет декомпилировать драйвер, вписать в него все, что требуется и скомпилировать заново.
cmd_prompt Спасибо. KMD уже до этого скачал - вкуриваю.. crypto Поместил туда, где, как мне показалось больше подобных тем.. Я перед созданием темы прошерстил форумы..