findsysmon.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include <windows.h>
  2. #pragma comment(lib, "tdh.lib")
  3. #pragma comment(lib, "Ole32.lib")
  4. #pragma comment(lib, "Advapi32.lib")
  5. #pragma comment(lib, "OleAut32.lib")
  6. #pragma comment(lib, "FltLib.lib" )
  7. #define HRESULT_FROM_WIN32(x) (x ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)) : 0)
  8. #define MAX_GUID_SIZE 39
  9. #define MAX_DATA_LENGTH 65000
  10. #define true 1
  11. //PrintSysmonPID
  12. DECLSPEC_IMPORT HRESULT WINAPI OLE32$CoInitializeEx(LPVOID pvReserved, DWORD dwCoInit);
  13. DECLSPEC_IMPORT void WINAPI OLE32$CoUninitialize(void);
  14. DECLSPEC_IMPORT HRESULT WINAPI OLE32$CoCreateInstance (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv);
  15. DECLSPEC_IMPORT void WINAPI OLEAUT32$VariantInit(VARIANTARG *pvarg);
  16. DECLSPEC_IMPORT void WINAPI OLEAUT32$VariantClear(VARIANTARG *pvarg);
  17. //FindSysmon
  18. DECLSPEC_IMPORT LONG WINAPI ADVAPI32$RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
  19. DECLSPEC_IMPORT LSTATUS WINAPI ADVAPI32$RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData);
  20. DECLSPEC_IMPORT LONG WINAPI ADVAPI32$RegCloseKey(HKEY hKey);
  21. DECLSPEC_IMPORT HANDLE WINAPI KERNEL32$GetProcessHeap();
  22. DECLSPEC_IMPORT LPVOID WINAPI KERNEL32$HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);
  23. DECLSPEC_IMPORT BOOL WINAPI KERNEL32$HeapFree(HANDLE, DWORD, PVOID);
  24. DECLSPEC_IMPORT int __cdecl OLE32$StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cchMax);
  25. WINBASEAPI TDHSTATUS WINAPI TDH$TdhEnumerateProviders(PPROVIDER_ENUMERATION_INFO pBuffer, ULONG *pBufferSize);
  26. WINBASEAPI void* __cdecl MSVCRT$realloc(void *ptr, size_t size);
  27. WINBASEAPI size_t __cdecl MSVCRT$strlen(const char *str);
  28. WINBASEAPI int __cdecl MSVCRT$_wcsicmp(const wchar_t *str1, const wchar_t *str2);
  29. //PrintMiniFilterData
  30. WINBASEAPI void * __cdecl MSVCRT$malloc(size_t size);
  31. WINBASEAPI void * __cdecl MSVCRT$memcpy(void *dest, const void *src, size_t count);
  32. WINBASEAPI void __cdecl MSVCRT$memset(void *dest, int c, size_t count);
  33. WINBASEAPI int __cdecl MSVCRT$wprintf(const wchar_t *format, ...);
  34. WINBASEAPI void __cdecl MSVCRT$free(void *ptr);
  35. //FindMiniFilters
  36. WINBASEAPI HANDLE WINAPI Fltlib$FilterFindFirst(LPCWSTR VolumeName, WIN32_FIND_DATAW *FindFileData, LPCWSTR FileSpec);
  37. WINBASEAPI BOOL WINAPI Fltlib$FilterFindNext(HANDLE FindHandle, WIN32_FIND_DATAW *FindFileData);
  38. //main
  39. WINBASEAPI int __cdecl MSVCRT$printf(const char * _Format,...);
  40. WINBASEAPI int __cdecl MSVCRT$strcmp(const char *str1, const char *str2);
  41. WINBASEAPI int __cdecl MSVCRT$getchar(void);
  42. //BeaconPrintToStreamW + BeaconOutputStreamW
  43. #define MAX_STRING 8192
  44. INT g_iGarbage = 1;
  45. LPSTREAM g_lpStream = (LPSTREAM)1;
  46. LPWSTR g_lpwPrintBuffer = (LPWSTR)1;
  47. DECLSPEC_IMPORT HRESULT WINAPI OLE32$CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM *ppstm);
  48. WINBASEAPI void *__cdecl MSVCRT$calloc(size_t number, size_t size);
  49. WINBASEAPI int __cdecl MSVCRT$_vsnwprintf_s(wchar_t *buffer, size_t sizeOfBuffer, size_t count, const wchar_t *format, va_list argptr);
  50. WINBASEAPI size_t __cdecl MSVCRT$wcslen(const wchar_t *_Str);
  51. DECLSPEC_IMPORT int WINAPI KERNEL32$MultiByteToWideChar(UINT CodePage, DWORD dwFlags, _In_NLS_string_(cbMultiByte)LPCCH lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar);