Перехват WinHttpReadData для перехвата данных ⇐ 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()
Я написал простой скрипт, который отправляет запрос и ожидает ответа с помощью 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()
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблемы с подключением проверки формы перехвата React с zod и Emailjs
Гость » » в форуме Javascript - 0 Ответы
- 77 Просмотры
-
Последнее сообщение Гость
-
-
-
Как защитить мое приложение Flutter от перехвата такими инструментами, как http-toolkit?
Anonymous » » в форуме Android - 0 Ответы
- 47 Просмотры
-
Последнее сообщение Anonymous
-