Форум: "Сети";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизПринудительный вызов Recv в чужом приложении Найти похожие ветки
← →
ient (2007-09-12 10:00) [0]Произвожу перехват recv из ws2_32 столкнулся с проблеммой когда нужно передать подопытному приложению порцию данных, решил простым добавлением в buff нужных данных.
все бы прекрасно.
но проблемма в том что моя порция данных "дойдет" до приложения если только если ему "легально" отправляются данные от серверной части.
мне же желательно заставить приложение вызывать recv по моему желанию.
приложение использует сокет в неблокирующем режиме.
роясь по ScktComp столкнулся с сообщением
CM_SOCKETMESSAGE и довольно интересной структурой TCMSocketMessage.
наивный вопрос следующего характера, возможно ли с помошью sendmessage() заставить приложение вызвать recv если да то каким образом передать структуру TCMSocketMessage в обработчик данного сообщения.
← →
Сергей М. © (2007-09-12 10:05) [1]
> приложение использует сокет в неблокирующем режиме
С чего ты так уверен, что приложение использует именно TClientSocket &
← →
ient (2007-09-12 10:10) [2]Неблокирующие сокеты есть только в TClientSocket 0.о ?
← →
ient (2007-09-12 10:11) [3](поправка.)
Есть => Реализованы/используются
← →
Сергей М. © (2007-09-12 10:21) [4]
> Неблокирующие сокеты есть только в TClientSocket
Неблокирующие сокеты могут использоваться в любом компоненте, ориентированном на разработку под Windows-платформу.
И вообще, на основании чего ты уверен, что приложение это разработано в среде Делфи/ВСВ ?
← →
ient (2007-09-12 10:30) [5]фраза про блокирующие сокеты сказана для того чтобы дать понять что recv не блокирует управление. а просто возвращает 0 при отсутствии данных, ну в данном случае приложение не вызывает recv при отсутсвии данных. что очень напоминает алгоритм реализованный в ScktComp, вот и соответственно интересует как должно выглядеть решение для приложения которое "использует именно TClientSocket &" (TCustomWinSocket. если быть точнее.)
+ почему вас так интересует вопрос про среду разработки ?
← →
Сергей М. © (2007-09-12 10:57) [6]
> почему вас так интересует вопрос про среду разработки
Потому что твоя идея с CM_SOCKETMESSAGE заранее обречена на провал, если приложение не использует TClientSocket или разработано не в Делфи/ВСВ
← →
ient (2007-09-12 11:20) [7]приложение разработано написано в д5. 4 года назад. сурсы утеряны.
← →
Сергей М. © (2007-09-12 11:22) [8]
> ient (12.09.07 11:20) [7]
Тогда открой исп.файл приложения в любом подходящем ресурс-эксплорере и убедись, что там фигурирует именно TClientSocket и только TClientSocket и ничто иное.
← →
ient (2007-09-12 12:42) [9]>Сергей М. © (12.09.07 11:22) [8]
учитывая что CM_SOCKETMESSAGE обрабатывается в TCustomWinSocket....
>ient (12.09.07 10:30) [5]
"соответственно интересует как должно выглядеть решение для приложения которое "использует именно TClientSocket &" (TCustomWinSocket. если быть точнее.)"
интересует сейчас именно это.
← →
Slym © (2007-09-12 12:44) [10]не проще портмап сделать и уже в нем подменять данные
← →
Сергей М. © (2007-09-12 13:08) [11]
> учитывая что CM_SOCKETMESSAGE обрабатывается в TCustomWinSocket.
Ну да, обрабатывается. И что ? Ты уверен, что приложение-жертва использует этот класс ?
← →
Сергей М. © (2007-09-12 13:12) [12]
> Slym © (12.09.07 12:44) [10]
Он хочет обмануть клиентскую логику приложения-жертвы, заставив его читать фиктивные данные из сокета в нужный момент времени.
← →
Slym © (2007-09-12 13:38) [13]Сергей М. © (12.09.07 13:12) [12]
приложение-жертвы натравливаешь на фиктивный сокет мапера и в мапере без всяких перехватов делаешь грязное дело
← →
Slym © (2007-09-12 13:38) [14]забыл добавить: делаешь грязное дело в нужный момент
← →
Сергей М. © (2007-09-12 14:12) [15]
> Slym © (12.09.07 13:38) [13]
Это если оно позволит себя "натравить")
А иначе все равно перехват ф-ций нужно делать. И получается двойной геморрой - писать модуль внедряемого для перехвата кода да еще модуль кода маппера.
← →
Slym © (2007-09-13 04:23) [16]Сергей М. © (12.09.07 14:12) [15]
Зато универсально - нет необходимости определять что там за сокет - блок, неблок с окошком, неблок с Event, неблок на Overlapped, как файл (ReadF/WriteF в конечном итоге всеравно Recv/Send ), CompletionPort
вариантов множество и зацикливаться на CM_SOCKETMESSAGE себе дороже
← →
Сергей М. © (2007-09-13 08:20) [17]
> зацикливаться на CM_SOCKETMESSAGE себе дороже
Эт точно)
Тупиковый путь.
Можно поступить еще так - перехватить коннект и перенаправить соединение на свой маппер прямо в коде жертвы.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c