Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-16407
Prankster
2004-01-20 21:47
2004.02.06
FindFirst,FindNext


7-16768
InVariantian
2003-11-17 15:30
2004.02.06
Камера видеонаблюдения.


1-16460
Enigmatic
2004-01-28 02:24
2004.02.06
Сохранение настроек


1-16330
новый
2004-01-24 21:16
2004.02.06
сортировка


14-16658
raidan
2004-01-01 22:23
2004.02.06
Прикольно у вас тут :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский