![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Здравствуйте, уважаемые!
Разрабатывал программу для блокировки сайтов в Windows XP посредством перехвата Send, WSASend. На Windows 7 данный способ не работает. Браузеры просто зависают единогласно. Подскажите пожалуйста, актуален ли способ перехвата Send, WsaSend в Windows 7 (возможно ли это, может программе нужны особые права?) или нужно копать в другую сторону? Спасибо. Это сообщение отредактировал(а) snakesoft - 14.7.2011, 21:18 |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Твоя программа- внедряемая в браузеры dll?
Как внедряешь? Добавлено через 4 минуты и 15 секунд hosts -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 4 Всего: 133 |
Меня всегда умиляли инженеры-разработчики велосипедов. В Win7 есть прекрасно работающий родительский контроль, который справляется не только с блокировкой сайтов.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек
Да. Внедряю так:
hosts - неактуально, очень легко обойти |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
А попробуй через реестр.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs В семерке по моему тоже действует. Или через мой Injector_dl, Правда в Win7 в установленные проги не внедряет. Почему?... Не разбирался. Не доходят руки установить семерку. Заменил вложение на исправленный 24.12.12 Это сообщение отредактировал(а) Чучмек - 25.12.2012, 01:26 Присоединённый файл ( Кол-во скачиваний: 30 ) ![]() -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек. Обязательно попробую и отпишусь о результатах.
|
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек
При использовании параметра AppInit_DLLs в реестре, блокировка не работает ((( |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Код перехвата winAPI,пожалуйста.
После virtualprotect, удается ли записать в область памяти отведенную под dll???? Сколько байт winAPI перезаписывается? Семерошную WS2_32.dll мне. Добавлено через 3 минуты и 5 секунд
Симптомы те же? Зависание? Это сообщение отредактировал(а) Чучмек - 20.7.2011, 15:00 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек
В архиве прилагаю рабочий пример для Windows XP (блокирует доступ к google.ru), а также семерошную WS2_32.dll. Поставил себе Winxp sp3 и Win7 Максимальная. Запускаю Injector.exe на XP, запускаю любой браузер - доступ к googl'y блокируется. (Перехватывал Send, WsaSend). Делаю тоже самое на Win 7 - браузер либо зависает, либо вообще вылетает, как IE, так и Opera с FireFox'ом. Пробовал ставить MessageBox'ы в функциях перехвата. В мессаджах получал имена хостов, к которым происходит попытка доступа, т.е. в принципе как я понял и на 7-ке перехват работает, но лишь с одним приколом, что браузер потом вылетает. Присоединённый файл ( Кол-во скачиваний: 63 ) ![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Я правильно понял...
Основой является HookProc из advApiHook стороннего разработчика? Вот там и бок. Добавлено через 5 минут и 47 секунд Завтра будет время - дам свой вариант. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
Проблему почти решил. в AdvApiHook.pas нужно было заменить способ выделения памяти GetMem на VirtualAlloc, далее PAGE_READWRITE заменить на PAGE_EXECUTE_READWRITE.
После выполненных действий блокировка на WIN7 заработала ... Проверял на Opera, FireFox, Chrome Но..... IE иногда глючит по непонятным мне причинам, долго обрабатывает запрос, а иногда вообще не отображает страницы. Как можно этот баг устранить? Спасибо. Это сообщение отредактировал(а) snakesoft - 21.7.2011, 01:46 |
|||
|
||||
Чучмек |
|
||||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
В ie первый запрос идет по UDP на 127.0.0.1, 'внутренний запрос'(по крайней мере в 6). Если это соединение оборвать - IE будет долго тормозить. Я не знаю связанно это или нет с
Кроме того, конструкция
Будет обрывать все запросы содержащие строку 'google.ru'. Попробуй ввести в яндексе этот самый 'google.ru'. - выдаст "невозможно отобразить страницу" Это сообщение отредактировал(а) Чучмек - 21.7.2011, 08:59 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
Чучмек |
|
||||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Можно посмотреть? Вот
Пример использования:
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек
Прилагаю архив с исправленным AdvApiHook Присоединённый файл ( Кол-во скачиваний: 77 ) ![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Перехват WinApi не будет работать в следующих случаях
1.Не получается внедрить dll в процесс. 2.virtualprotect не устанавливает необходимые атрибуты. 3. Не правильно определен CopyByte и соответственно управление передается в средину инструкции. 4. В системе имеется другая dll(чаще всего вирус) перехватывающая те же функции. 1 и 2 следует ожидать в новых версиях windows, в связи с параноидальным увеличением безопасности. 3 - при изменении версии dll (если CopyByte не определяется динамически под функцию, об этом ниже) 4 - связано с использованием относительных переходов - при переносе кода, точка передачи управления тоже смещается.(Выход(частичный) - абсолютные переходы. Позже дам измененную WinApiPatch) CopyByte - динамически:
lde_opcode_length смотри Размер машинных инструкций -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек
А в самом AdvApiHook.pas можно что-то изменить, чтобы в IE на семерке всё заработало? |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
А тут уже не вAdvApiHook.pas проблема.
С пустой Nsend IE нормально работает ?
Проверял? -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Чучмек.
Да, с пустой NSend нормально работает. Всё разобрался с NSend. Спасибо. Это сообщение отредактировал(а) snakesoft - 22.7.2011, 09:29 |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Вот так должно работать. Но учти, что блокировать надо не все запросы. А только ПЕРВЫЙ send в соединении. И только вслучае если он содержит строку вида: #13#10+'Host:google.ru'+#13#10 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
||||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Akella
На ограниченной учётной записи не проверял. На учётной записи с правами администратора всё ОК 2 Чучмек Ок.Понял Это сообщение отредактировал(а) snakesoft - 22.7.2011, 13:10 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
||||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Akella
Скажи пожалуйста, у тебя случайно нет манифеста, который можно прикрутить к своей программе, чтобы она запускалась с правами администратора в Windows 7? Это сообщение отредактировал(а) snakesoft - 22.7.2011, 17:54 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Неа. Но, думаю, что найти его через гуголь или взять у любой другой программы не проблема.
Добавлено @ 22:41 В крайнем случае в ярлыке запуска можно включить "Запускать с правами администратора". И не путать с термином "от имени администратора". Добавлено @ 22:49 тут есть манифест: http://forum.oszone.net/thread-197803.html http://krez0n.org.ua/archives/318 здесь есть примеры на дельфи, как без манифеста запросить у пользователя разрешение на поднятие прав: http://www.delphimaster.net/view/15-1281636818/0-39 http://forum.codeby.net/topic42048.html и это полезно: http://windows.microsoft.com/ru-RU/windows...nch-in-Windows7 Добавлено @ 22:50 Как видишь, 10 минут в гугле и куча инфы как на ладони ;) Добавлено @ 22:53
Программа не будет запущена сразу с правами админа, т.к. для начала винда покажет пользователю соответствующий запрос. И уже пользователь будет решать, запускать программу или нет ![]() Кстати, ещё интересный момент. Можно сделать так, что даже если пользователь нажмёт НЕТ при запросе, то программа всё равно запуститься, но без прав админа. Не знаю как это реализовать, посмотри примеры, может там есть. |
|||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Akella
Тебя понял, спасибо, поизучаю. Да, здесь дело в UAC. Кстати заметил следующую интересную тенденцию: Если при включенном UAC запускаю свою программу - она блокирует список сайтов во всех браузерах кроме IE. Если выключаю UAC - после перезагрузки программа блокирует сайты и в IE. В принципе парадоксален лишь один факт. Почему при включенном UAC блокирует во всех браузерах кроме IE? Насколько я понял IE использует Tsend, а все остальные браузеры - TWSASend, или, возможно я ошибаюсь? Но код блокировки в функции перехвата Tsend идентичен коду в перехвате TWSASend, тогда в чём загвоздка? И если при включенном UAC захожу в свойства -> совместимость -> уровень прав и выставляю галочку "Выполнять эту программу от имени администратора" в IE сайты не блокируются всё равно, только если отключаешь UAC перезагружаешься, тогда всё OK На XP соответственно всё работает нормально, как в IE так и во всех других браузерах... Это сообщение отредактировал(а) snakesoft - 25.7.2011, 03:00 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
||||
|
||||
snakesoft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 26.5.2007 Репутация: нет Всего: нет |
2 Akella
Да, специально для этого создал учетную запись с ограниченными правами и проверил. |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
snakesoft, В таком виде (AdvApiHook),для серьезных программ, перехват WinAPI не годится.
Подключи две dll перехватывающие одну и ту же функцию... Если у пользователя уже стоит нечто подобное(в плане перехвата WinAPI) - он удалит твою программу сразу после установки. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |