Merge pull request #1669 from bluepilledgreat/bugfix/block-admin

Disable the ability to install in admin mode
This commit is contained in:
pizzaboxer 2024-04-23 16:19:19 +01:00 committed by GitHub
commit f0cd3fbebc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 30 additions and 0 deletions

View File

@ -138,6 +138,14 @@ namespace Bloxstrap
Paths.Initialize(BaseDirectory);
// disallow running as administrator except for uninstallation
if (Utilities.IsAdministrator && !LaunchSettings.IsUninstall)
{
Frontend.ShowMessageBox(Bloxstrap.Resources.Strings.Bootstrapper_RanInAdminMode, MessageBoxImage.Error);
Terminate(ErrorCode.ERROR_INVALID_FUNCTION);
return;
}
// we shouldn't save settings on the first run until the first installation is finished,
// just in case the user decides to cancel the install
if (!IsFirstRun)

View File

@ -8,6 +8,7 @@
public enum ErrorCode
{
ERROR_SUCCESS = 0,
ERROR_INVALID_FUNCTION = 1,
ERROR_INSTALL_USEREXIT = 1602,
ERROR_INSTALL_FAILURE = 1603,
ERROR_CANCELLED = 1223,

View File

@ -153,6 +153,15 @@ namespace Bloxstrap.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Bloxstrap does not support running in administrator mode. Relaunch or reinstall Bloxstrap with lower privileges..
/// </summary>
public static string Bootstrapper_RanInAdminMode {
get {
return ResourceManager.GetString("Bootstrapper.RanInAdminMode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Applying Roblox modifications....
/// </summary>

View File

@ -150,6 +150,9 @@ Your ReShade configuration files will still be saved, and you can locate them by
<data name="Bootstrapper.NotEnoughSpace" xml:space="preserve">
<value>Bloxstrap does not have enough disk space to download and install Roblox. Please free up some disk space and try again.</value>
</data>
<data name="Bootstrapper.RanInAdminMode" xml:space="preserve">
<value>Bloxstrap does not support running in administrator mode. Relaunch or reinstall Bloxstrap with lower privileges.</value>
</data>
<data name="Bootstrapper.Status.ApplyingModifications" xml:space="preserve">
<value>Applying Roblox modifications...</value>
</data>

View File

@ -1,9 +1,18 @@
using System.ComponentModel;
using System.Security.Principal;
namespace Bloxstrap
{
static class Utilities
{
/// <summary>
/// Is process running as administrator
/// https://stackoverflow.com/a/11660205
/// </summary>
public static bool IsAdministrator =>
new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator);
public static void ShellExecute(string website)
{
try