code from snapshot release, add new splashes

This commit is contained in:
Bitl 2023-11-07 15:56:53 -07:00
parent 2601a560bb
commit 776e131e8d
23 changed files with 510 additions and 321 deletions

View File

@ -1,5 +1,7 @@
#region Usings #region Usings
#if !BASICLAUNCHER
using NLog; using NLog;
#endif
using Novetus.Core; using Novetus.Core;
using System; using System;
using System.Diagnostics; using System.Diagnostics;

View File

@ -43,166 +43,16 @@
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.1.0\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Composition" /> <Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression.FileSystem" /> <Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Management" /> <Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics" /> <Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ServiceModel" /> <Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.7.0.0\lib\net462\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=7.0.0.3, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.7.0.3\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" /> <Reference Include="System.Transactions" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
@ -211,11 +61,6 @@
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="LocalPaths.cs" /> <Compile Include="LocalPaths.cs" />
@ -243,7 +88,6 @@
</Compile> </Compile>
<None Include="app.config" /> <None Include="app.config" />
<None Include="app.manifest" /> <None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>

View File

@ -1,5 +1,7 @@
#region Usings #region Usings
#if !BASICLAUNCHER
using NLog; using NLog;
#endif
using Novetus.Core; using Novetus.Core;
using System; using System;
using System.IO; using System.IO;
@ -24,11 +26,6 @@ namespace Novetus.Bootstrapper
Directory.CreateDirectory(GlobalPaths.LogDir); Directory.CreateDirectory(GlobalPaths.LogDir);
} }
var config = new NLog.Config.LoggingConfiguration();
var logfile = new NLog.Targets.FileTarget("logfile") { FileName = GlobalPaths.LogDir + "\\Bootstrapper-log-" + DateTime.Today.ToString("MM-dd-yyyy") + ".log" };
config.AddRuleForAllLevels(logfile);
LogManager.Configuration = config;
Application.Run(new NovetusLaunchForm()); Application.Run(new NovetusLaunchForm());
} }
} }

View File

@ -1,4 +1,6 @@
using NLog; #if !BASICLAUNCHER
using NLog;
#endif
using Novetus.Core; using Novetus.Core;
using System; using System;
using System.Drawing; using System.Drawing;

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Bcl.AsyncInterfaces" version="7.0.0" targetFramework="net48" />
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net48" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net48" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net48" />
<package id="NLog" version="5.1.0" targetFramework="net48" />
<package id="System.AppContext" version="4.3.0" targetFramework="net48" />
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Collections" version="4.3.0" targetFramework="net48" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net48" />
<package id="System.Console" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net48" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net48" />
<package id="System.Globalization" version="4.3.0" targetFramework="net48" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net48" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net48" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Linq" version="4.3.0" targetFramework="net48" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net48" />
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net48" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net48" />
<package id="System.Text.Encodings.Web" version="7.0.0" targetFramework="net48" />
<package id="System.Text.Json" version="7.0.3" targetFramework="net48" />
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net48" />
<package id="System.Threading" version="4.3.0" targetFramework="net48" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net48" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net48" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net48" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net48" />
</packages>

View File

