Отслежывание запуска файлов

Тема в разделе "WASM.BEGINNERS", создана пользователем temi4, 9 фев 2011.

  1. temi4

    temi4 New Member

    Публикаций:
    0
    Регистрация:
    17 янв 2011
    Сообщения:
    22
    Привет полазал по форуму и почитал статьи, но так и не понял несколько вещей:

    Мне необходимо чтобы моя программа (висела в памяти) отслеживала запуск других программ и после запуска какой либо программы, она (моя программа) получала имя запускаемого файла и путь до него, закрывала запускаемый файл, добавляла в него мой код, а далее производила запуск файла после внедрения.

    Как я понял для этого надо либо писать драйвер и использовать PsSetCreateProcessNotifyRoutine (что не вариант)
    Либо можно установить хук на вызов ZwCreateProcess или ZwCreateSection.

    Как установить хук на какую-либо из данных функций корректно?

    Почитал, советуют менять таблицу импорта файла с указанием на переопределенную функцию, но как это делать когда я еще не знаю какой файл будет запущен. Либо изменять на jmp первые байты вызова функции из кернел32, но сказано что такой способ не рекомендуется.

    Как лучше поступить? Спасибо за любые подсказки, если возможно скиньте пару ссылок где можно более подробно ознакомиться с интересующим меня вопросом.
     
  2. niakris

    niakris Дмитрий

    Публикаций:
    0
    Регистрация:
    3 сен 2008
    Сообщения:
    45
    Вирусню строгаешь? :)
     
  3. temi4

    temi4 New Member

    Публикаций:
    0
    Регистрация:
    17 янв 2011
    Сообщения:
    22
    niakris, да учусь) интересно же)
     
  4. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Жи, ши пиши с буквой и.

    Следует отталкиваться от того, что сами по себе программы не стартуют. Их запускают другие программы. Соответственно внедрившись, например в проводник, и установив в нем необходимые перехваты ты получишь возможность контролировать создание процессов, чьим родителем будет проводник) То есть практически всех, что запускает пользователь.

    А вообще писать вирусы это плохо, а что-то патчить по всяким древним мануалам - тем более :)

    Можно почитать вот это http://www.rsdn.ru/forum/asm/2300364.flat.2.aspx
     
  5. temi4

    temi4 New Member

    Публикаций:
    0
    Регистрация:
    17 янв 2011
    Сообщения:
    22
    EP_X0FF, спасибо

    да с жи ши что-то получилось не удачно)

    А можно более подробно как внедриться в ехплорер?
    Делаем снапшот процессов, получаем PID -> explorer.exe?
    что в нем надо найти?
     
  6. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    Внедрить в него свой код перехвата, и пофиксить адрес нужных API в таблице импорта.
     
  7. temi4

    temi4 New Member

    Публикаций:
    0
    Регистрация:
    17 янв 2011
    Сообщения:
    22
    а разве ехплорер.ехе не занят системой чтобы его можно было пофиксить?
    или пофиксить сохранить как другой файл и в реестре переделать запуск на пофиксенный?
     
  8. fsd

    fsd New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    353
    руки тебе зачем
     
  9. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    temi4
    Имеется ввиду, что внедряться нужно в процесс, а не инфектить файл.
    Сперва попробуйте внедриться простейшим образом:
    OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread
    Все детали вот тут
    Вы пишете свою длл, прогружаете в эксплойлер и с нее уже делаете с процессом все что требуется.
     
  10. temi4

    temi4 New Member

    Публикаций:
    0
    Регистрация:
    17 янв 2011
    Сообщения:
    22
    fsd, сразу сложно все понять, все когда то учатся, а для этого не стыдно и вопрос задать...

    dyn, спасибо попробую.