private void SendLockpickButtonClicked(object sender, RoutedEventArgs e) { if (!HACGUIKeyset.TempLockpickPayloadFileInfo.Exists) { GitHubClient gitClient = new GitHubClient(new ProductHeaderValue("Github")); Task.Run(async() => { Release release = await gitClient.Repository.Release.GetLatest("shchmue", "Lockpick_RCM"); // get latest release ReleaseAsset asset = release.Assets.FirstOrDefault(r => r.BrowserDownloadUrl.EndsWith(".bin")); // get first asset that ends with .bin (the payload) HttpClient httpClient = new HttpClient(); Stream src = await httpClient.GetStreamAsync(asset.BrowserDownloadUrl); // get stream of .bin file using (Stream dest = HACGUIKeyset.TempLockpickPayloadFileInfo.OpenWrite()) await src.CopyToAsync(dest); // stream payload to file while (!HACGUIKeyset.TempLockpickPayloadFileInfo.CanOpen()) { ; // prevent race condition? } }).Wait(); } InjectService.SendPayload(HACGUIKeyset.TempLockpickPayloadFileInfo); }
private void InjectMemloaderPayload(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; string iniFile = item.Tag + ".ini"; InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo); InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile(iniFile)); }
private void MountSDButtonClicked(object sender, RoutedEventArgs e) { InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo); MountSDLock = true; Dispatcher.Invoke(() => UpdateSDButton()); InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile("ums_sd.ini")); }
private void InjectPayloadClicked(object sender, RoutedEventArgs e) { FileInfo file = RequestOpenFileFromUser(".bin", "RCM payloads (.bin)|*.bin", "Select a payload..."); if (file != null) { InjectService.SendPayload(file); } }
private void RestartAsAdminButtonClick(object sender, RoutedEventArgs e) { if (!Native.IsAdministrator) { new SaveKeysetTask(PickConsolePage.ConsoleName).CreateTask().RunSynchronously(); Native.LaunchProgram( AppDomain.CurrentDomain.FriendlyName, () => Dispatcher.Invoke(() => System.Windows.Application.Current.Shutdown()), $"continue \"{PickConsolePage.ConsoleName}\"", true); } else { InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo); InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile("ums_emmc.ini")); } }
private void MountSDButtonClicked(object sender, RoutedEventArgs e) { InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo); InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile("ums_sd.ini")); }