Tweaks and fixes

1. Dynamically load RtlGenRandom() from advapi32.dll
2. Fix no return value warning in steam_overlay.h
3. Fix command-line too long issue in batch files by using
   setlocal/endlocal
This commit is contained in:
Soar Qin 2021-09-17 18:50:42 +08:00 committed by Soar Qin
parent 802d8bcc8f
commit 856c0e7d26
13 changed files with 47 additions and 35 deletions

View file

@ -19,9 +19,15 @@
#ifdef __WINDOWS__
BOOLEAN (APIENTRY *RtlGenRandom)(void *, ULONG) = NULL;
static void
randombytes(char * const buf, const size_t size)
{
if (RtlGenRandom == NULL)
{
RtlGenRandom = (BOOLEAN (APIENTRY *)(void *, ULONG))GetProcAddress(LoadLibraryW(L"advapi32.dll"), "SystemFunction036");
}
while (!RtlGenRandom((PVOID) buf, (ULONG) size)) {
PRINT_DEBUG("RtlGenRandom ERROR\n");
Sleep(100);

View file

@ -60,11 +60,11 @@
#include <shlobj.h>
#define MSG_NOSIGNAL 0
/*
#define SystemFunction036 NTAPI SystemFunction036
#include <ntsecapi.h>
#undef SystemFunction036
*/
#ifndef EMU_RELEASE_BUILD
#define PRINT_DEBUG(a, ...) do {FILE *t = fopen("STEAM_LOG.txt", "a"); fprintf(t, "%u " a, GetCurrentThreadId(), __VA_ARGS__); fclose(t); WSASetLastError(0);} while (0)
#endif

View file

@ -1,4 +0,0 @@
#include <windows.h>
#define RtlGenRandom SystemFunction036
#define DLLEXPORT __declspec(dllexport)
DLLEXPORT BOOLEAN WINAPI RtlGenRandom(PVOID in, ULONG len) {}

View file

@ -1,3 +0,0 @@
LIBRARY advapi32.dll
EXPORTS
SystemFunction036