Главная страница
    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.49 MB
Время: 0.039 c
15-1210752135
Петр
2008-05-14 12:02
2008.06.29
Проблема с установкой Касперского


2-1212148738
abhtr
2008-05-30 15:58
2008.06.29
Перекрасить строку в TMemo


2-1212122243
кот
2008-05-30 08:37
2008.06.29
Числовое значение символа.


2-1212269187
Randew
2008-06-01 01:26
2008.06.29
Помогите найти ошибку, пожалуйста...


15-1210775089
Vlad Oshin
2008-05-14 18:24
2008.06.29
Впервые в команде. Думал, прикалываетесь.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский