Добавление своего кода в готовую программу

Тема в разделе "WASM.RESEARCH", создана пользователем GaDiNa, 19 июн 2006.

  1. GaDiNa

    GaDiNa New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    4
    Адрес:
    Russia
    Доброго времени суток.



    Есть программа - mydriver.sys

    Запускается с консоли -



    instdrv MyDriver %windir%\system32\drivers\mydriver.sys

    net start mydriver.sys



    После запуска реализует некую важную функциональность с в системе.



    Я хочу вшить в этот драйвер свой код.

    Например простенький вывод сообщения "Hello World !" перед запуском самого драйвера на выполнение..



    Вопрос - как это можно реализовать. Иходников самого драйвера нет.



    Подскажите как.

    С ASM знакомился года 4 назад - на студенческом уровне.. Много подзабыл, но ест желание все вспомнить.

    Подскажите кто чего может
     
  2. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    GaDiNa

    Не круто ли сразу в драйвер лезть? Checksum ведь менять придётся (если я не ошибся), помимо записывания кода в секцию/создания новой.
     
  3. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    NullSessi0n

    а что, поправить crc так сложно?
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Если есть вызовы функций типа printf или MessageBox, то можно попробовать найти свободное место и в нем создать бинарный код, печатающий сообщение. Видимо придется с релоками повоевать. Тут кто-то уже с релоками фокусничал, посмотри темы за последние 2 месяца, кажись у него все получилось.

    Если же таких функций нет, то не знаю пока, чем помочь.

    Можно попробовать еще секции расширять, если свободного места нет.
     
  5. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336


    сомневаюсь что в драйвере будет :)
     
  6. GaDiNa

    GaDiNa New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    4
    Адрес:
    Russia
    вобщето "Hello world !" это просто проверка своих сил и работоспособности идеи..



    Мне нужно сделать привязку этого драйвера к железу..

    То есть защитить от копирования..

    Вот что мне подсказали на другом форуме:



    Что скажете ?
     
  7. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    GaDiNa

    Мне нужно сделать привязку этого драйвера к железу..

    То есть защитить от копирования..


    Только дату сверять это не очень-то.



    Что касается способа: если PE-редактор не глючит при добавлении секции (как у меня, правда, на EXE, а не на SYS), то способ и подействует, за не имением возможности сделать такое у себя подумал, что потребуются много всяких кривых программок, которые секции добавляют. Тогда тем же PE-редактором выставишь потом Checksum, иначе не загрузится.

    Кстати, а нельзя изменить точку входа на новую секцию, а уже из твоего кода вызвать исходный. Никаких попорченных байтов не будет.
     
  8. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    GaDiNa

    Как код вписывать будешь? Как с вызовом функций и с релоками будешь поступать?
     
  9. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    GaDiNa

    тебе на одном форуме мягко намекнули что перепродавать чужое - нехорошо. Думаю что если обратится к тем кто тебе это посоветовал, то они тебе все сразу встроят и никаких проблем не будет.
     
  10. cmd_prompt

    cmd_prompt New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    28
    Адрес:
    Ukraine, Donetsk




    А не проще ли написать новый драйвер, который будет защищать и себя и своего напарника? Загружаешь их поочереди - мороки всё-таки меньше.
     
  11. GaDiNa

    GaDiNa New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    4
    Адрес:
    Russia
    NullSessi0n



    Та не. Про дату имеется ввиду вообще - данные.. Сверка чего угодно..





    А я не знаю. ДУмаешь так будет лучше ? Как это сделать ?



    crypto







    ну наверное так..





    infern0

    на том же форуме я не менее мягко обьснил, что "перепродажей" не занимаюсь. Защищаю свое и себя.

    К тому кто мне дал этот драйвер обращался - человек может сделать, но видимо хочет денег, которые я не могу заплатить..

    К тому я хочу решить это сам. Хочу уметь, понимаешь ?

    Так что харош наверное об этом. А то глядишь и вправду у меня такая идея "перепродавать" устаканится..



    cmd_prompt



    хм.. надо подумать..





    Но я стучусь сюда еще и по той причине что мне нужен какойто пример.. от чего оттолкнуться.. сам пока ничего не могу сделать.
     
  12. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Ты наверное не понял мой вопрос про вызов функций и создание новых релоков... Например, как будешь выполнять вызов функции из WinApi (хотя бы), которая не используется в твоем драйвере?
     
  13. cmd_prompt

    cmd_prompt New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    28
    Адрес:
    Ukraine, Donetsk
    Посмотри статью ms rem'a Перехват API функций в Windows NT там есть пример написания, загрузки и скрытия драйвера на C++ & asm. Также рекомендую скачать KMDKit для MASM32. Если возникнут вопросы, пиши cmd-prompt@yandex.ru
     
  14. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Поскольку ты поместил свой вопрос в Исследования, то самым логичным будет декомпилировать драйвер, вписать в него все, что требуется и скомпилировать заново. :)
     
  15. GaDiNa

    GaDiNa New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    4
    Адрес:
    Russia
    cmd_prompt

    Спасибо. KMD уже до этого скачал - вкуриваю..



    crypto

    Поместил туда, где, как мне показалось больше подобных тем.. Я перед созданием темы прошерстил форумы..