Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехват SMPP пакетов 
:(
    Опции темы
V1tal1us
  Дата 26.3.2007, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.3.2007

Репутация: нет
Всего: нет



Здравствуйте уважаемые.

Задача такова: 
На серверное приложение поступает SMPP пакет (Short message peer-to-peer protocol (SMPP) — протокол, описывающий взаимодействие конечного клиента с SMS-сервером. Используется для передачи SMS и USSD сообщений, как правило в системах VAS.), этот пакет Я должен словит -> изменить -> отправить обратно клиенту пославшему запрос. В качества инструмента Я выбрал «C++Builder 6» , перехватывать пакеты буду с помощью сокетов.

Вступление: 
Как это всё сделать??? ))) Работать с сокетами умею, но одно дело файл переслать или чат простенький сделать, а тут задачка посложнее и поинтереснее. При передаче PDU пакета    («PDU (protocol data units, пакетов данных протокола) передаваемой на уровне 4 OSI (TCP/IP сессии или X.25 SVC3). PDU имеют бинарное представление для повышения эффективности передачи. Обмен пакетами может происходить как синхронно (после отправки запроса дальнейший обмен пакетами приостанавливается до получения ответа), так и асинхронно (запросы отправляются без задержек, обработка ответов происходит по мере их поступления).»)    сервер принимает через String strClientRequest = Socket->ReceiveText(); непонятно что, по спецификации скорее всего это бинарник.
Через TMemoryStream,сохраняю полученный пакет в файл ( в идеале, нужно обойтись без файла, но пока что Я не знаю как),и естественно когда открыть этот файл с помощю блокнота ,то ничего мы там не увидим, кроме как абракадабры)) Но а вот если через хекс редактор, то нарисуется совсем другая картина :
Hex.jpg
Кусок кода,который Я успользую :

Код

void __fastcall TfrmXX::ServerSocketGetClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
    String strClientRequest = Socket->ReceiveText();

    log("Получен запрос!");

    TMemoryStream* MS = new TMemoryStream ();

    MS->Position = 0;
    MS->Write( strClientRequest.c_str() , strClientRequest.Length() );
    MS->SaveToFile( "File.txt" );
    delete MS;

}

Собственно вопрос:
    Как выдрать из данного файла нужную мне информацию(первые 4 октета ), и изменить её, или как обойтись без него и напрямую работать с полученным пакетом? Если кто уже работал с SMPP,то пожалуйста поделитесь своим опытом и знаниями,вам потом воздастся)) 


Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Hex.JPG 10,65 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0383 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.