Самомодификация кода

Тема в разделе "WASM.BEGINNERS", создана пользователем plasmoid, 14 июн 2007.

  1. plasmoid

    plasmoid New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2007
    Сообщения:
    2
    Возможно ли создание в асме (или другом языке программирования) самомодифицирующегося кода? Конкретно интересует следующая возможность. Имеется программа работающая без инсталятора При запуске программа читает имя компьютера и "внедряет" его в себя. При следующем запуске программа вновь читает имя компьютера и если оно не совпадает с предыдущим результатом, то программа завершает свою работу.

    P.S. смутно подозреваю что можно, но не подозреваю как.
     
  2. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    Как я понял ты хочешь модифицировать сам Exe-файл программы... а не модификацию в памяти...
     
  3. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    если это так то конечно можно...
     
  4. plasmoid

    plasmoid New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2007
    Сообщения:
    2
    Именно сам exe-файл. А если возможно, то как это реализовать?
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ищи на форуме
     
  6. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Чтоб поиск был легче:

    Простейший вариант - запускается программа, внедряется код в АП любого доступного процесса и ждет завершения основной проги, как дождался - вносит изменения в файл.
     
  7. Djinn

    Djinn New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    22
    о_О интересно, а мона пример?
     
  8. GanDJuStas

    GanDJuStas New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2003
    Сообщения:
    21
    Адрес:
    Russia
    И умирает вместе с ней
     
  9. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Twister
    Мне конечно трудно оценивать, че тут умные дяди делают, но ИМХО внедрение в чужой процесс - не самый простой способ. ГОРАЗДО легче применить MoveFile к своему ехе-шнику в какое-нибудь укромное место типа C:\Windows\System32 да еще и под левым именем. А потом уже сохранять на старое место модифицированный экзешник.
     
  10. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    запущенный экзешник пока что можно переносить только в пределах одного диска, так что если запустить ее не с c:, ситуация несколько усложняется... как, собственно, и при запуске с c:, если темп находится на другом диске
     
  11. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    Даже некоторые вирусы (черви) записывают в конец, например, найденные адреса электронной почты...
    Если не ошибаюсь I-Worm.Happy этим занимался...
     
  12. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    Может патчинг хитрый попробовать...
     
  13. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    а зачем куда-то в хитрое место кидать, в той же директории, тем более что не думаю что опеерации будут выполнятся больше секунды.
     
  14. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Ну я подумал исходя из задачи,
    что человек хочет своего рода "защиту" организовать. А если все прям так наглядно делать, то даже чайник вроде меня догадается, что че-то тут не так.
     
  15. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Хм, достаточно сделать копию такой "защищённой" программы перед её запуском и вся "защита" рухнет. Смысл мучаться ?
     
  16. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    А зачем такие заморочки как запись в EXE файл.

    Не проще ли хранить это в реестре или в другом файле ?
     
  17. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    plasmoid попробуй почитай руководство к PE-формату... Цикл статей по вирусам... В конечном итоге создай новую секцию небольшого размера куда будешь писать ксоренное имя компа...
    Помогу тока чуть посже...
     
  18. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    plasmoid, если мне не изменяет память, года 3-4 назад на кряклабе GPcH кидал такой крякми(искать топик по словам 'Так не честно' :)), но лечится такая проверка установкой атрибута 'Только чтение' на файле, т.е. если поставить атрибут до первого запуска, то прога всегда будет думать что ее запустили первый раз, это если сам не проверяеш файл на этот атрибут, конечно.
     
  19. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    l_inc
    Все зависит от рук... ;)
    Гораздо проще и геморойнее...
    Жалко 4кб чужого АП?

    Почти в тему: http://vbstreets.ru/VB/Articles/66169.aspx
     
  20. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Twister
    Если не учитывать замечание Nouzui (хотя геморройности в проверке текущего диска я тоже не вижу), то я не понимаю, в чем геморройность.
    -------------------------------
    (хоть это и не на мой пост ответ :) )
    Да причем здесь жалко? Главное, чтобы эти 4 кб в неподходящий момент вместе с чужим АП не рухнули.

    P.S. Только если я здесь где-нить гоню... не пинайте чайника pls.