royal grandong Ответов: 1

Не удается очистить переменные winhttp из памяти


привет брат,

Как очистить переменную от WinHttp api?

Я использую codecave для вызова службы WinHTTP API, но я хочу, чтобы скрыть URL-адрес. Я вызвал RtlZeroMemory, но url-адрес все еще виден...

Можно ли очистить переменные с помощью kernel32. RtlZeroMemory? Можно ли вызвать kernel32.RtlZeroMemory из пользовательского режима?

Я понятия не имею, как очистить память от codecave.

заранее спасибо,

Что я уже пробовал:

if (hConnect)
        hRequest = WinHttpOpenRequest( hConnect, L"PUT", 
                                       L"/writetst.txt", 
                                       NULL, WINHTTP_NO_REFERER, 
                                       WINHTTP_DEFAULT_ACCEPT_TYPES,
                                       0);

1 Ответов

Рейтинг:
1

KarstenK

Вы должны только искать, читать и понимать в Документация HttpOpenRequest что говорит:

"После того как вызывающее приложение завершит работу с дескриптором HINTERNET, возвращенным WinHttpOpenRequest, оно должно быть закрыто с помощью функции WinHttpCloseHandle."

WinHttpCloseHandle(hRequest);
hRequest = 0;//to make it clear


Я оставляю это вам, чтобы найти закрытие ручки соединения самостоятельно. ;-)


royal grandong

В моем случае я просто вызываю WinHttpOpenRequest один раз, но после того, как я дамп памяти есть много адресов памяти, которые хранят мой url как ansi dan Unicode string version.

Я позвонил в WinHttpCloseHandle.

спасибо @

вот мой код powerbasic выступает :

Вызовите DWORD @p.fnWinHttpOpen с помощью WinHttpOpen( _
@p.fnUserAgent, _
%WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, _
BYVAL %WINHTTP_NO_PROXY_NAME, _
BYVAL %WINHTTP_NO_PROXY_BYPASS, _
0) к hSession

Если hSession, то вызовите DWORD @p.fnWinHttpConnect с помощью WinHttpConnect( _
hSession, _
wzServer, _ '--> Вот моя расшифрованная строка сервера
%INTERNET_DEFAULT_HTTP_PORT, _
0) к hConnect

Вызовите DWORD @p. fnRtlZeroMemory с помощью RtlZeroMemoryDummy(VARPTR(wzServer),%MAX_PATH)

Если hConnect, то вызовите DWORD @p.fnWinHttpOpenRequest с помощью WinHttpOpenRequest( _
hConnect, _
@p.fnReqMethod, _
wzUrl, _ '--> Вот моя расшифрованная строка url-адреса
BYVAL %NULL, _
BYVAL %WINHTTP_NO_REFERER, _
BYVAL %WINHTTP_DEFAULT_ACCEPT_TYPES, _
0) к hRequest

Вызовите DWORD @p. fnRtlZeroMemory с помощью RtlZeroMemoryDummy(VARPTR(wzUrl),%MAX_PATH)

Если hRequest потом звонят типа DWORD @С. fnWinHttpSendRequest используя winhttpsendrequest завершается( _
hRequest, _
BYVAL %WINHTTP_NO_ADDITIONAL_HEADERS, _
0, _
%WINHTTP_NO_REQUEST_DATA, _
0, _
0, _
0) в бресультс

Если bResults, то вызовите DWORD @p.fnWinHttpCloseHandle с помощью WinHttpCloseHandle(bResults)
Если hRequest, то вызовите DWORD @p.fnWinHttpCloseHandle с помощью WinHttpCloseHandle(hRequest)
Если hConnect, то вызовите DWORD @p. fnWinHttpCloseHandle с помощью WinHttpCloseHandle(hConnect)
Если hSession, то вызовите DWORD @p.fnWinHttpCloseHandle с помощью WinHttpCloseHandle(hSession)

Вызовите DWORD @p. fnRtlZeroMemory с помощью RtlZeroMemoryDummy(VARPTR(wzServer),%MAX_PATH)
Вызовите DWORD @p. fnRtlZeroMemory с помощью RtlZeroMemoryDummy(VARPTR(wzUrl),%MAX_PATH)