[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/DeviceObject/InjectDrv/master/ShellCode.h [Back]  [Original]

#ifndef __SHELL_CODE_H__
#define __SHELL_CODE_H__

/*
#ifndef _WIN64

typedef HANDLE (__stdcall *CREATEFILE)(LPCTSTR lpFileName, \
									   DWORD dwDesiredAccess, \
									   DWORD dwShareMode, \
									   LPSECURITY_ATTRIBUTES lpSecurityAttributes, \
									   DWORD dwCreationDisposition, \
									   DWORD dwFlagsAndAttributes, \
									   HANDLE hTemplateFile);
typedef BOOL (__stdcall *WRITEFILE)(HANDLE hFile, \
									 LPCVOID lpBuffer, \
									 DWORD nNumberOfBytesToWrite, \
									 LPDWORD lpNumberOfBytesWritten, \
									 LPOVERLAPPED lpOverlapped);
typedef HRESULT (__stdcall *CLOSEHANDLE)(HANDLE hHandle);
typedef BOOL (__stdcall *SHELLEXECUTEEX)(SHELLEXECUTEINFO *pExecInfo);
typedef UINT (__stdcall *WINEXEC)(LPCSTR lpCmdLine,UINT uCmdShow);
typedef HRESULT (__stdcall *URLDOWNLOADTOFILE)(LPUNKNOWN pCaller, \
												LPCTSTR szURL, \
												LPCTSTR szFileName, \
												DWORD dwReserved, \
												LPBINDSTATUSCALLBACK lpfnCB);
typedef DWORD (__stdcall *GETTEMPPATH)(DWORD nBufferLength,LPTSTR lpBuffer);

#else

typedef HANDLE (__fastcall *CREATEFILE)(LPCTSTR lpFileName, \
									   DWORD dwDesiredAccess, \
									   DWORD dwShareMode, \
									   LPSECURITY_ATTRIBUTES lpSecurityAttributes, \
									   DWORD dwCreationDisposition, \
									   DWORD dwFlagsAndAttributes, \
									   HANDLE hTemplateFile);
typedef BOOL (__fastcall *WRITEFILE)(HANDLE hFile, \
									 LPCVOID lpBuffer, \
									 DWORD nNumberOfBytesToWrite, \
									 LPDWORD lpNumberOfBytesWritten, \
									 LPOVERLAPPED lpOverlapped);
typedef HRESULT (__fastcall *CLOSEHANDLE)(HANDLE hHandle);
typedef BOOL (__fastcall *SHELLEXECUTEEX)(SHELLEXECUTEINFO *pExecInfo);
typedef UINT (__fastcall *WINEXEC)(LPCSTR lpCmdLine,UINT uCmdShow);
typedef HRESULT (__fastcall *URLDOWNLOADTOFILE)(LPUNKNOWN pCaller, \
										  LPCTSTR szURL, \
										  LPCTSTR szFileName, \
										  DWORD dwReserved, \
										  LPBINDSTATUSCALLBACK lpfnCB);
typedef DWORD (__fastcall *GETTEMPPATH)(DWORD nBufferLength,LPTSTR lpBuffer);


#endif


typedef struct _SHELL_CODE_IMPORT_KERNEL32
{
	WCHAR wKernel32[] = {'k','e','r','n','e','l','3','2','.','d','l','l',L'\0'};
	CREATEFILE ShellCodeCreateFile;
	WRITEFILE ShellCodeWriteFile;
	CLOSEHANDLE ShellCodeCloseHandle;
	WINEXEC ShellCodeWinExec;
	GETTEMPPATH ShellCodeGetTempPath;

}SHELL_CODE_IMPORT_KERNEL32,*PSHELL_CODE_IMPORT_KERNEL32;

typedef struct _SHELL_CODE_IMPORT_URLMON
{
	WCHAR wUrlMon[] = {'u','r','l','m','o','n','.','d','l','l',L'\0'};
	URLDOWNLOADTOFILE ShellCodeUrlDownloadToFile;
}SHELL_CODE_IMPORT_URLMON,*PSHELL_CODE_IMPORT_URLMON;

typedef struct _SHELL_CODE_PARAM
{
	ULONG ulShellCodeLength;
	PVOID pShellCodeStartAddress;
	SHELL_CODE_IMPORT_KERNEL32 ShellCodeImportKernel32;
	SHELL_CODE_IMPORT_URLMON ShellCodeImportUrlMon;
	WCHAR wUrl[MAX_PATH];
}SHELL_CODE_PARAM,*PSHELL_CODE_PARAM;
*/
#endif

Web Proxy Viewer  |  New URL  |  Original Page