· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.PROJECTS —› Вот библиотечку написал...

Посл.отвђт Сообщенiе


Дата: Янв 20, 2004 09:28:28 · Поправил: hello_world

Привет всем!
Я решил написать удобную библиотеку для установки хуков под win 9x/nt, чтобы можно было вставлять свои процедуры до и после вызова апи функций, менять их параметры и возвращаемое значение и т.д.
Вот то что удалось написать за неделю. Описание работы и несколько простых примеров есть в readme в архиве.
Прошу всех кому не лень высказать свои пожелания/предложения и сообщить о багах, если они есть.
Еще не плохо было бы протестировать на разных виндах (я тестировал только на Win98 и WinXP sp0)
Всем спасибо!

ЗЫ Если всетаки захотите посмотреть, то будьте осторожны т.к. никакой обработки ошибок пока нет и поэтому возможны екзепшены и BSODы :)


_1784428368__hook.zip


Дата: Янв 21, 2004 12:47:20

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

_1194833201__hook.zip


Дата: Янв 21, 2004 19:28:41

hello_world
Привет! Извини, давно не пишу - времени нет! Скоро чё-нить мыльну... Как жизня?


Дата: Янв 22, 2004 07:20:15

1990
Посмотри в ящик.

2All
Ну так что, нужна кому-то подобная вещь вообще?
Лично мне хватает того что уже есть, просто сейчас у меня есть немного времени чтобы что-то добавить/улучшить.
Ладно, все, прекращаю форум флудить :)


Дата: Май 4, 2004 03:43:21

последняя версия.

_1683918308__hook.zip


Дата: Май 4, 2004 09:35:44

hello_world
Потестил я это на w2k sp4. Вроде работает. Как-то долго грузится прога, заметно подтормаживает и запуск мбокса.. Так что тут есть над чем подумать. Я понимаю, что проверить все процессы проблематично, но можно попробовать создать кучу тредов (по числу процессов) и пусть они одновременно проверяют. Имхо, скорость работы будет заметно выше.
А в принципе работает без сбоев.


Дата: Май 4, 2004 19:26:35 · Поправил: hello_world

заметно подтормаживает и запуск мбокса..
Там задержка стоит.

можно попробовать создать кучу тредов (по числу процессов) и пусть они одновременно проверяют
Имхо если поток в другом процессе успеет сделать LoadLibrary и вызвать ф-ю до истечения своего кванта времени, то хук обломится (если я не прав, то поправьте плиз, не хочу умереть в неведении).
И еще возник вопрос как узнать прерывается ли поток при выполнении определенного участка кода (Рихтера читал, но че то не понял)? Т.е. например есть цикл:
begin:

...

push  1
call  Sleep
jmp   begin
Как узнать успевает ли цикл выполниться 1 раз до переключения контекста?

ЗЫ По идее надо делать как зомби в своем стелс-движке т.е. перехватывать везде LdrGetDllHandle и при его вызове ставить остальные обработчики, но мне лень было как всегда :)


Дата: Май 4, 2004 19:46:07

Тулза, конечно, интересная.
Ты, вот, вызываешь VirtualProtectEx, что, разумеется, правильно. Только перед вызовом надо запомнить атрибуты. Сохранить их. Сделать свое дело, а потом восстановить.
И еще - касательно комментирования кода. В общем-то, в данном примерчике все достаточно просто и понятно. А если он станет больше, то хотелось бы видеть описание алгоритма в самом начале. Прямо в шапке пишешь что-то вроде:

Утилита по перехвату ля-ля-ля...
Алгоритм:
1. Определяем версию ОС.
2. if (OC == 9x) работаем с MMF
//тут поехало MMF-описание
3. else if (OC == NT)
//тут поехало ReadProcMem/WriteProcMem и т.п.

Ну, что-то типа около и вроде.
А так, спасибо за работу.


Дата: Май 4, 2004 20:24:36

volodya
Ты, вот, вызываешь VirtualProtectEx, что, разумеется, правильно. Только перед вызовом надо запомнить атрибуты. Сохранить их. Сделать свое дело, а потом восстановить.
Может ты и прав, уже исправил на всякий случай.

Комменты и ридми не катят, согласен, если надо могу переделать. Еще можно сделать ф-ю UNHOOK и подумать над тем как апи вызывать (см. FixAPICalls).
Кстати я на этой либе стелс движок свой сделал (по сравнению с зомби конечно менее навороченный, но зато в использовании попроще и поддерживает 9х)
Если заинтересовало, вот мой мыл: hello_world[собака]bk.ru

Спасибо за ответ.


Дата: Май 4, 2004 20:51:48

hello_world
Ну так что, нужна кому-то подобная вещь вообще?

Я вот всё хотел тулзень , которая хучит некоторые функции Crypto API (можно их не вызывать , главное в eax занести TRUE и прыгнуть обратно) .
Таким образом можно свести на нет , всю суть криптозащиты :))


Дата: Май 5, 2004 08:42:32

bogrus
главное в eax занести TRUE и прыгнуть обратно
А собственно что мешает?


Дата: Май 5, 2004 10:35:24

hello_world А собственно что мешает?

Ничё , я о том , что ты сделал нужное дело .
Не надо будет делать всё с нуля :)


Дата: Май 8, 2004 22:55:43

Ну что, кто-нибудь знает ответ на мой вопрос про
переключения контекста (см. выше)? Мож я спросил криво?


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.047