Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизСамомодифицирующийся код Найти похожие ветки
← →
Konstantin (2004-01-20 19:42) [0]Самомодифицирующийся код, тема конечно замызганная, но всё что я нашёл и здесь и в инете, это написание самомодифицирующеегося кода под разными вариациями C, а как его реализовать в Delphi?
Заранее спасибо.
← →
Юрий Зотов (2004-01-20 19:55) [1]Хороший вопрос. Ответ потянет если не на книгу, то на немаленькую статью - уж точно. К тому же, еще и непростую. Вряд ли кто-то захочет вот так все бросить и написать такую статью прямо здесь.
Вообще говоря, реализовать можно примерно так же, как и на Си. В чем конкретная проблема?
← →
Konstantin (2004-01-20 20:36) [2]Именно проблемы нет, просто идея появилась, достаточно сложная, но у меня есть опыт в состовлении закрученных программ, вот решил такую сделать. Exe-шник который при запуске сканирует компьютер, находит все нестандартные dll(не из обязательных windowsсовских), вносит их в СЕБЯ, и всё. А при запуске с особым ключом экспортирует их в папку также указанную в ключе, при этом всю информацию о внесённых экспортируемых dllках также заносит всебя, я понимаю что звучит не очень реально, но я как-то нечто посложнее сделал... через месяц сбора информации по интернету/книгам. Да и зачем же писать отдельную статью, она уже наверняка написана просто дайте пожалуйста ссылку на неё...
← →
MAxiMum (2004-01-20 20:38) [3]www.yandex.ru....
Хранишь инфу в ресурсах... По коду сказать ничего не могу.
← →
Konstantin (2004-01-20 20:55) [4]в yandex-е искал только C с ассемблерными вставками... а насчёт ресурсов... в них dll не засунеш....
← →
Serginio666 (2004-01-20 21:27) [5]Ну вообщето Delphi.Net вышел. Используй CodeCompileUnit или Emit для создания своего кода.
← →
Konstantin (2004-01-21 17:41) [6]Попробую, но не мог бы кто дать ссылку на статью по этой теме?
← →
Юрий Зотов (2004-01-21 18:00) [7]Посмотрите вот что:
http://www.google.com.ru/search?hl=ru&inlang=ru&ie=windows-1251&q=%CA%F0%E8%F1+%CA%E0%F1%EF%E5%F0%F1%EA%E8+%D1%E0%EC%EE% EC%EE%E4%E8%F4%E8%F6%E8%F0%F3%FE%F9%E8%E9%F1%FF+%CA%EE%E4&btnG=%CF%EE%E8%F1%EA+%E2+Google&lr=lang_ru
← →
Юрий Зотов (2004-01-21 18:03) [8]Битая ссылка получилась...
В общем, зайдите на google и в строке поиска наберите:
Крис Касперски Самомодифицирующийся Код
← →
Юрий Зотов (2004-01-21 18:07) [9]Да, забыл добавить - там примеры тоже на Си, но это ничего не значит: они один-в-один портируются на Delphi (проверено на практике).
← →
Mystic (2004-01-21 20:12) [10]Честно говоря, я не совсем понял... В первом посте речь шла о самомодифицирующемся коде, во втором о загрузке DLL...
>> но у меня есть опыт в составлении закрученных программ, вот решил такую сделать <<
Цель? Защита от отладки?
>> находит все нестандартные dll <<
Что значит нестандартная DLL? Не соответствует стандарту Win PE?
>> вносит их в СЕБЯ <<
Загружает? Дописывает к себе как ресурс?
Если конкретизировать функционально программы до
1) поиск DLL по шаблону,
2) сохранение найденных DLL в ресурс,
3) сохраниние DLL из ресурса в директорию,
то это удачный пример на FindFirst, FindNext, BeginUpdateResource, EndUpdateResource, UpdateResource, но причем тут самомодифицирующийся код???
← →
Автоответчик (2004-01-21 21:12) [11]А я скромно скажу, что это орех.
← →
Юрий Зотов (2004-01-21 21:53) [12]> Автоответчик (21.01.04 21:12) [11]
Вопрос - возможно. А самомодифицирующийся код - реальность.
← →
Konstantin (2004-01-21 22:31) [13]2Mystic
нет тут задача несколько похитрее, просто я не всё перечислял а то что относится к самомодифицирующемуся коду, сама программа должна также уметь использовать все эти функции в себе, и по определённому алгоритму(пока несделанному) сортировать их по изменению данных в стеке... грубо говоря необходимо взять и добавить функцию(алгоритм выемки функции из dll есть) внутрь программы, а насчёт того примера, к сожалению в данном случае он недаёт достаточно информации... фактически задача почти нереализуема в полном виде, но мне нравиться заниматься такими, помимо всего в процессе разработки узнаю ОЧЕНЬ много нового...
> А я скромно скажу, что это орех.
Возможно так оно и есть, но если не ставить сложные цели их так никто и не выполнит;)
← →
Andy BitOff (2004-01-22 05:00) [14]//Юрий Зотов © (21.01.04 21:53) [12]
А что, кто-то оспаривает существование самомодифицирующегося кода?!!! Покажите мне этого человека!!!!
← →
Andy BitOff (2004-01-22 05:04) [15]Для не верующих (например);
http://citforum.uch.net/book/cook/selfmod.shtml
← →
Digitman (2004-01-22 08:13) [16]
> необходимо взять и добавить функцию ... внутрь программы
самомодификацией здесь и не пахнет
> алгоритм выемки функции из dll есть
из "чужой" DLL , надо понимать ?
нет такого универсального алгоритма ... и быть не может ...
возможны только его реализации для частных случаев
← →
Sha (2004-01-22 09:52) [17]Продолжу Digitman © (22.01.04 08:13) [16]
Даже после выемки функции придется корректировать вызовы из нее других функций. Если это не представляет для тебя труда, то просто копируй фукцию на стек, корректируй и выполняй. Можно использовать VirtualProtect - будет работать быстрее, возни тоже чуть больше. Остается проблемка работы с данными - но это тебе по силам :)
← →
Юрий Зотов (2004-01-22 14:40) [18]> Sha © (22.01.04 09:52) [17]
Совершенно согласен, основная проблема - сделать код перемещаемым. Особенно, когда это не свой код.
← →
Digitman (2004-01-22 16:14) [19]+ к тому : что делать с jmp"ами, "прыгающими" в тело совершенно иных п/программ, вполне автономных и совершенно независимых, но от кода которых зависит выполнение ДАННОГО кода ДАННОЙ "копируемой" п/программы ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c