Перехват WinHttpReadData для перехвата данныхC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Перехват WinHttpReadData для перехвата данных

Сообщение Гость »


Я написал простой скрипт, который отправляет запрос и ожидает ответа с помощью WinHttp. Сейчас я пытаюсь научиться перехватывать, и в целях тестирования я хочу перехватить свой собственный скрипт, используя обход C++.

Я попытался перехватить сценарий, прочитав данные и изменив их в исходном перехватчике. Однако вместо изменения исходных данных ответа он создает копию данных и изменяет ее. В результате я получаю два ответа: исходный, на который программа реагирует, и скопированный измененный, который я хочу использовать, но который в конечном итоге не используется.

Мне нужны инструкции о том, как правильно подключить его, чтобы изменить исходный код строк ответа с 2000 на 3000. Буду очень признателен за любые предложения и решения.
typedef BOOL(WINAPI* PWinHttpReadData)(HINTERNET hRequest, LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, LPDWORD lpdwNumberOfBytesRead); PWinHttpReadData OriginalWinHttpReadData = NULL; BOOL WINAPI MyWinHttpReadData(HINTERNET hRequest, LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, LPDWORD lpdwNumberOfBytesRead) { // Вызов исходной функции WinHttpReadData Результат BOOL = OriginalWinHttpReadData(hRequest, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead); if (результат && lpBuffer && dwNumberOfBytesToRead > 0) { //Замена строки в данных ответа std::string responseData(static_cast(lpBuffer), dwNumberOfBytesToRead); //Данные ответа тогда будут выглядеть так: {"test", "code": 2000} std::string searchString = "2000"; std::string replaceString = "3000"; size_t pos = responseData.find(searchString); while (pos != std::string::npos) { responseData.replace(pos, searchString.length(), replaceString); pos = responseData.find(searchString, pos + replaceString.length()); } // Копируем измененные данные обратно в lpBuffer if (responseData.length()
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить токен из хранилища данных, а затем запустить функцию перехвата Interceptor Android Kotlin
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с подключением проверки формы перехвата React с zod и Emailjs
    Гость » » в форуме Javascript
    0 Ответы
    77 Просмотры
    Последнее сообщение Гость
  • Трассировка стека после перехвата исключения
    Anonymous » » в форуме C++
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Как защитить мое приложение Flutter от перехвата такими инструментами, как http-toolkit?
    Anonymous » » в форуме Android
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Неперехваченное исключение из блока перехвата mysqli_sql_Exception
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»