Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        private void MountSDButtonClicked(object sender, RoutedEventArgs e)
        {
            InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo);

            MountSDLock = true;
            Dispatcher.Invoke(() => UpdateSDButton());

            InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile("ums_sd.ini"));
        }
Пример #4
0
        private void InjectPayloadClicked(object sender, RoutedEventArgs e)
        {
            FileInfo file = RequestOpenFileFromUser(".bin", "RCM payloads (.bin)|*.bin", "Select a payload...");

            if (file != null)
            {
                InjectService.SendPayload(file);
            }
        }
Пример #5
0
        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"));
            }
        }
Пример #6
0
 private void MountSDButtonClicked(object sender, RoutedEventArgs e)
 {
     InjectService.SendPayload(HACGUIKeyset.MemloaderPayloadFileInfo);
     InjectService.SendIni(HACGUIKeyset.MemloaderSampleFolderInfo.GetFile("ums_sd.ini"));
 }