fix spacing, update reg fix, add flags to readme
This commit is contained in:
15
README.md
15
README.md
@@ -1,7 +1,7 @@
|
|||||||
# wufuc
|
# wufuc
|
||||||
[](https://admin.gear.mycelium.com/gateways/3554/orders/new) [][AppVeyor] [](https://t.me/joinchat/HEo6LUvV_83O92WzbYXLeQ) [][Latest]
|
[](https://admin.gear.mycelium.com/gateways/3554/orders/new) [][AppVeyor] [](https://t.me/joinchat/HEo6LUvV_83O92WzbYXLeQ) [][Latest]
|
||||||
|
|
||||||
This document is also available in [简体中文], [繁体中文], [русский], [Español] and [more...](https://github.com/zeffy/wufuc/wiki)
|
[:de:] [:es:] [:fr:] [:it:] [:hungary:] [:brazil:] [:ru:] [:cn:] [:taiwan:]
|
||||||
|
|
||||||
Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.
|
Disables the "Unsupported Hardware" message in Windows Update, and allows you to continue installing updates on Windows 7 and 8.1 systems with Intel Kaby Lake, AMD Ryzen, or other unsupported processors.
|
||||||
|
|
||||||
@@ -108,7 +108,12 @@ Advanced Installer's intuitive and friendly user interface allowed me to quickly
|
|||||||
|
|
||||||
[Latest]: https://github.com/zeffy/wufuc/releases/latest
|
[Latest]: https://github.com/zeffy/wufuc/releases/latest
|
||||||
[AppVeyor]: https://ci.appveyor.com/project/zeffy/wufuc
|
[AppVeyor]: https://ci.appveyor.com/project/zeffy/wufuc
|
||||||
[简体中文]: https://github.com/zeffy/wufuc/wiki/README-(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
|
[:de:]: https://github.com/zeffy/wufuc/wiki/README-(Deutsch)
|
||||||
[繁体中文]: https://github.com/zeffy/wufuc/wiki/README-(%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87)
|
[:es:]: https://github.com/zeffy/wufuc/wiki/README-(Espa%C3%B1ol)
|
||||||
[русский]: https://github.com/zeffy/wufuc/wiki/README-(%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
|
[:fr:]: https://github.com/zeffy/wufuc/wiki/README-(Fran%C3%A7ais)
|
||||||
[Español]: https://github.com/zeffy/wufuc/wiki/README-(Espa%C3%B1ol)
|
[:it:]: https://github.com/zeffy/wufuc/wiki/README-(Italiano)
|
||||||
|
[:hungary:]: https://github.com/zeffy/wufuc/wiki/README-(Magyar)
|
||||||
|
[:brazil:]: https://github.com/zeffy/wufuc/wiki/README-(Portugu%C3%AAs%20Brasileiro)
|
||||||
|
[:ru:]: https://github.com/zeffy/wufuc/wiki/README-(%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
|
||||||
|
[:cn:]: https://github.com/zeffy/wufuc/wiki/README-(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
|
||||||
|
[:taiwan:]: https://github.com/zeffy/wufuc/wiki/README-(%E7%B9%81%E9%AB%94%E4%B8%AD%E6%96%87)
|
||||||
|
@@ -254,7 +254,9 @@ bool wufuc_InjectLibrary(DWORD dwProcessId, ContextHandles *pContext)
|
|||||||
HANDLE hSrcProcess;
|
HANDLE hSrcProcess;
|
||||||
ContextHandles param = { 0 };
|
ContextHandles param = { 0 };
|
||||||
|
|
||||||
if ( swprintf_s(MutexName, _countof(MutexName), L"Global\\%08x-7132-44a8-be15-56698979d2f3", dwProcessId) == -1 ) {
|
if ( swprintf_s(MutexName, _countof(MutexName),
|
||||||
|
L"Global\\%08x-7132-44a8-be15-56698979d2f3", dwProcessId) == -1 ) {
|
||||||
|
|
||||||
trace(L"Failed to print mutex name to string! (%lu)", dwProcessId);
|
trace(L"Failed to print mutex name to string! (%lu)", dwProcessId);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@@ -15,7 +15,8 @@ bool InitializeMutex(bool InitialOwner, LPCWSTR pMutexName, HANDLE *phMutex)
|
|||||||
*phMutex = hMutex;
|
*phMutex = hMutex;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
trace(L"Failed to create mutex: %ls (GetLastError=%ld)", pMutexName, GetLastError());
|
trace(L"Failed to create mutex: %ls (GetLastError=%ld)",
|
||||||
|
pMutexName, GetLastError());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -109,7 +110,10 @@ LPBYTE RegQueryValueExAlloc(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVOID NtQueryKeyAlloc(HANDLE KeyHandle, KEY_INFORMATION_CLASS KeyInformationClass, PULONG pResultLength)
|
PVOID NtQueryKeyAlloc(
|
||||||
|
HANDLE KeyHandle,
|
||||||
|
KEY_INFORMATION_CLASS KeyInformationClass,
|
||||||
|
PULONG pResultLength)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
ULONG ResultLength;
|
ULONG ResultLength;
|
||||||
|
@@ -20,5 +20,8 @@ LPBYTE RegQueryValueExAlloc(
|
|||||||
LPCWSTR pValueName,
|
LPCWSTR pValueName,
|
||||||
LPDWORD pType,
|
LPDWORD pType,
|
||||||
LPDWORD pcbData);
|
LPDWORD pcbData);
|
||||||
PVOID NtQueryKeyAlloc(HANDLE KeyHandle, KEY_INFORMATION_CLASS KeyInformationClass, PULONG pResultLength);
|
PVOID NtQueryKeyAlloc(
|
||||||
|
HANDLE KeyHandle,
|
||||||
|
KEY_INFORMATION_CLASS KeyInformationClass,
|
||||||
|
PULONG pResultLength);
|
||||||
LPWSTR ExpandEnvironmentStringsAlloc(LPCWSTR src, LPDWORD pcchLength);
|
LPWSTR ExpandEnvironmentStringsAlloc(LPCWSTR src, LPDWORD pcchLength);
|
||||||
|
@@ -66,7 +66,10 @@ bool QueryServiceStatusProcessInfoByName(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QueryServiceGroupName(const LPQUERY_SERVICE_CONFIGW pServiceConfig, LPWSTR *pGroupName, HLOCAL *hMem)
|
bool QueryServiceGroupName(
|
||||||
|
const LPQUERY_SERVICE_CONFIGW pServiceConfig,
|
||||||
|
LPWSTR *pGroupName,
|
||||||
|
HLOCAL *hMem)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
int NumArgs;
|
int NumArgs;
|
||||||
|
@@ -12,7 +12,10 @@ bool QueryServiceStatusProcessInfoByName(
|
|||||||
SC_HANDLE hSCM,
|
SC_HANDLE hSCM,
|
||||||
const wchar_t *pServiceName,
|
const wchar_t *pServiceName,
|
||||||
LPSERVICE_STATUS_PROCESS pServiceStatus);
|
LPSERVICE_STATUS_PROCESS pServiceStatus);
|
||||||
bool QueryServiceGroupName(const LPQUERY_SERVICE_CONFIGW pServiceConfig, LPWSTR *pGroupName, HLOCAL *hMem);
|
bool QueryServiceGroupName(
|
||||||
|
const LPQUERY_SERVICE_CONFIGW pServiceConfig,
|
||||||
|
LPWSTR *pGroupName,
|
||||||
|
HLOCAL *hMem);
|
||||||
DWORD QueryServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService);
|
DWORD QueryServiceProcessId(SC_HANDLE hSCM, SC_HANDLE hService);
|
||||||
DWORD QueryServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName);
|
DWORD QueryServiceProcessIdByName(SC_HANDLE hSCM, const wchar_t *pServiceName);
|
||||||
DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupName);
|
DWORD HeuristicServiceGroupProcessId(SC_HANDLE hSCM, const wchar_t *pGroupName);
|
||||||
|
Binary file not shown.
Reference in New Issue
Block a user