Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

"Вклиниться" в адр. пространство библиотеки до выполнения Dllmain [Win2k]


Страницы:   1 2 3 4

BiN ©   (2004-03-11 12:38:00) 

Добрый день, уважаемые мастера!
Возможно ли выполнить сабж без создания своего загрузчика.

Надеюсь, вы не подумаете, что здесь ведется разработка трояна - скорее наоборот.


Игорь Шевченко   (2004-03-17 11:51:00) [21]

Kerk ©   (17.03.04 10:21)


> Какое-то единое мнение. :)


Мое мнение - вредная програма :) Консенсус ?


> Опять же - ты слишком доверяешь антивирусу.


Experience :)

Кстати, если есть желание продолжить флейм на эту тему, давай по почте, а то уже злостный offtopic.


Kerk   (2004-03-17 10:21:00) [22]


> А что там в консенсусе должно образоваться ? :)

Какое-то единое мнение. :)

> Мне программа не нравится по двум причинам ...

см. Kerk ©   (16.03.04 16:57) [48]:
Тебе прога не нравится - ладно, но текст(на который была ссылка) здесь при чем?!

> Антивирус мне exeшники вытер ...

Опять же - ты слишком доверяешь антивирусу. Написать вирь, неопределяющийся касперским можно за полчаса. А в базы антивиров часто добавляют совершенно безвредные проги (key-gen'ы всякие)...


Игорь Шевченко   (2004-03-16 17:38:00) [23]

Kerk ©   (16.03.04 16:57)

Распаковывал. Мне программа не нравится по двум причинам - по ее целям и по стилю написания. Антивирус мне exeшники вытер, разбираться в таком коде (про него вообще разговор отдельный) у меня нету ни времени, ни желания. Про цели я вроде цитаты привел...

> Чувствую к консенсусу не придем.

А что там в консенсусе должно образоваться ? :)


Kerk   (2004-03-16 16:57:00) [24]


> Еще комментарии нужны или как ?

Ты архив распаковывал?
Чувствую к консенсусу не придем. Тебе прога не нравится - ладно, но текст то здесь при чем?!

И не надо меня прокурорами пугать! Я почти-что законопослушный гражданин! :)


BiN   (2004-03-16 09:45:00) [25]

SPeller ©   (16.03.04 00:55) [46]
  Я ведь не говорю править исходный файл, а всего-лишь отображение его в памяти

 В том-то и дело, что он отображается в памяти, когда уже полностью загружен и как правило _после_ вызова Dllmain (перечитай subj). Как уже упоминалось, можно написать свой загрузчик - но есть более простые и эффективные методы.
Лично я определяю адрес неэкспортируемой функции, кот. вызывает DllMain и правлю ее (функции) вызов. Синтаксис дан. функции (по крайней мере в W2k) такой (я назвал ее LdrpDllEntryPointCaller, не найдя, к сожалению, ее аналог в замечательной статье Russ Osterlund на http://msdn.microsoft.com/msdnmag/issues/02/03/Loader/default.aspx):

functionLdrpDllEntryPointCaller(DllEntryPoint:TDllEntryPoint; hinstDLL:HMODULE; fdwReason:DWORD; lpvReserved:Pointer):BOOL; stdcall;

Кстати, дайте мне скачать ваше творение,

в этой теме я вроде никаких ссылок на свои творения не давал :)


SPeller   (2004-03-16 00:55:00) [26]


> Этот метод на начальной стадии разработки был отвергнут
> как слишком грубый. К тому же пришлось бы править код во
> всех подгружаемых библиотеках

Зато будет работать на ВСЕХ версиях ОС. Я ведь не говорю править исходный файл, а всего-лишь отображение его в памяти. Неужели независимость от версии ОС (хоть на вынь95 запускайте) не перевешивает "грубости" решения? Лично я не вижу ничего грубого в этом.

ЗЫ: Кстати, дайте мне скачать ваше творение, а то ссылка битая.


VMcL   (2004-03-16 00:53:00) [27]

>>Игорь Шевченко ©  (15.03.04 14:43) [42]
>И если антивирус ругается на некую программу, то место ей в Recycle Bin

ИМХО, слишком категорично. Я когда-то лабы в вузе сдавал: брал задание, делал дома, приносил на занятия в WinRAR'ском SFX-архиве. Так один раз в лаборатории то ли Dr.Web, то ли AVP ругнулся на SFX-модуль - типа там вирус, хотя его там, естественно, не было. Лабу пришлось сдавать в следующий раз.

P.S. Так и не удалось мне убедить препода, что можно установленным у них WinRar'ом распаковать мой архив и проверить его содержимое, и если уже оно (содержимое) не в порядке, тогда вопросов нет.

P.P.S. В архиве были только исходники то ли PAS, то ли CPP.


Игорь Шевченко   (2004-03-15 17:29:00) [28]


> hxdef в принципе не способен нанести какой-либо ущерб!


"Program installs hidden
backdoors, register as hidden system service and installs hidden system driver.
The technology of backdoor allowed to do the implantation of redirector."

" Because rootkit hooks all process in the system all TCP ports on all
servers will be backdoors. For example, if the target has port 80/TCP open for
HTTP, then this port will also be available as a backdoor."

Еще комментарии нужны или как ?


Kerk   (2004-03-15 14:53:00) [29]


