thank you psycho for anti-fiddler proxying

This commit is contained in:
u4pak 2024-01-20 15:30:53 -08:00
parent fbb76bb36e
commit 45b4cd12f4
29 changed files with 1794 additions and 41 deletions

View File

@ -0,0 +1,50 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Partypacker.Core
{
internal class AppRegistry : IDisposable
{
// credit to PsychoPast's LawinServer launcher for the following code:
// https://github.com/PsychoPast/LawinServer/blob/master/LawinServer/Core/AppRegistry.cs
// without it, fiddler-less proxying would have never been achieved
private const string AppKey = @"SOFTWARE\Partypacker";
private readonly RegistryKey _registryKey;
private readonly RegistryKey currentUser = Registry.CurrentUser;
private RegistryKey OpenKey => currentUser.OpenSubKey(AppKey, RegistryKeyPermissionCheck.ReadWriteSubTree);
public AppRegistry() => _registryKey = OpenKey switch
{
null => currentUser.CreateSubKey(AppKey, RegistryKeyPermissionCheck.ReadWriteSubTree),
_ => currentUser.OpenSubKey(AppKey, RegistryKeyPermissionCheck.ReadWriteSubTree)
};
public void UpdateRegistry(List<RegistryInfo> registryInfos) => _registryKey.SetValues(registryInfos);
public void Dispose()
{
_registryKey.Close();
_registryKey.Dispose();
GC.SuppressFinalize(this);
}
public T GetRegistryValue<T>(string name) => (T)_registryKey.GetValue(name, null);
}
internal class RegistryInfo
{
public string Name { get; set; }
public object Value { get; set; }
public RegistryValueKind RegistryValueKind { get; set; }
}
}

View File

@ -0,0 +1,20 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Partypacker.Core
{
internal static class Extensions
{
// credit to PsychoPast's LawinServer launcher for the following code:
// https://github.com/PsychoPast/LawinServer/blob/master/LawinServer/Core/Extensions.cs
// without it, fiddler-less proxying would have never been achieved
public static void SetValues(this RegistryKey registryKey, List<RegistryInfo> registryInfos) => registryInfos
.ForEach(x => registryKey
.SetValue(x.Name, x.Value, x.RegistryValueKind));
}
}

90
Partypacker/Core/Win32.cs Normal file
View File

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Partypacker.Core
{
internal static class Win32
{
// credit to PsychoPast's LawinServer launcher for the following code:
// https://github.com/PsychoPast/LawinServer/blob/master/LawinServer/Core/Win32.cs
// without it, fiddler-less proxying would have never been achieved
/// <summary>
/// Adds or removes an application-defined HandlerRoutine function from the list of handler functions for the calling process.
/// </summary>
/// <param name="HandlerRoutine">A pointer to the application-defined HandlerRoutine function to be added or removed.</param>
/// <param name="Add">If this parameter is TRUE, the handler is added; if it is FALSE, the handler is removed.</param>
/// <returns>If the function succeeds, the return value is nonzero, else zero.</returns>
[DllImport("Kernel32")]
public static extern bool SetConsoleCtrlHandler(SetConsoleCtrlEventHandler HandlerRoutine, bool Add);
/// <summary>
/// An application-defined function used with the SetConsoleCtrlHandler function.
/// </summary>
/// <param name="dwCtrlType">The type of control signal received by the handler.</param>
/// <returns>If the function handles the control signal, it should return TRUE. If it returns FALSE, the next handler function in the list of handlers for this process is used.</returns>
public delegate bool SetConsoleCtrlEventHandler(CtrlType dwCtrlType);
/// <summary>
/// The type of control signal received by the handler.
/// </summary>
public enum CtrlType
{
/// <summary>
/// A CTRL+C signal was received.
/// </summary>
CTRL_C_EVENT = 0,
/// <summary>
/// A CTRL+BREAK signal was received.
/// </summary>
CTRL_BREAK_EVENT = 1,
/// <summary>
/// A signal that the system sends to all processes attached to a console when the user closes the console.
/// </summary>
CTRL_CLOSE_EVENT = 2,
/// <summary>
/// A signal that the system sends to all console processes when a user is logging off.
/// </summary>
CTRL_LOGOFF_EVENT = 5,
/// <summary>
/// A signal that the system sends when the system is shutting down.
/// </summary>
CTRL_SHUTDOWN_EVENT = 6
}
/// <summary>
/// Set an internet option.
/// </summary>
/// <param name="hInternet">Handle on which to set information.</param>
/// <param name="dwOption">Internet option to be set.</param>
/// <param name="lpBuffer">Pointer to a buffer that contains the option setting.</param>
/// <param name="dwBufferLength">Size of the lpBuffer buffer.</param>
/// <returns></returns>
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(IntPtr hInternet, InternetOptions dwOption, IntPtr lpBuffer, uint dwBufferLength);
/// <summary>
/// The following option flags are used with the InternetQueryOption and InternetSetOption functions.
/// </summary>
internal enum InternetOptions : int
{
/// <summary>
/// Causes the proxy data to be reread from the registry for a handle.
/// </summary>
INTERNET_OPTION_REFRESH = 37,
/// <summary>
/// Notifies the system that the registry settings have been changed so that it verifies the settings on the next call to InternetConnect.
/// </summary>
INTERNET_OPTION_SETTINGS_CHANGED = 39
}
}
}

