Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Самомодифицирующийся код   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
14-16613
Eagle Owl
2004-01-13 22:43
2004.02.06
Дизассемблеры...


1-16266
vl_chel
2004-01-17 15:00
2004.02.06
Список функций в DLL


14-16686
Label
2004-01-16 20:48
2004.02.06
Помогите с тестом знаний


1-16396
GooD-NTS
2004-01-22 20:41
2004.02.06
Большая проблема.


3-16035
hOMO
2004-01-12 17:46
2004.02.06
Структура номера телефона