Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.091 c
2-1212143583
Сергей
2008-05-30 14:33
2008.06.29
Как описать процедуру чтобы использовать ее в нескольких модулях?


15-1210861488
@!!ex
2008-05-15 18:24
2008.06.29
Помогите справится с MSVC++ проектом


2-1212256392
Wildyt
2008-05-31 21:53
2008.06.29
Дан файл, состоящий из чисел


15-1210745245
pasha_golub
2008-05-14 10:07
2008.06.29
Нарезалка DVD CD


2-1212491944
ZENsan
2008-06-03 15:19
2008.06.29
Interface...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский