public async Task <byte[]> Obfuscate(ObfuscateRequest request) { CreateDefaultDirectories(); var obfuscationFolder = FileUtil.GetAssemblyPath("ObfuscationTemp"); var guid = Guid.NewGuid(); var outPath = Path.Combine(obfuscationFolder, $"{guid}-obbed.jar"); var jarPath = Path.Combine(obfuscationFolder, $"{guid}.jar"); File.WriteAllBytes(jarPath, request.Bytes); var path = await ObfuscateJar(jarPath, outPath, BuildObfuscateConfig(jarPath, outPath, request.Config)); var bytes = File.ReadAllBytes(path); File.Delete(path); return(bytes); }
public async Task <byte[]> Handle(ObfuscateBotCommand request, CancellationToken cancellationToken) { var config = await _mediator.Send(new GetFileQuery { Name = "bot-obfuscate-config.xml" }, cancellationToken); if (string.IsNullOrEmpty(request.Path)) { return(new byte[0]); } var bytes = File.ReadAllBytes(request.Path); var obfuscate = new ObfuscateRequest { Bytes = bytes, Config = Encoding.Default.GetString(config) }; var result = await _client.PostAsync("/api/obfuscate/execute", new StringContent(JsonSerializer.Serialize(obfuscate), Encoding.UTF8, "application/json"), cancellationToken); var stream = await result.Content.ReadAsStreamAsync(); return(stream.ToByteArray()); }
public async Task <IActionResult> Execute(ObfuscateRequest request) { var bytes = await _service.Obfuscate(request); return(File(bytes, "application/java-archive", "result.jar")); }