> Я извиняюсь, я антивирусу доверяю больше - он железный :)

Печально.. :( Не стоит слепо верить антивиру...
Кстати, прога с исходниками идет, если мне не доверяешь, можешь сам посмотреть.


> > Прога не является трояном сама по себе...
> А эти сказки можно прокурору рассказать - он сжалится :))

hxdef в принципе не способен нанести какой-либо ущерб!
Сама прога может и "для пакостников", но сами технологии потенциально полезны.


Игорь Шевченко   (2004-03-15 14:43:00) [30]


> Ничего страшного не случится... гарантирую


Я извиняюсь, я антивирусу доверяю больше - он железный :)
И если антивирус ругается на некую программу, то место ей в Recycle Bin, как и прочим поделкам пакостников.


> Прога не является трояном сама по себе...


А эти сказки можно прокурору рассказать - он сжалится :))


Kerk   (2004-03-15 14:12:00) [31]


> Игорь Шевченко ©   (15.03.04 10:45) [40]

А ты запусти и еще раз касперским попробуй проверить... :)
Ничего страшного не случится... гарантирую.

Прога не является трояном сама по себе... она инструмент для скрытия всего что указано конфигурационных файлах...


Игорь Шевченко   (2004-03-15 10:45:00) [32]

Kerk ©   (12.03.04 16:41)

К вопросу, почему статья для пакостников: я не поленился, сходил на основной сайт (там ссылочка дана на инструмент, в котором "данные решения успешно используются"), даже что-то оттуда попытался скачать, но неудачно - антивирус не дал, сказал, что файлы в архивах заражены Backdoor.HackDefender virus.

Интересно, правда ?


BiN   (2004-03-15 10:42:00) [33]

SPeller ©   (14.03.04 17:17) [38]
Этот метод на начальной стадии разработки был отвергнут как слишком грубый. К тому же пришлось бы править код во всех подгружаемых библиотеках, так что утверждение о том, что "при этом мы никак не затронем "внутренности" виндов" - не совсем корректно.
На днях я доработал метод [36]. С уверенностью могу утверждать, что на всехверсиях W2k он будет работать. Думаю, что и на XP и далее - просто под рукой нет всего набора MSOS.


SPeller   (2004-03-14 17:17:00) [34]

А если скопировать в память содержимое ДЛЛ, запомнить адрес DllMain, куда-нить в конец файла вписать свой код, который, например, будет генерить какое-то событие, говорящее что обработчик запущен, вписать новый адрес DLLMain, загрузить в обычном режиме длл. Затем наша вставка сгенерит событие, по которому мы выполним нужные действия с образом модуля в памяти, затем продолжим выполнение нашей вставки, из которой и будет вызван настоящий DLLMain. Если вызывать DLLMain вообще не надо, то тогда ещё проще - вписываем обработчик из одного ret'а. При этом мы никак не затронем "внутренности" виндов и избавимся от платформо-зависимости. Многие вирусы работают по такому принципу правки адреса EntryPoint на другой, по окоторому расположен код вируса.


Kerk   (2004-03-13 12:09:00) [35]


> Кстати, привилегия пишется через "и" :)

Точно! :)


BiN   (2004-03-12 17:32:00) [36]

Вот только что закончил реализацию данной задачи. Кстати, принцип схож с http://i2r.rusfund.ru/static/565/out_16836.shtml.
Мой метод пока что на универсальность не претендует, но на w2ksp4 (сборка 2195) работает:
С помощью трассировщика определил самую "ближайшую" процедуру вызова Dllmain и переадресовал вызов на свой обработчик. Вот и все.


Игорь Шевченко   (2004-03-12 16:50:00) [37]


> Имел ввиду статью, на которую указал первой...
> Это там все тестировалось и работает.. :)


Ну вот там-то и нету метода загрузки с перехватом обращения к функции DllMain :)

Кстати, привилегия пишется через "и" :)


Игорь Шевченко   (2004-03-12 16:45:00) [38]


> Проверял? :-)


А как же. Я обычно говорю проверенные сведения.


Kerk   (2004-03-12 16:41:00) [39]


> > методы описаные в статье реализованы в проекте HackerDefender
>
> > и тестировались в разных операционках и сервис-паках.
>
> Только в статье приводится код с комментарием для NT4...


Блин, то ли лыжи не едут, то ли я по-русски как-то не правильно изъясняюсь...
Имел ввиду статью, на которую указал первой...
Это там все тестировалось и работает.. :)


> Так вот, как ни странно, в других системах, функция LdrLoadDll
> начинается иначе... Например, в XP

Проверял? :-)


Игорь Шевченко   (2004-03-12 16:37:00) [40]

Kerk ©   (12.03.04 16:27)


> Статья, о которой ты сказал, что это "текст для пакостников",
> не описывает как перехватить функции до выполнения DllMain


Ну хоть тут мы согласились.

> методы описаные в статье реализованы в проекте HackerDefender
> и тестировались в разных операционках и сервис-паках.

Только в статье приводится код с комментарием для NT4...

; в NT4 LdrLoadDll
                                            ; начинается командами
                                            ; push ebp | mov ebp,esp |
                                            ; push byte

Так вот, как ни странно, в других системах, функция LdrLoadDll начинается иначе... Например, в XP


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо