void Decode_Click(object sender, RoutedEventArgs e) { bool error = false; if (optSym.IsChecked ?? true) { var path = PathBox.Text.Trim(' ', '"'); string shortPath = path; if (path.Length > 35) { shortPath = "..." + path.Substring(path.Length - 35, 35); } try { _messageDeobfuscator = MessageDeobfuscator.Load(path); status.Content = "Loaded symbol map from '" + shortPath + "' successfully."; } catch { status.Content = "Failed to load symbol map from '" + shortPath + "'."; error = true; } } else { _messageDeobfuscator = new MessageDeobfuscator(PassBox.Password); } if (!error) { stackTrace.Text = _messageDeobfuscator.Deobfuscate(stackTrace.Text); } }
public async Task MessageDeobfuscationWithSymbolsMap() { var expectedObfuscatedOutput = new[] { "Exception", " at _OokpKOmal5JNZMPvSAFgHLHjBke._tc5CFDIJ2J9Fx3ehd3sgjTMAxCaA._8Tq88jpv7mEXkEMavg6AaMFsXJt(String )", " at _ykdLsBmsKGrd6fxeEseqJs8XlpP._tfvbqapfg44suL8taZVvOKM4AoG()" }; await Run( "MessageDeobfuscation.exe", expectedObfuscatedOutput, new SettingItem <Protection>("rename") { ["mode"] = "decodable" }, "SymbolsMap", seed : "1234", postProcessAction : outputPath => { var messageDeobfuscator = MessageDeobfuscator.Load(Path.Combine(outputPath, "symbols.map")); var deobfuscated = messageDeobfuscator.Deobfuscate(string.Join(Environment.NewLine, expectedObfuscatedOutput)); Assert.Equal(_expectedDeobfuscatedOutput, deobfuscated); return(Task.Delay(0)); } ); }