Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > Перехват и модификация исходящих tcp пакетов |
Автор: lifer 30.5.2005, 14:22 |
Нужно в реальном времени изменять некоторые исходящие пакеты, передающиеся приложением. Это выполнимо на Delphi ? |
Автор: <Spawn> 31.5.2005, 05:13 |
Да, выполнимо - тебе нужно делать перехват winsock32 функций в нужном приложении и менять пакеты в сулчае необходимости. Темы такие были, так что используй поиск. |
Автор: lifer 31.5.2005, 12:01 |
Я так понял что мне надо перехватывать ф-цию send. Я прав? |
Автор: RA 31.5.2005, 13:56 | ||||
Сразу дам пример перехвата входящих и исходящих пакетов. необходим юнит madCodeHook из библы madCollection. http://madshi.net/madCollection.exe Внедрение hook.dll в нужный тебе процесс
А вот так выглядит Hook.dll .
ЗЫ: надеюсь принцип ясен. |
Автор: Guest 2.6.2005, 16:57 | ||||
Разобрался с madCollection... Несколько вопросов: 1.
У меня ведь будет уже запущенное приложение из которого надо будет перехватывать пакеты. 2.
Я так понял что при вызове ф-ции send будет выполняться сначала ф-ция sendHookProc. А в переменных s; var ; len, flags будет нужный мне пакет? |
Автор: RA 2.6.2005, 17:47 | ||||
Ну запуская процесс мы получаем TProcessInformation каторый потом используем для того что бы внедрить в чужой процесс свою dll. (просто так проще). Ну если процесс уже запущен то внедряйся в запущенный процесс... {Пример дать ?}
Именно так. |
Автор: haword 3.6.2005, 06:46 |
RAdmin если не трудно тай примерчик внедрения ![]() ![]() |
Автор: RA 3.6.2005, 10:03 | ||
Не трудно, только ты создай про это отдельную тему в разделе winapi или общие вопросы. правила тут такие: один вопрос один топик. ![]() |
Автор: lifer 5.6.2005, 12:30 | ||||
Это понятно, только вот приложение при запуске через CreateProcess не хочет работать так, как нужно... так что лучше запускать его вручную...
Можете привести небольшой примерчик по внедрению в конкретный процесс? а то в хелпе по MadCodeHook рассматривается внедрение во все работающие проуессы. |
Автор: RA 5.6.2005, 13:13 | ||
Вроде так должно работать, но не проверял. |
Автор: lifer 5.6.2005, 13:38 | ||
[Error] Unit1.pas(34): Incompatible types: 'Cardinal' and 'Boolean' тут что-то не так... |
Автор: RA 5.6.2005, 14:05 |
Подредактировал, но всёравно не проверял. |
Автор: Guest 6.6.2005, 16:01 | ||
Я уже сделал вот так:
Теперь буду разбираться с dll ![]() |
Автор: RA 6.6.2005, 17:47 | ||
Окинув это своим взглядом я пришел к выводу, что такая модификация в XP приведёт к получению ID рандомного процесса имеющего сходное имя файла но другую директорию запуска. |
Автор: lifer 6.6.2005, 17:50 | ||||||
Захотел протестировать dll, по идее Result := -1; должен блокировать передачу данных. Я правильно понял? Вот код инжекта в исполняемом файле:
Такая конструкция у меня не работает ![]()
У меня windows 2000 ![]() |
Автор: RA 6.6.2005, 21:33 |
lifer Завтра приду домой всё проверю. |
Автор: lifer 7.6.2005, 09:19 | ||||||
спасибо. P.S. Извините что так много вопросов задаю, просто с темой перехвата API первый раз столкнулся. Да, и еще, чем такая конструкция:
отличается от такой:
|
Автор: RA 7.6.2005, 12:42 | ||
HookAPI('wsock32.dll', 'send', @sendHookProc, @sendNextHook); наложыт хук на функцию send в модуле wsock32.dll, тоесть получать мы будем весь трафик, а нам как я понял нужно только от конкретного процесса.
Ну по идее так можно сделать, только чужое приложение будет ожидать таймаута если это поставить на sendHookProc. Собсно вот прилагаю проверенный код внедрения с дллкой. |
Автор: lifer 7.6.2005, 16:58 |
Спасибо большое за помощь, разобрался в вашем коде, теперь с помощью MadCodeHook SendIpcMessage сделал передачу данных между hook.dll и приложением. Вроде проблема решена. Если еще появятся вопросы я обращусь к вам. |
Автор: RA 7.6.2005, 19:46 |
Обращайся. ![]() |
Автор: lifer 9.6.2005, 15:46 | ||
Помогите найти ошибку. Я перевожу данные, передаваемые приложением в hex-вид, для редактирования. Все работает, только при передаче вот таких данных: 89 00 00 00 1F A1 7B 0E 00 89 00 00 00 1F 20 95 0F 00 89 00 00 00 1F 07 C4 0F 00 89 00 00 00 1F FE F2 0F 00 89 00 00 00 1F FE F2 0F 00 89 00 00 00 1F E6 21 10 00 (смотрю с помощью commview) получается вот это: 89 00 00 00 34 1D D2 14 34 89 00 00 00 34 1D D2 14 34 89 00 00 00 34 1D D2 14 34 89 00 00 00 34 1D D2 14 34 89 00 00 00 34 1D D2 14 34 89 00 00 00 34 1D D2 14 34 данные, не содержащие 00 00 00 обрабатываются корректно. Я наверное неправильно обрабатываю данные в строке Data := Copy (PChar(@Buf),1,len); ? Вот код перевода в hex:
|
Автор: RA 10.6.2005, 22:10 | ||
|
Автор: lifer 11.6.2005, 12:37 | ||||
Спасибо, только вот зачем вот этот кусок кода:
У меня все работает вот так:
|
Автор: RA 11.6.2005, 14:45 | ||
Ну это модификаци, если конечно тебе это нужно. ![]() |
Автор: Guest 11.6.2005, 15:14 | ||||
А... ну тогда наверное должно быть так:
Мне нужно будет модифицировать пакеты вручную, для этого я и делаю перевод в Hex. |
Автор: lifer 12.6.2005, 15:18 | ||
Ой, ошибся, вы были правы. я не туда глядел ![]() |
Автор: Tosik 5.4.2010, 22:56 |
Тема хоть и старая, но вопрос актуальный. Есть желающие помочь разобраться с тем о чём говориться в теме? |
Автор: Rennigth 6.4.2010, 00:36 |
А в чем вопрос-то? Проблемма в чем? |
Автор: Tosik 6.4.2010, 08:46 | ||
Разбираю вот этот код Присоединённый файл ( Кол-во скачиваний: 150 ) InjectandhookDll.rar 2,36 Kb (Выложенный выше). Нужно изменить все вот это
На то чтобы, по нажатию проверялось CRC файла, если совпадает exe'шка запускается и внедряется dll . Также желательно примерчик, как шифровать трафик в dll, ну и вообще интересует как можно зашифровать трафик, чтобы потом его расшифровать сервером. |
Автор: KotJ 16.4.2010, 12:02 | ||
Код библиотеки :
библиотека внедряется в оперу, файл внедряемой библиотеки не удаляется, я так полагаю что это признак что нормально внедрилась. Но при лазании по Инету, никаких файлов не создается, хотя по идее должно? Что я делаю не так? не могу никак понять.. пробовал и HookCode и HookAPI.. |
Автор: KotJ 16.4.2010, 12:48 | ||
Исправил на это файл создался. Но.. некоторые ресурсы не загружаются. Некоторые загружаются. Почему? |
Автор: UFO007 16.7.2013, 22:31 | ||||||
Доброго всем времени суток! Попалась как-то (на хакер.ру что-ли) статейка как продвинуть собственный сайт, т. е.: при гуглении "футбол" первым из "примерно 30 500 результов" браузеру подсовывается "... наши футболисты ...." ну и соответсвенно ссылочка на www.ufo_007.com(например). С обработкой текста проблем нет, а вот с перехватом трафика... В статье воспевается advAPIHook но тут я чо-то слегонца недопонял - вернее не стал разбираться т. к. подвернулось следующее:
|