|
|
| Посл.отвђт | Сообщен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 |
|
|
Дата: Май 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 |