@ -5,76 +5,21 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
#endregion #endregion
//https://github.com/davcs86/csharp-uhwid //https://github.com/davcs86/csharp-uhwid
//merged into one class //using only cpu id.
namespace Novetus.Core namespace Novetus.Core
{ {
#region UHWIDEngine #region UHWIDEngine
public static class UHWIDEngine public static class UHWIDEngine
{ {
public static string SimpleUid { get; private set; }
public static string AdvancedUid { get; private set; }
static UHWIDEngine()
{
var volumeSerial = DiskId.GetDiskId();
var cpuId = CpuId.GetCpuId();
var windowsId = WindowsId.GetWindowsId();
SimpleUid = volumeSerial + cpuId;
AdvancedUid = SimpleUid + windowsId;
}
}
#endregion
#region DiskId
internal class DiskId
{
public static string GetDiskId()
{
return GetDiskId("");
}
private static string GetDiskId(string diskLetter)
{
//Find first drive
if (string.IsNullOrEmpty(diskLetter))
{
foreach (var compDrive in DriveInfo.GetDrives())
{
if (compDrive.IsReady)
{
diskLetter = compDrive.RootDirectory.ToString();
break;
}
}
}
if (!string.IsNullOrEmpty(diskLetter) && diskLetter.EndsWith(":\\"))
{
//C:\ -> C
diskLetter = diskLetter.Substring(0, diskLetter.Length - 2);
}
var disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + diskLetter + @":""");
disk.Get();
var volumeSerial = disk["VolumeSerialNumber"].ToString();
disk.Dispose();
return volumeSerial;
}
}
#endregion
#region CpuId
internal static class CpuId
{
[DllImport("user32", EntryPoint = "CallWindowProcW", CharSet = CharSet.Unicode, SetLastError = true, [DllImport("user32", EntryPoint = "CallWindowProcW", CharSet = CharSet.Unicode, SetLastError = true,
ExactSpelling = true)] ExactSpelling = true)]
private static extern IntPtr CallWindowProcW([In] byte[] bytes, IntPtr hWnd, int msg, [In, Out] byte[] wParam, private static extern IntPtr CallWindowProcW([In] byte[] bytes, IntPtr hWnd, int msg, [In, Out] byte[] wParam,
IntPtr lParam); IntPtr lParam);
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)] [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
@ -82,6 +27,16 @@ namespace Novetus.Core
const int PAGE_EXECUTE_READWRITE = 0x40; const int PAGE_EXECUTE_READWRITE = 0x40;
public static string AdvancedUid { get; private set; }
static UHWIDEngine()
{
var cpuId = GetCpuId();
Regex rx = new Regex(@"[A-Za-z.]");
var ver = rx.Replace(GlobalVars.ProgramInformation.Version, "");
AdvancedUid = SecurityFuncs.Encode(cpuId + ver);
}
public static string GetCpuId() public static string GetCpuId()
{ {
var sn = new byte[8]; var sn = new byte[8];
@ -145,36 +100,4 @@ namespace Novetus.Core
} }
} }
#endregion #endregion
#region WindowsId
internal class WindowsId
{
public static string GetWindowsId()
{
var windowsInfo = "";
var managClass = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_OperatingSystem");
var managCollec = managClass.Get();
var is64Bits = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"));
foreach (var o in managCollec)
{
var managObj = (ManagementObject)o;
windowsInfo = managObj.Properties["Caption"].Value + Environment.UserName + (string)managObj.Properties["Version"].Value;
break;
}
windowsInfo = windowsInfo.Replace(" ", "");
windowsInfo = windowsInfo.Replace("Windows", "");
windowsInfo = windowsInfo.Replace("windows", "");
windowsInfo += (is64Bits) ? " 64bit" : " 32bit";
//md5 hash of the windows version
var md5Hasher = MD5.Create();
var wi = md5Hasher.ComputeHash(Encoding.Default.GetBytes(windowsInfo));
var wiHex = BitConverter.ToString(wi).Replace("-", "");
return wiHex;
}
}
#endregion
} }

View File

@ -13,7 +13,9 @@ using System.Windows.Forms;
using System.Xml.Serialization; using System.Xml.Serialization;
using System.Xml; using System.Xml;
using System.Xml.Linq; using System.Xml.Linq;
#if !BASICLAUNCHER
using System.Text.Json; using System.Text.Json;
#endif
#endregion #endregion
namespace Novetus.Core namespace Novetus.Core

View File

@ -10,7 +10,9 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Net; using System.Net;
#if !BASICLAUNCHER
using NLog; using NLog;
#endif
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Drawing.Imaging; using System.Drawing.Imaging;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
@ -504,9 +506,10 @@ namespace Novetus.Core
return Task.Delay(milliseconds); return Task.Delay(milliseconds);
#endif #endif
} }
public static void LogPrint(string text, int type = 1) public static void LogPrint(string text, int type = 1)
{ {
//TODO, remove nlog support for bootstrapper completely. this is a temp fix.
#if !BASICLAUNCHER
Logger log = LogManager.GetCurrentClassLogger(); Logger log = LogManager.GetCurrentClassLogger();
switch (type) switch (type)
@ -521,6 +524,7 @@ namespace Novetus.Core
log.Info(text); log.Info(text);
break; break;
} }
#endif
} }
public static void LogExceptions(Exception ex) public static void LogExceptions(Exception ex)

View File

