![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Нужно в реальном времени изменять некоторые исходящие пакеты, передающиеся приложением.
Это выполнимо на Delphi ? |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Да, выполнимо - тебе нужно делать перехват winsock32 функций в нужном приложении и менять пакеты в сулчае необходимости. Темы такие были, так что используй поиск.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Я так понял что мне надо перехватывать ф-цию send. Я прав?
Это сообщение отредактировал(а) lifer - 31.5.2005, 12:28 |
|||
|
||||
RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Сразу дам пример перехвата входящих и исходящих пакетов.
необходим юнит madCodeHook из библы madCollection. http://madshi.net/madCollection.exe Внедрение hook.dll в нужный тебе процесс
А вот так выглядит Hook.dll .
ЗЫ: надеюсь принцип ясен. |
||||
|
|||||
Guest |
|
||||
Unregistered |
Разобрался с madCollection...
Несколько вопросов: 1.
У меня ведь будет уже запущенное приложение из которого надо будет перехватывать пакеты. 2.
Я так понял что при вызове ф-ции send будет выполняться сначала ф-ция sendHookProc. А в переменных s; var ; len, flags будет нужный мне пакет? |
||||
|
|||||
RA |
|
||||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Ну запуская процесс мы получаем TProcessInformation каторый потом используем для того что бы внедрить в чужой процесс свою dll. (просто так проще). Ну если процесс уже запущен то внедряйся в запущенный процесс... {Пример дать ?}
Именно так. Это сообщение отредактировал(а) RAdmin - 2.6.2005, 17:48 |
||||
|
|||||
haword |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 21.10.2004 Репутация: нет Всего: 3 |
RAdmin
если не трудно тай примерчик внедрения ![]() ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Не трудно, только ты создай про это отдельную тему в разделе winapi или общие вопросы. правила тут такие: один вопрос один топик. ![]() |
|||
|
||||
lifer |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Это понятно, только вот приложение при запуске через CreateProcess не хочет работать так, как нужно... так что лучше запускать его вручную...
Можете привести небольшой примерчик по внедрению в конкретный процесс? а то в хелпе по MadCodeHook рассматривается внедрение во все работающие проуессы. Это сообщение отредактировал(а) lifer - 5.6.2005, 12:30 |
||||
|
|||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Вроде так должно работать, но не проверял. Это сообщение отредактировал(а) RAdmin - 5.6.2005, 14:04 |
|||
|
||||
lifer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
[Error] Unit1.pas(34): Incompatible types: 'Cardinal' and 'Boolean' тут что-то не так... Это сообщение отредактировал(а) lifer - 5.6.2005, 13:57 |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Подредактировал, но всёравно не проверял.
|
|||
|
||||
Guest |
|
|||
Unregistered |
Я уже сделал вот так:
Теперь буду разбираться с dll ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 7 Всего: 115 |
Окинув это своим взглядом я пришел к выводу, что такая модификация в XP приведёт к получению ID рандомного процесса имеющего сходное имя файла но другую директорию запуска. |
|||
|
||||
lifer |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 17.1.2004 Где: Kiev, Ukraine Репутация: нет Всего: нет |
Захотел протестировать dll, по идее Result := -1; должен блокировать передачу данных. Я правильно понял? Вот код инжекта в исполняемом файле:
Такая конструкция у меня не работает ![]()
У меня windows 2000 ![]() Это сообщение отредактировал(а) lifer - 6.6.2005, 17:56 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |