Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Внедрение кода в файл

21K
28 марта 2007 года
Gais
23 / / 28.03.2007
Как внедрить свой код в начало другого файла, т.е. , чтоб сначала отработал мой код, а потом основная программа?
Если можно пример на Асме
391
28 марта 2007 года
Archie
562 / / 03.02.2005
А у тебя код-то какой? Нативный или байткод?
261
28 марта 2007 года
ahilles
1.5K / / 03.11.2005
ты думаешь это так легко и просто?
чтобы внедрить код в начала файла на сдвинуть тот код который там был а следовательно надо профиксить все ссылки на память старого кода
намного лучше внедрять свой код в конец и изменять точку входа
на wasm.ru есть статьи про вирусы иди туда
502
28 марта 2007 года
Jail
550 / / 30.01.2007
Цитата:
ты думаешь это так легко и просто?
чтобы внедрить код в начала файла на сдвинуть тот код который там был а следовательно надо профиксить все ссылки на память старого кода
намного лучше внедрять свой код в конец и изменять точку входа
на wasm.ru есть статьи про вирусы иди туда


Ой как всё запущено...всё намного проще чем ты думаешь))) Просто даёшь линк на свой код и кое-что замещаешь)))
А вот тебе и пример небольшой------->>>>>>>>
http://forum.codenet.ru/showthread.php?t=36571

391
28 марта 2007 года
Archie
562 / / 03.02.2005
Времена COM уже давно прошли, а заражать PE действительно намного сложнее.
4.6K
29 марта 2007 года
Tokolist
268 / / 22.03.2007
Дружище, тебе прямиком на http://www.cracklab.ru/
(я конечно предполагаю, что автор знает такие умные слова как Assembler, PE и т.д. и т.п. :))

[QUOTE=ahilles]ты думаешь это так легко и просто?[/QUOTE]
Ниче сложного - как два бита переслать :)
21K
29 марта 2007 года
Gais
23 / / 28.03.2007
Big thanks! Теперь буду сам разбираться дальше!
502
29 марта 2007 года
Jail
550 / / 30.01.2007
Цитата:
Времена COM уже давно прошли, а заражать PE действительно намного сложнее.


Я это знаю, спасибо за комент)))))

261
29 марта 2007 года
ahilles
1.5K / / 03.11.2005
Автору надо поместить свой код в начало, а следовательно сместить старый код, это сложно, а помещать свой код в конец и изменять точку входа или изменять первую команду намного проще
в общем вот нормальные сслыки про вирусы под Windows
http://wasm.ru/article.php?article=peinfector
http://wasm.ru/article.php?article=srp_sintez (внедрение в заголовок)
и вообще
http://wasm.ru/publist.php?list=6
4.6K
30 марта 2007 года
Tokolist
268 / / 22.03.2007
Цитата: ahilles
Автору надо поместить свой код в начало, а следовательно сместить старый код, это сложно, а помещать свой код в конец и изменять точку входа или изменять первую команду намного проще



ИМХО, а какая разница? Главное чтоб твой код выполнился перед кодом программы. А где он будет находится не существенно.

261
30 марта 2007 года
ahilles
1.5K / / 03.11.2005
ну есть же такие вирусы которые сдвигают старый код и вставляют свой
21K
31 марта 2007 года
Gais
23 / / 28.03.2007
Возник еще вопрос, а вернее уточнение. Код внедряется отдельной секцией. Как найти где начинается новая секция?
502
01 апреля 2007 года
Jail
550 / / 30.01.2007
[LEFT]
Цитата:
ИМХО, а какая разница? Главное чтоб твой код выполнился перед кодом программы. А где он будет находится не существенно.


Большая разница! Констатирую...Вы плохо знакомы с ассемблером.

Цитата:
ну есть же такие вирусы которые сдвигают старый код и вставляют свой


ahilles прав. Но реализация таких вирев сложновата. Проще запихнуть код в конец и дать на него метку.

Цитата:
Возник еще вопрос, а вернее уточнение. Код внедряется отдельной секцией. Как найти где начинается новая секция?


Я так думаю с вашей метки, куда Вы и помещаете свой код. Переход на эту секцию возможен с помощью оператора go to <имя метки>
[/LEFT]