@ -1,6 +1,14 @@
EDGE Snapshot v23.8574.19965.1
Enhancements:
- Added proper metatable protection on all affected clients. (2006S-2010L)
----------------------------------------------------------------------------
EDGE Snapshot v23.8700.30967.1
Notes: Notes:
- Novetus' license has switched to the GPL 3.0. - Novetus' license has switched to the GPL 3.0.
- 💙
Enhancements:
- Improved tripcode generation to fix various issues.
Fixes: Fixes:
- Fixed tripcodes not working - Fixed tripcodes not working

View File

@ -465,3 +465,45 @@ _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -465,3 +465,45 @@ _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -523,3 +523,45 @@ _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -523,3 +523,45 @@ _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -578,4 +578,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -579,3 +579,45 @@ _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -697,4 +697,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -791,4 +791,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -791,4 +791,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -797,4 +797,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -798,4 +798,46 @@ end
_G.CSServer=CSServer _G.CSServer=CSServer
_G.CSConnect=CSConnect _G.CSConnect=CSConnect
_G.CSSolo=CSSolo _G.CSSolo=CSSolo
_G.CSStudio=CSStudio _G.CSStudio=CSStudio
-- credit to KeyboardCombination
local succ = pcall(function() --check if the metatables are already read only lol
local canChange = getmetatable(game.Close);
canChange.__metatable = canChange.__metatable
end)
if not succ then
return;
end
function readonlytable(table)
return setmetatable({}, {
__index = table,
__newindex = function(table, key, value)
error("Attempt to modify read-only table")
end,
__metatable = false
});
end
function readonlytablechildren(table)
for i,v in pairs(table) do
if type(v)=="table" and table[i]~=_G._G then
readonlytablechildren(table[i])
table[i] = readonlytable(table[i])
end
if type(v)=="userdata" then
local mt = getmetatable(table[i])
if mt~=nil and mt~=false then
mt.__metatable=false
end
end
end
end
_G.rawset=nil
readonlytablechildren(_G)
_G._G = readonlytable(_G)
mt = getmetatable(game.Changed)
mt.__metatable=false
mt = getmetatable("curse you roblox")
mt.__metatable=false

View File

@ -10,5 +10,5 @@ ExtendedVersionNumber=True
//ExtendedVersionTemplate=%version% Snapshot v23.%build%.%revision%.%extended-revision% //ExtendedVersionTemplate=%version% Snapshot v23.%build%.%revision%.%extended-revision%
ExtendedVersionTemplate=EDGE Snapshot v23.%build%.%revision%.%extended-revision% ExtendedVersionTemplate=EDGE Snapshot v23.%build%.%revision%.%extended-revision%
ExtendedVersionRevision=1 ExtendedVersionRevision=1
InitialBootup=True InitialBootup=False
IsLite=False IsLite=False

View File

@ -1,5 +1,6 @@
Happy New Year!|Have a happy %year%!|1/1 Happy New Year!|Have a happy %year%!|1/1
RIP Erik Cassel|Erik Cassel, was a co-founder, administrator%newline%and former VP of Engineering of Roblox.|2/11 RIP Erik Cassel|Erik Cassel, was a co-founder, administrator%newline%and former VP of Engineering of Roblox.|2/11
Blueheart Forever.|Dedicated to Pepper and Sophie.|4/14
smoke weed every day|blaze it|4/20 smoke weed every day|blaze it|4/20
Happy Birthday, Bitl!|Bitl is the developer of Novetus and RBXLegacy.|6/10 Happy Birthday, Bitl!|Bitl is the developer of Novetus and RBXLegacy.|6/10
Happy Pride Month!|6/1-6/30-6/7-6/15 Happy Pride Month!|6/1-6/30-6/7-6/15

View File

@ -270,4 +270,6 @@ Supports USB C!
NOW. UNDER. MILITARY. COMMAND. NOW. UNDER. MILITARY. COMMAND.
ONE MILLION DOLLARS! ONE MILLION DOLLARS!
It's the new wave of the future! It's the new wave of the future!
In the face of extermination, say "FUCK YOU"!|Dedicated to Pepper In the face of extermination, say "FUCK YOU"!|Dedicated to Pepper
roblox for steam deck when|Just fuckin play novetus
you're still standing here, despite everything|Dedicated to Pepper