Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2013, 19:11   #1
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию ЕncryрtMеssage, проблема

Перехватываю функцию ЕncryрtMеssage из secur32.dll

Много раз перечитывал MSDM
В итоге написал следующий код:
Код:
type
  PSecBuffer=^TSecBuffer;
  TSecBuffer = record
    cBuffers :ULONG;
    BufferType:ULONG;
    pvBuffer:pointer;
  end;
  PSecBufferDesc=^TSecBufferDesc;
  TSecBufferDesc = record
    ulVersion:ULONG;
    cBuffers :ULONG;
    pBuffers:PSecBuffer;
  end;

function my_EncryptMessage(phContext:integer;fQOP:ULONG;pMessage:PSecBufferDesc;MessageSeqNo:ULONG):Integer; stdcall;
begin
OutputDebugStringA(PChar('EncryptMessage'+IntToStr(pMessage.cBuffers)+','+IntToStr(pMessage.pBuffers.cBuffers)
+','+IntToStr(pMessage.pBuffers.BufferType)+' :'+PChar(pMessage.pBuffers.pvBuffer)));
  Result:=old_EncryptMessage(phContext,fQOP,pMessage,MessageSeqNo);
end;
Как результат переменная pMessage.cBuffers содержит информацию, что имеется 3 или 4 блока данных.
Я всегда получаю только хедер заголовка, без POST запроса, в чём проблема?
Я думаю дело в том что информация хранится в остальных блоках, но как их найти, где они?

Как получить всю инфу, которая передаётся в эту функцию?

Последний раз редактировалось Stilet; 13.09.2013 в 08:11.
lollollollol вне форума Ответить с цитированием
Старый 12.09.2013, 21:58   #2
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Тема закрыта, неправильно объявлял структуру
Код:
  PSecBuffer=^TSecBuffer;
  TSecBuffer = record
    cBuffers :ULONG;
    BufferType:ULONG;
    pvBuffer:Pointer;
  end;
  ArrSecBuffer = array[0..3] of TSecBuffer;
  PArrSecBuffer = ^ArrSecBuffer;
  PSecBufferDesc=^TSecBufferDesc;
  TSecBufferDesc = record
    ulVersion:ULONG;
    cBuffers :ULONG;
    pBuffers:PArrSecBuffer;
  end;
lollollollol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37