261
01 апреля 2007 года
ahilles
1.5K / / 03.11.2005
создание новой секции тоже сложно (но это считается хорошим стилем :-) по-моему)
для получения физического положения в файле надо взять последнюю секцию посмотреть размер RAW данных
для получения положения в памяти на взять последнюю секцию посмотреть размер виртуальных данных
но есть одна загвоздка может не хватить места в таблице секций короче это всё описано там же на сайте wasm
4.6K
01 апреля 2007 года
Tokolist
268 / / 22.03.2007
[QUOTE=Jail]Большая разница! Констатирую...Вы плохо знакомы с ассемблером.[/QUOTE]
Объясните мне "плохо знакомому" :) с асмом какая разница (если не сложно конечно).
Главное найти "свободное место" в файле (или создать новую секцию, как уже было сказано выше) и изменить точку входа и Ваш код будет исполняется перед кодом программы.
Предположим вы сдвинете код. Чем это будет отличаться? :confused:

http://cracklab.ru/art/?action=view&id=53
334
01 апреля 2007 года
HexEdit
809 / / 27.07.2006
[quote=Tokolist]Предположим вы сдвинете код. Чем это будет отличаться? [/quote]
Для COM это чревато изменением смещений
Для EXE - из начал сегментов
Для PE - нужно будет изменить адреса начал секций
4.6K
01 апреля 2007 года
Tokolist
268 / / 22.03.2007
Цитата: HexEdit
Для COM это чревато изменением смещений
Для EXE - из начал сегментов
Для PE - нужно будет изменить адреса начал секций



Вот. Я про это же. Результат тот же, а проблем больше :)

334
01 апреля 2007 года
HexEdit
809 / / 27.07.2006
Цитата: Tokolist
Вот. Я про это же. Результат тот же, а проблем больше :)


Дык и не нужно сдвигать код. Наоборот, линковка лучше и удобнее.

4.6K
02 апреля 2007 года
Tokolist
268 / / 22.03.2007
Цитата: HexEdit
Дык и не нужно сдвигать код. Наоборот, линковка лучше и удобнее.



Так я это и доказываю. :) Что смысла сдвигать код нет.

502
02 апреля 2007 года
Jail
550 / / 30.01.2007
Цитата:
Так я это и доказываю. :) Что смысла сдвигать код нет.


Вы противоречите сами себе.

4.6K
02 апреля 2007 года
Tokolist
268 / / 22.03.2007
Цитата: Jail
Вы противоречите сами себе.


Прочитайте, пожалуйста, еще раз этот пост.

Не знаю может я в нем плохо выразился. Попробую обьяснить еще раз :)

Когда мы помещаем код в начало файла и сдвигаем основной код, то наш код выполняется первым. Правильно? Правильно.

Но мы делаем разумнее. Мы берем внедряем код туда где есть свободное место (обычно конец секции заполнен нулями) или добавляем новую секцию и внедряем код туда. Запоминаем где находится начало внедренного кода и пишем этот адрес вместо точки входа. А в нашем внедренном коде в конце делаем джамп на старую точку входа. Отсюда получаем, что наш код исполнится первым, а тогда передаст указатель на код программы, с которой мы издеваемся :).

334
02 апреля 2007 года
HexEdit
809 / / 27.07.2006
Цитата: Jail
Вы противоречите сами себе.


Кто кому? Поясни

502
02 апреля 2007 года
Jail
550 / / 30.01.2007
[LEFT]
Цитата:
Когда мы помещаем код в начало файла и сдвигаем основной код, то наш код выполняется первым. Правильно? Правильно.

Но мы делаем разумнее. Мы берем внедряем код туда где есть свободное место (обычно конец секции заполнен нулями) или добавляем новую секцию и внедряем код туда. Запоминаем где находится начало внедренного кода и пишем этот адрес вместо точки входа. А в нашем внедренном коде в конце делаем джамп на старую точку входа. Отсюда получаем, что наш код исполнится первым, а тогда передаст указатель на код программы, с которой мы издеваемся :).


Вы это мне объясняете или аффтору?? Если мне, то спасибо не нужно :)
[/LEFT]

4.6K
03 апреля 2007 года
Tokolist
268 / / 22.03.2007
Цитата: Jail
[LEFT]
Вы это мне объясняете или аффтору?? Если мне, то спасибо не нужно :)
[/LEFT]


Не. Мне просто показалось, что Вы меня не правильно поняли :rolleyes: А лишний раз объяснится не помешает :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог