Внедрение кода в файл
Если можно пример на Асме
чтобы внедрить код в начала файла на сдвинуть тот код который там был а следовательно надо профиксить все ссылки на память старого кода
намного лучше внедрять свой код в конец и изменять точку входа
на wasm.ru есть статьи про вирусы иди туда
чтобы внедрить код в начала файла на сдвинуть тот код который там был а следовательно надо профиксить все ссылки на память старого кода
намного лучше внедрять свой код в конец и изменять точку входа
на wasm.ru есть статьи про вирусы иди туда
Ой как всё запущено...всё намного проще чем ты думаешь))) Просто даёшь линк на свой код и кое-что замещаешь)))
А вот тебе и пример небольшой------->>>>>>>>
http://forum.codenet.ru/showthread.php?t=36571
(я конечно предполагаю, что автор знает такие умные слова как Assembler, PE и т.д. и т.п. :))
[QUOTE=ahilles]ты думаешь это так легко и просто?[/QUOTE]
Ниче сложного - как два бита переслать :)
Я это знаю, спасибо за комент)))))
в общем вот нормальные сслыки про вирусы под Windows
http://wasm.ru/article.php?article=peinfector
http://wasm.ru/article.php?article=srp_sintez (внедрение в заголовок)
и вообще
http://wasm.ru/publist.php?list=6
ИМХО, а какая разница? Главное чтоб твой код выполнился перед кодом программы. А где он будет находится не существенно.
Большая разница! Констатирую...Вы плохо знакомы с ассемблером.
ahilles прав. Но реализация таких вирев сложновата. Проще запихнуть код в конец и дать на него метку.
Я так думаю с вашей метки, куда Вы и помещаете свой код. Переход на эту секцию возможен с помощью оператора go to <имя метки>
[/LEFT]
для получения физического положения в файле надо взять последнюю секцию посмотреть размер RAW данных
для получения положения в памяти на взять последнюю секцию посмотреть размер виртуальных данных
но есть одна загвоздка может не хватить места в таблице секций короче это всё описано там же на сайте wasm
Объясните мне "плохо знакомому" :) с асмом какая разница (если не сложно конечно).
Главное найти "свободное место" в файле (или создать новую секцию, как уже было сказано выше) и изменить точку входа и Ваш код будет исполняется перед кодом программы.
Предположим вы сдвинете код. Чем это будет отличаться? :confused:
http://cracklab.ru/art/?action=view&id=53
Для COM это чревато изменением смещений
Для EXE - из начал сегментов
Для PE - нужно будет изменить адреса начал секций
Для EXE - из начал сегментов
Для PE - нужно будет изменить адреса начал секций
Вот. Я про это же. Результат тот же, а проблем больше :)
Дык и не нужно сдвигать код. Наоборот, линковка лучше и удобнее.
Так я это и доказываю. :) Что смысла сдвигать код нет.
Вы противоречите сами себе.
Прочитайте, пожалуйста, еще раз этот пост.
Не знаю может я в нем плохо выразился. Попробую обьяснить еще раз :)
Когда мы помещаем код в начало файла и сдвигаем основной код, то наш код выполняется первым. Правильно? Правильно.
Но мы делаем разумнее. Мы берем внедряем код туда где есть свободное место (обычно конец секции заполнен нулями) или добавляем новую секцию и внедряем код туда. Запоминаем где находится начало внедренного кода и пишем этот адрес вместо точки входа. А в нашем внедренном коде в конце делаем джамп на старую точку входа. Отсюда получаем, что наш код исполнится первым, а тогда передаст указатель на код программы, с которой мы издеваемся :).
Кто кому? Поясни
Но мы делаем разумнее. Мы берем внедряем код туда где есть свободное место (обычно конец секции заполнен нулями) или добавляем новую секцию и внедряем код туда. Запоминаем где находится начало внедренного кода и пишем этот адрес вместо точки входа. А в нашем внедренном коде в конце делаем джамп на старую точку входа. Отсюда получаем, что наш код исполнится первым, а тогда передаст указатель на код программы, с которой мы издеваемся :).
Вы это мне объясняете или аффтору?? Если мне, то спасибо не нужно :)
[/LEFT]
Вы это мне объясняете или аффтору?? Если мне, то спасибо не нужно :)
[/LEFT]
Не. Мне просто показалось, что Вы меня не правильно поняли :rolleyes: А лишний раз объяснится не помешает :)