View File

@ -8,7 +8,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FiddlerCore.Trial" Version="5.0.2" />
<PackageReference Include="Pastel" Version="5.0.0" />
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
</ItemGroup>
</Project>

View File

@ -1,8 +1,11 @@
// See https://aka.ms/new-console-template for more information
using Partypacker;
using Partypacker;
using Pastel;
using System.Drawing;
Console.SetWindowSize(75, 20);
Console.CursorVisible = false;
Console.WriteLine(@"
_____ _ _
| __ \ | | | |
@ -14,16 +17,16 @@ Console.WriteLine(@"
|___/|_| ".Pastel(Color.IndianRed));
Console.WriteLine("-----------------------------------------------------------".Pastel(Color.CadetBlue));
Console.WriteLine("Welcome to Partypacker - what do you want to do?");
Console.WriteLine("Welcome to Partypacker - Select an option below:");
ConsoleKeyInfo ReceivedKeyInput;
int SelectedOptionIndex = 0;
bool Running = true;
SelectableOption[] Options = new SelectableOption[]
{
new SelectableOption("Test 1", () => { Console.WriteLine("cool!"); }),
new SelectableOption("Test 2", () => { Console.WriteLine("epic!"); }),
new SelectableOption("Test 3", () => { Console.WriteLine("awesome!"); })
new SelectableOption("Launch Fortnite", () => { Console.WriteLine("cool!"); }),
new SelectableOption("Open Dashboard", () => { Console.WriteLine("epic!"); }),
new SelectableOption("Settings", () => { Console.WriteLine("awesome!"); })
};
while (Running)
@ -31,8 +34,9 @@ while (Running)
(int left, int top) = Console.GetCursorPosition();
for (int i = 0; i < Options.Length; i++)
{
bool Selected = SelectedOptionIndex == i;
SelectableOption Option = Options[i];
Console.WriteLine($"{(SelectedOptionIndex == i ? ">".Pastel(Color.LimeGreen) : " ")} {Option.Name.Pastel(Color.DarkGreen)}");
Console.WriteLine($"{(Selected ? ">".Pastel(Color.LimeGreen) : " ")} {Option.Name.Pastel(Selected ? Color.DarkGreen : Color.Gray)}");
}
ReceivedKeyInput = Console.ReadKey();

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
namespace Partypacker.Proxy
{
internal class PrivateKeyDeleters
{
// credit to PsychoPast's LawinServer launcher for the following code:
// https://github.com/PsychoPast/LawinServer/blob/master/LawinServer/Proxy/PrivateKeyDeleters.cs
// without it, fiddler-less proxying would have never been achieved
private readonly IDictionary<Type, Action<AsymmetricAlgorithm>> privateKeyDeleters = new Dictionary<Type, Action<AsymmetricAlgorithm>>();
public PrivateKeyDeleters()
{
AddPrivateKeyDeleter<RSACng>(DefaultRSACngPrivateKeyDeleter);
AddPrivateKeyDeleter<RSACryptoServiceProvider>(DefaultRSACryptoServiceProviderPrivateKeyDeleter);
}
private void AddPrivateKeyDeleter<T>(Action<T> keyDeleter) where T : AsymmetricAlgorithm => privateKeyDeleters[typeof(T)] = (a) => keyDeleter((T)a);
public void DeletePrivateKey(AsymmetricAlgorithm asymmetricAlgorithm)
{
for (Type type = asymmetricAlgorithm.GetType(); type != null; type = type.BaseType)
{
if (privateKeyDeleters.TryGetValue(type, out Action<AsymmetricAlgorithm> deleter))
{
deleter(asymmetricAlgorithm);
return;
}
}
}
private void DefaultRSACryptoServiceProviderPrivateKeyDeleter(RSACryptoServiceProvider rsaCryptoServiceProvider)
{
rsaCryptoServiceProvider.PersistKeyInCsp = false;
rsaCryptoServiceProvider.Clear();
}
private void DefaultRSACngPrivateKeyDeleter(RSACng rsaCng)
{
rsaCng.Key.Delete();
rsaCng.Clear();
}
}
}

202
Partypacker/Proxy/Proxy.cs Normal file
View File

@ -0,0 +1,202 @@
using Fiddler;
using Microsoft.Win32;
using Partypacker.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using static Fiddler.FiddlerApplication;
using static Partypacker.Core.Win32;
namespace Partypacker.Proxy
{
internal class Proxy
{
// credit to PsychoPast's LawinServer launcher for the following code:
// https://github.com/PsychoPast/LawinServer/blob/master/LawinServer/Proxy/Proxy.cs
// without it, fiddler-less proxying would have never been achieved
#region VARIABLES
private const string Proxy_Server = "ProxyServer";
private const string Proxy_Enable = "ProxyEnable";
private readonly AppRegistry appRegistry;
private readonly string proxyKey = @$"{Registry.CurrentUser}\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings";
private readonly FiddlerCoreStartupSettings startupSettings;
private (object _currentProxyServer, int _defaultUserProxyState) proxySettings;
private (string _fiddlerCert, string _privateKey) _fiddlerCertInfos;
private int count = 0;
#endregion
public Proxy() : this(9999) { } //default port
public Proxy(ushort port)
{
appRegistry = new AppRegistry();
GetDefaultProxySettingsValue();
ConfigureFiddlerSettings(out bool fiddlerCertRegKeysExist);
startupSettings = new FiddlerCoreStartupSettingsBuilder()
.ListenOnPort(port)
.RegisterAsSystemProxy()
.DecryptSSL()
.OptimizeThreadPool()
.Build();
if (!CertificateHandler(fiddlerCertRegKeysExist))
{
//LogError("[Certificate Install Error] Could not install the certificate. Please restart the app and try again!");
StopProxy();
Environment.Exit(69);
}
}
#region CONFIGURATION
private void GetDefaultProxySettingsValue()
{
proxySettings._currentProxyServer = Registry.GetValue(proxyKey, Proxy_Server, null);
proxySettings._defaultUserProxyState = (int)Registry.GetValue(proxyKey, Proxy_Enable, 0);
}
private void ConfigureFiddlerSettings(out bool fiddlerCertRegKeysExist)
{
CONFIG.IgnoreServerCertErrors = false;
Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true);
Prefs.SetBoolPref("fiddler.certmaker.PreferCertEnroll", true);
_fiddlerCertInfos._fiddlerCert = appRegistry.GetRegistryValue<string>("FiddlerCert");
_fiddlerCertInfos._privateKey = appRegistry.GetRegistryValue<string>("PrivateKey");
fiddlerCertRegKeysExist = _fiddlerCertInfos._fiddlerCert != null && _fiddlerCertInfos._privateKey != null;
if (fiddlerCertRegKeysExist)
{
Prefs.SetStringPref("fiddler.certmaker.bc.cert", _fiddlerCertInfos._fiddlerCert);
Prefs.SetStringPref("fiddler.certmaker.bc.key", _fiddlerCertInfos._privateKey);
}
}
private bool CertificateHandler(bool valueExist)
{
if (!CertMaker.rootCertExists())
{
if (!CertMaker.createRootCert())
{
return false;
}
}
bool certificateSuccess = CertMaker.rootCertIsTrusted() || CertMaker.trustRootCert();
if (!certificateSuccess)
{
return false;
}
_fiddlerCertInfos._fiddlerCert ??= Prefs.GetStringPref("fiddler.certmaker.bc.cert", null);
_fiddlerCertInfos._privateKey ??= Prefs.GetStringPref("fiddler.certmaker.bc.key", null);
if (!valueExist)
{
List<RegistryInfo> registryInfo = new List<RegistryInfo>()
{
new RegistryInfo()
{
Name = "FiddlerCert",
Value = _fiddlerCertInfos._fiddlerCert,
RegistryValueKind = RegistryValueKind.String
},
new RegistryInfo()
{
Name = "PrivateKey",
Value = _fiddlerCertInfos._privateKey,
RegistryValueKind = RegistryValueKind.String
}
};
appRegistry.UpdateRegistry(registryInfo);
}
return true;
}
#endregion
public void StartProxy()
{
appRegistry.Dispose();
BeforeRequest += OnBeforeRequest;
AfterSessionComplete += OnAfterSessionComplete;
Startup(startupSettings);
Console.WriteLine($"Proxy started listening on port {startupSettings.ListenPort}.");
}
public bool StopProxy()
{
DeletePrivateKeys();
return ResetProxySettings();
}
#region EVENT_HANDLERS
private void OnBeforeRequest(Session oSession)
{
if (oSession.hostname.Contains(".ol.epicgames.com"))
{
if (oSession.HTTPMethodIs("CONNECT"))
{
oSession["x-replywithtunnel"] = "FortniteTunnel";
return;
}
oSession.fullUrl = "https://lawinserverfinal.herokuapp.com" + oSession.PathAndQuery;
}
}
private void OnAfterSessionComplete(Session oSession)
{
if (oSession.hostname != "lawinserverfinal.herokuapp.com")
{
return;
}
if (oSession.responseCode >= 400)
{
string fullUrl = oSession.fullUrl;
string requestHeaders = oSession.oRequest.headers.ToString();
int responseCode = oSession.responseCode;
/*LogError($"[Endpoint] {fullUrl}\n" +
$"[ResponseCode] {responseCode}\n" +
$"[RequestHeader] {requestHeaders}\n\n"
);*/
}
Console.Title = $"LawinServer - Redirected {++count} endpoints";
}
#endregion
#region CLEANUP
private bool ResetProxySettings()
{
Registry.SetValue(proxyKey, Proxy_Server, proxySettings._currentProxyServer, RegistryValueKind.String);
if (proxySettings._defaultUserProxyState == 0)
{
Registry.SetValue(proxyKey, Proxy_Enable, 0, RegistryValueKind.DWord);
bool successfulyChanged = InternetSetOption(IntPtr.Zero, InternetOptions.INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
bool successfulyRefreshed = InternetSetOption(IntPtr.Zero, InternetOptions.INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
return successfulyChanged && successfulyRefreshed;
}
return true;
}
private void DeletePrivateKeys()
{
if (!(CertMaker.oCertProvider is ICertificateProvider4 certProvider))
{
return;
}
PrivateKeyDeleters privateKeyDeleter = new PrivateKeyDeleters();
IDictionary<string, X509Certificate2> certs = certProvider.CertCache;
foreach (X509Certificate2 cert in certs.Values)
{
privateKeyDeleter.DeletePrivateKey(cert.PrivateKey);
}
}
#endregion
}
}

View File

@ -8,12 +8,58 @@
".NETCoreApp,Version=v7.0": {
"Partypacker/1.0.0": {
"dependencies": {
"Pastel": "5.0.0"
"FiddlerCore.Trial": "5.0.2",
"Pastel": "5.0.0",
"System.ComponentModel.Composition": "8.0.0"
},
"runtime": {
"Partypacker.dll": {}
}
},
"BCMakeCert/2.0.9": {
"runtime": {
"lib/netstandard2.0/BCMakeCert.dll": {
"assemblyVersion": "2.0.9.0",
"fileVersion": "2.0.9.0"
}
}
},
"DotNetZip/1.13.8": {
"dependencies": {
"System.Security.Permissions": "4.5.0",
"System.Text.Encoding.CodePages": "4.5.0",
"System.Text.Encoding.Extensions": "4.3.0"
},
"runtime": {
"lib/netstandard2.0/DotNetZip.dll": {
"assemblyVersion": "1.13.8.0",
"fileVersion": "1.13.8.0"
}
}
},
"FiddlerCore.Trial/5.0.2": {
"dependencies": {
"BCMakeCert": "2.0.9",
"DotNetZip": "1.13.8",
"Microsoft.Win32.Registry": "4.5.0",
"System.Configuration.ConfigurationManager": "4.4.1",
"Telerik.NetworkConnections": "0.2.0"
},
"runtime": {
"lib/netstandard2.0/FiddlerCore.dll": {
"assemblyVersion": "5.0.2.0",
"fileVersion": "5.0.2.0"
}
}
},
"Microsoft.NETCore.Platforms/2.0.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.Win32.Registry/4.5.0": {
"dependencies": {
"System.Security.AccessControl": "4.5.0",
"System.Security.Principal.Windows": "4.5.0"
}
},
"Pastel/5.0.0": {
"runtime": {
"lib/net6.0/Pastel.dll": {
@ -21,6 +67,103 @@
"fileVersion": "5.0.0.0"
}
}
},
"System.ComponentModel.Composition/8.0.0": {
"runtime": {
"lib/net7.0/System.ComponentModel.Composition.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"System.Configuration.ConfigurationManager/4.4.1": {
"dependencies": {
"System.Security.Cryptography.ProtectedData": "4.4.0"
},
"runtime": {
"lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.6.25921.2"
}
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.CompilerServices.Unsafe/4.5.0": {},
"System.Security.AccessControl/4.5.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"System.Security.Principal.Windows": "4.5.0"
}
},
"System.Security.Cryptography.ProtectedData/4.4.0": {
"runtime": {
"lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
"assemblyVersion": "4.0.2.0",
"fileVersion": "4.6.25519.3"
}
},
"runtimeTargets": {
"runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.2.0",
"fileVersion": "4.6.25519.3"
}
}
},
"System.Security.Permissions/4.5.0": {
"dependencies": {
"System.Security.AccessControl": "4.5.0"
},
"runtime": {
"lib/netstandard2.0/System.Security.Permissions.dll": {
"assemblyVersion": "4.0.1.0",
"fileVersion": "4.6.26515.6"
}
}
},
"System.Security.Principal.Windows/4.5.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0"
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding.CodePages/4.5.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"System.Runtime.CompilerServices.Unsafe": "4.5.0"
}
},
"System.Text.Encoding.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0"
}
},
"Telerik.NetworkConnections/0.2.0": {
"dependencies": {
"Microsoft.Win32.Registry": "4.5.0",
"System.ComponentModel.Composition": "8.0.0"
},
"runtime": {
"lib/netstandard2.0/Telerik.NetworkConnections.dll": {
"assemblyVersion": "0.2.0.0",
"fileVersion": "0.2.0.0"
}
}
}
}
},
@ -30,12 +173,138 @@
"serviceable": false,
"sha512": ""
},
"BCMakeCert/2.0.9": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GBAneZZniACYigSU8FuK7CBav+sZ9eHQWyt10Qgqyxp1RULO9fGv2WYfLOYHhbdg+hs/sU+OLCPwMwzGqZOCVg==",
"path": "bcmakecert/2.0.9",
"hashPath": "bcmakecert.2.0.9.nupkg.sha512"
},
"DotNetZip/1.13.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-r4oFZLHuxhOw4kr19nuVBQe+r0OMqqO2VZw5p6uW4ANZM/bPAuWBkUSo+P1R0KT7yYXpuT/wH7D9o59lPtCPrA==",
"path": "dotnetzip/1.13.8",
"hashPath": "dotnetzip.1.13.8.nupkg.sha512"
},
"FiddlerCore.Trial/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ysifju0hXE+HQCmoYvZHIrp/YPXBtdJIz5dUo9JeMyXyB1v1vjm1ViTdvXMwZDiLlfxBK2JfaN5UBGCsuis4yg==",
"path": "fiddlercore.trial/5.0.2",
"hashPath": "fiddlercore.trial.5.0.2.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==",
"path": "microsoft.netcore.platforms/2.0.0",
"hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==",
"path": "microsoft.win32.registry/4.5.0",
"hashPath": "microsoft.win32.registry.4.5.0.nupkg.sha512"
},
"Pastel/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-678i15lh+oAKZs2ihgiDVmDbiprEbji2L/w+jIcTkZpkdJ+UgrhToQTQN3Mw0bfM+Yx3cIBA3BS7iKT2poqBQg==",
"path": "pastel/5.0.0",
"hashPath": "pastel.5.0.0.nupkg.sha512"
},
"System.ComponentModel.Composition/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==",
"path": "system.componentmodel.composition/8.0.0",
"hashPath": "system.componentmodel.composition.8.0.0.nupkg.sha512"
},
"System.Configuration.ConfigurationManager/4.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jz3TWKMAeuDEyrPCK5Jyt4bzQcmzUIMcY9Ud6PkElFxTfnsihV+9N/UCqvxe1z5gc7jMYAnj7V1COMS9QKIuHQ==",
"path": "system.configuration.configurationmanager/4.4.1",
"hashPath": "system.configuration.configurationmanager.4.4.1.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YrzNWduCDHhUaSRBxHxL11UkM2fD6y8hITHis4/LbQZ6vj3vdRjoH3IoPWWC9uDXK2wHIqn+b5gv1Np/VKyM1g==",
"path": "system.runtime.compilerservices.unsafe/4.5.0",
"hashPath": "system.runtime.compilerservices.unsafe.4.5.0.nupkg.sha512"
},
"System.Security.AccessControl/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==",
"path": "system.security.accesscontrol/4.5.0",
"hashPath": "system.security.accesscontrol.4.5.0.nupkg.sha512"
},
"System.Security.Cryptography.ProtectedData/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==",
"path": "system.security.cryptography.protecteddata/4.4.0",
"hashPath": "system.security.cryptography.protecteddata.4.4.0.nupkg.sha512"
},
"System.Security.Permissions/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==",
"path": "system.security.permissions/4.5.0",
"hashPath": "system.security.permissions.4.5.0.nupkg.sha512"
},
"System.Security.Principal.Windows/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==",
"path": "system.security.principal.windows/4.5.0",
"hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Text.Encoding.CodePages/4.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-S0wEUiKcLvRlkFUXca8uio1UQ5bYQzYgOmOKtCqaBQC3GR9AJjh43otcM32IGsAyvadFTaAMw9Irm6dS4Evfng==",
"path": "system.text.encoding.codepages/4.5.0",
"hashPath": "system.text.encoding.codepages.4.5.0.nupkg.sha512"
},
"System.Text.Encoding.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
"path": "system.text.encoding.extensions/4.3.0",
"hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
},
"Telerik.NetworkConnections/0.2.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CuRCESra/miCNvFSniRhvG1d8Abx0oI7/rYXvb/panClfQvq1WfXaMWrnXlD8Zdi8wpgwSxTDX+XIimCeYUxFw==",
"path": "telerik.networkconnections/0.2.0",
"hashPath": "telerik.networkconnections.0.2.0.nupkg.sha512"
}
}
}

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Partypacker")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+fbb76bb36e64cbc7732549c16c8cae25276a6c9d")]
[assembly: System.Reflection.AssemblyProductAttribute("Partypacker")]
[assembly: System.Reflection.AssemblyTitleAttribute("Partypacker")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
6ea672c25746cdec1ebb8d26e79b839312248c61134c9182efac4b25bbf430e8
90a4887af6b73bb024994ab00d412a5419ac2c1de9671c3188e568323d6a855d

View File

@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Partypacker
build_property.ProjectDir = D:\Projects\DotNET\Partypacker\Partypacker\
build_property.ProjectDir = C:\Users\shady\Desktop\Partypacker\Partypacker\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@ -1 +1 @@
b93e4be91f5f591f1cdbd8e45b389f3952336f5e5ba35bdcd94b5a94e18e074b
93a6d38263c9444725d254e865343ad12041a05736bdad69484a499f486f1c5a

View File

@ -15,3 +15,31 @@ D:\Projects\DotNET\Partypacker\Partypacker\obj\Debug\net7.0\ref\Partypacker.dll
D:\Projects\DotNET\Partypacker\Partypacker\bin\Debug\net7.0\Pastel.dll
D:\Projects\DotNET\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.csproj.AssemblyReference.cache
D:\Projects\DotNET\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.csproj.CopyComplete
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Partypacker.exe
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Partypacker.deps.json
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Partypacker.runtimeconfig.json
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Partypacker.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Partypacker.pdb
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Pastel.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.csproj.AssemblyReference.cache
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.AssemblyInfoInputs.cache
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.AssemblyInfo.cs
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.csproj.CoreCompileInputs.cache
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.sourcelink.json
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\refint\Partypacker.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.pdb
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypacker.genruntimeconfig.cache
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\ref\Partypacker.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\obj\Debug\net7.0\Partypac.7577FB8A.Up2Date
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\BasicFormatsForCore.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\BCMakeCert.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\DotNetZip.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\FiddlerCore.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\System.ComponentModel.Composition.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\System.Configuration.ConfigurationManager.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\System.Security.Cryptography.ProtectedData.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\System.Security.Permissions.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\Telerik.NetworkConnections.dll
C:\Users\shady\Desktop\Partypacker\Partypacker\bin\Debug\net7.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll

View File

@ -1 +1 @@
43b60c27c2dcec51aa77e028c77a01ff31dd695892a54f75e54a0c3ba7d5dda0
682a6f0f49d576867bc2dcde668974c53d80eca6b0d957eed6fb6be6c2992f5e

View File

@ -1,23 +1,23 @@
{
"format": 1,
"restore": {
"D:\\Projects\\DotNET\\Partypacker\\Partypacker\\Partypacker.csproj": {}
"C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\Partypacker.csproj": {}
},
"projects": {
"D:\\Projects\\DotNET\\Partypacker\\Partypacker\\Partypacker.csproj": {
"C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\Partypacker.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Projects\\DotNET\\Partypacker\\Partypacker\\Partypacker.csproj",
"projectUniqueName": "C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\Partypacker.csproj",
"projectName": "Partypacker",
"projectPath": "D:\\Projects\\DotNET\\Partypacker\\Partypacker\\Partypacker.csproj",
"packagesPath": "C:\\Users\\McMistrzYT\\.nuget\\packages\\",
"outputPath": "D:\\Projects\\DotNET\\Partypacker\\Partypacker\\obj\\",
"projectPath": "C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\Partypacker.csproj",
"packagesPath": "C:\\Users\\shady\\.nuget\\packages\\",
"outputPath": "C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\McMistrzYT\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Users\\shady\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
@ -25,8 +25,7 @@
"net7.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
"C:\\Users\\shady\\Desktop\\Partypacker\\.pkg": {}
},
"frameworks": {
"net7.0": {
@ -38,15 +37,28 @@
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"dependencies": {
"FiddlerCore.Trial": {
"target": "Package",
"version": "[5.0.2, )"
},
"Pastel": {
"target": "Package",
"version": "[5.0.0, )"
},
"System.ComponentModel.Composition": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
@ -65,7 +77,7 @@
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.101\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.200-preview.23624.5\\RuntimeIdentifierGraph.json"
}
}
}

View File

@ -5,12 +5,24 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\McMistrzYT\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\shady\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\McMistrzYT\.nuget\packages\" />
<SourceRoot Include="C:\Users\shady\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Content Include="$(NuGetPackageRoot)fiddlercore.trial\5.0.2\contentFiles\any\netstandard2.0\BasicFormatsForCore.dll" Condition="Exists('$(NuGetPackageRoot)fiddlercore.trial\5.0.2\contentFiles\any\netstandard2.0\BasicFormatsForCore.dll')">
<NuGetPackageId>FiddlerCore.Trial</NuGetPackageId>
<NuGetPackageVersion>5.0.2</NuGetPackageVersion>
<NuGetItemType>Content</NuGetItemType>
<Pack>false</Pack>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>BasicFormatsForCore.dll</TargetPath>
<Private>True</Private>
<Link>BasicFormatsForCore.dll</Link>
</Content>
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,49 @@
{
"version": 2,
"dgSpecHash": "xszAUj8QGuuyIxqTWZGTE3qs/uA4z4NKEKxOVu7TuNRT3IXC0zJxEV9TwNlrRe3sPQCAxAG+5n6ffIvah8bt7A==",
"dgSpecHash": "86tzdSMyBZ4LBgWRo2DCgvyZ/VEc/mczCWvJH8pbCS8w2w5880Cfq2lTezw5+n9JMG/0TxXtwTycvxRgQBa7kQ==",
"success": true,
"projectFilePath": "D:\\Projects\\DotNET\\Partypacker\\Partypacker\\Partypacker.csproj",
"projectFilePath": "C:\\Users\\shady\\Desktop\\Partypacker\\Partypacker\\Partypacker.csproj",
"expectedPackageFiles": [
"C:\\Users\\McMistrzYT\\.nuget\\packages\\pastel\\5.0.0\\pastel.5.0.0.nupkg.sha512"
"C:\\Users\\shady\\.nuget\\packages\\bcmakecert\\2.0.9\\bcmakecert.2.0.9.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\dotnetzip\\1.13.8\\dotnetzip.1.13.8.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\fiddlercore.trial\\5.0.2\\fiddlercore.trial.5.0.2.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\microsoft.netcore.platforms\\2.0.0\\microsoft.netcore.platforms.2.0.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\microsoft.win32.registry\\4.5.0\\microsoft.win32.registry.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\pastel\\5.0.0\\pastel.5.0.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.componentmodel.composition\\8.0.0\\system.componentmodel.composition.8.0.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.configuration.configurationmanager\\4.4.1\\system.configuration.configurationmanager.4.4.1.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\4.5.0\\system.runtime.compilerservices.unsafe.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.security.accesscontrol\\4.5.0\\system.security.accesscontrol.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.4.0\\system.security.cryptography.protecteddata.4.4.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.security.permissions\\4.5.0\\system.security.permissions.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.security.principal.windows\\4.5.0\\system.security.principal.windows.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.text.encoding.codepages\\4.5.0\\system.text.encoding.codepages.4.5.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\shady\\.nuget\\packages\\telerik.networkconnections\\0.2.0\\telerik.networkconnections.0.2.0.nupkg.sha512"
],
"logs": []
"logs": [
{
"code": "NU1603",
"level": "Warning",
"warningLevel": 1,
"message": "FiddlerCore.Trial 5.0.2 depends on DotNetZip (>= 1.13.4) but DotNetZip 1.13.4 was not found. An approximate best match of DotNetZip 1.13.8 was resolved.",
"libraryId": "DotNetZip",
"targetGraphs": [
"net7.0"
]
},
{
"code": "NU1603",
"level": "Warning",
"warningLevel": 1,
"message": "FiddlerCore.Trial 5.0.2 depends on System.Configuration.ConfigurationManager (>= 4.4.0) but System.Configuration.ConfigurationManager 4.4.0 was not found. An approximate best match of System.Configuration.ConfigurationManager 4.4.1 was resolved.",
"libraryId": "System.Configuration.ConfigurationManager",
"targetGraphs": [
"net7.0"
]
}
]
}