Merge pull request #2 from gsmith257-cyber/add-hook-for-HttpSendRequestA

fix: Add hook for HttpSendRequestA
This commit is contained in:
Rasta Mouse
2026-01-17 10:28:34 +00:00
committed by GitHub
4 changed files with 34 additions and 0 deletions
+1
View File
@@ -35,6 +35,7 @@ x64:
exportfunc "setup_memory" "__tag_setup_memory"
# hook functions in the DLL
addhook "WININET$HttpSendRequestA" "_HttpSendRequestA"
addhook "WININET$InternetOpenA" "_InternetOpenA"
addhook "WININET$InternetConnectA" "_InternetConnectA"
addhook "KERNEL32$CloseHandle" "_CloseHandle"
+16
View File
@@ -5,6 +5,7 @@
#include "memory.h"
#include "spoof.h"
DECLSPEC_IMPORT HINTERNET WINAPI WININET$HttpSendRequestA ( HINTERNET, LPCSTR, DWORD, LPVOID, DWORD );
DECLSPEC_IMPORT HINTERNET WINAPI WININET$InternetConnectA ( HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR );
DECLSPEC_IMPORT HINTERNET WINAPI WININET$InternetOpenA ( LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD );
DECLSPEC_IMPORT BOOL WINAPI KERNEL32$CloseHandle ( HANDLE );
@@ -33,6 +34,21 @@ DECLSPEC_IMPORT BOOL WINAPI KERNEL32$WriteProcessMemory ( HANDLE, LPVOID, L
DECLSPEC_IMPORT HRESULT WINAPI OLE32$CoCreateInstance ( REFCLSID, LPUNKNOWN, DWORD, REFIID, LPVOID * );
DECLSPEC_IMPORT ULONG NTAPI NTDLL$NtContinue ( CONTEXT *, BOOLEAN );
BOOL WINAPI _HttpSendRequestA ( HINTERNET hRequest, LPCSTR lpszHeaders, DWORD dwHeadersLength, LPVOID lpOptional, DWORD dwOptionalLength )
{
FUNCTION_CALL call = { 0 };
call.ptr = ( PVOID ) ( WININET$HttpSendRequestA );
call.argc = 5;
call.args [ 0 ] = spoof_arg ( hRequest );
call.args [ 1 ] = spoof_arg ( lpszHeaders );
call.args [ 2 ] = spoof_arg ( dwHeadersLength );
call.args [ 3 ] = spoof_arg ( lpOptional );
call.args [ 4 ] = spoof_arg ( dwOptionalLength );
return ( BOOL ) spoof_call ( &call );
}
HINTERNET WINAPI _InternetOpenA ( LPCSTR lpszAgent, DWORD dwAccessType, LPCSTR lpszProxy, LPCSTR lpszProxyBypass, DWORD dwFlags )
{
FUNCTION_CALL call = { 0 };
+1
View File
@@ -35,6 +35,7 @@ x64:
exportfunc "setup_memory" "__tag_setup_memory"
# hook functions in the DLL
addhook "WININET$HttpSendRequestA" "_HttpSendRequestA"
addhook "WININET$InternetOpenA" "_InternetOpenA"
addhook "WININET$InternetConnectA" "_InternetConnectA"
addhook "KERNEL32$CloseHandle" "_CloseHandle"
+16
View File
@@ -5,6 +5,7 @@
#include "memory.h"
#include "spoof.h"
DECLSPEC_IMPORT HINTERNET WINAPI WININET$HttpSendRequestA ( HINTERNET, LPCSTR, DWORD, LPVOID, DWORD );
DECLSPEC_IMPORT HINTERNET WINAPI WININET$InternetConnectA ( HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR );
DECLSPEC_IMPORT HINTERNET WINAPI WININET$InternetOpenA ( LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD );
@@ -39,6 +40,21 @@ DECLSPEC_IMPORT ULONG NTAPI NTDLL$NtContinue ( CONTEXT *, BOOLEAN );
// to PIC when hooks.x64.o is merged into the loader
// extern MEMORY_LAYOUT g_memory;
BOOL WINAPI _HttpSendRequestA ( HINTERNET hRequest, LPCSTR lpszHeaders, DWORD dwHeadersLength, LPVOID lpOptional, DWORD dwOptionalLength )
{
FUNCTION_CALL call = { 0 };
call.ptr = ( PVOID ) ( WININET$HttpSendRequestA );
call.argc = 5;
call.args [ 0 ] = spoof_arg ( hRequest );
call.args [ 1 ] = spoof_arg ( lpszHeaders );
call.args [ 2 ] = spoof_arg ( dwHeadersLength );
call.args [ 3 ] = spoof_arg ( lpOptional );
call.args [ 4 ] = spoof_arg ( dwOptionalLength );
return ( BOOL ) spoof_call ( &call );
}
HINTERNET WINAPI _InternetOpenA ( LPCSTR lpszAgent, DWORD dwAccessType, LPCSTR lpszProxy, LPCSTR lpszProxyBypass, DWORD dwFlags )
{
FUNCTION_CALL call = { 0 };