diff options
| author | Michael VanOverbeek <[email protected]> | 2016-04-09 13:16:39 -0400 |
|---|---|---|
| committer | Michael VanOverbeek <[email protected]> | 2016-04-09 13:16:39 -0400 |
| commit | 14edb9eade65806b531e51a0ed1fba7c62ba848e (patch) | |
| tree | b8a0124d66ca9d414870a27de103e7be9a748081 /source/WindowsFormsApplication1/ShiftnetDecryptor.cs | |
| parent | cfb8690c6fbbb0595f8a3a4cd9f3210054a9680d (diff) | |
| download | shiftos-c-_theultimatehacker-14edb9eade65806b531e51a0ed1fba7c62ba848e.tar.gz shiftos-c-_theultimatehacker-14edb9eade65806b531e51a0ed1fba7c62ba848e.tar.bz2 shiftos-c-_theultimatehacker-14edb9eade65806b531e51a0ed1fba7c62ba848e.zip | |
Uploaded source code for ShiftOS 0.1.1 Beta 2.3
Initial commit of repository.
Diffstat (limited to 'source/WindowsFormsApplication1/ShiftnetDecryptor.cs')
| -rw-r--r-- | source/WindowsFormsApplication1/ShiftnetDecryptor.cs | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/ShiftnetDecryptor.cs b/source/WindowsFormsApplication1/ShiftnetDecryptor.cs new file mode 100644 index 0000000..c31a6dc --- /dev/null +++ b/source/WindowsFormsApplication1/ShiftnetDecryptor.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS +{ + public partial class ShiftnetDecryptor : Form + { + public ShiftnetDecryptor() + { + InitializeComponent(); + } + + int i = 0; + string currentaddress = null; + string encrypted_contents = null; + + public void WriteLine(string line) + { + if(txtstatus.Text == "") + { + txtstatus.Text = line; + } + else + { + txtstatus.Text += Environment.NewLine + line; + } + } + + private void RecursiveControlSetup(Control ctrl) + { + ctrl.Font = new Font(OSInfo.GetMonospaceFont(), ctrl.Font.Size); + try + { + var pnl = (Panel)ctrl; + foreach (Control c in pnl.Controls) + { + RecursiveControlSetup(c); + } + } + catch (Exception ex) + { + + } + } + + private void tmrdecrypt_Tick(object sender, EventArgs e) + { + switch (i) + { + case 0: + currentaddress = txtaddress.Text; + WriteLine("Checking URL..."); + if(!currentaddress.StartsWith("shiftnet://")) + { + WriteLine(" *** ERROR: Invalid URL."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 5: + WriteLine("Making connection to Shiftnet..."); + currentaddress = currentaddress.Replace("shiftnet://", "http://playshiftos.ml/shiftnet/www/"); + break; + case 25: + WriteLine("Checking file..."); + if(!currentaddress.EndsWith(".enc")) + { + WriteLine(" *** ERROR: File not valid, must be of type .enc (encrypted file)"); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 27: + WriteLine("Downloading file contents..."); + try + { + encrypted_contents = new WebClient().DownloadString(currentaddress); + } + catch(Exception ex) + { + WriteLine(" *** ERROR: Remote file could not be accessed."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 30: + WriteLine("Download successful. Determining encryption algorithm. This may take a bit..."); + break; + case 75: + int r = new Random().Next(0, 100); + if(r >= 25 && r <= 75) + { + WriteLine("Encryption algorithm determined, beginning decryption."); + } + else + { + WriteLine("Decryption failed."); + tmrdecrypt.Stop(); + btnstart.Enabled = true; + txtaddress.Enabled = true; + } + break; + case 95: + string decrypted = API.Encryption.Decrypt(encrypted_contents); + int lastslash = currentaddress.LastIndexOf("/"); + int len = currentaddress.Length - lastslash; + string fname = currentaddress.Substring(lastslash, len).Replace(".enc", ".lua"); + WriteLine("Decryption successful. Saving to /Home/Decryptions/" + fname + "..."); + if(!Directory.Exists(Paths.Home + "Decryptions")) + { + Directory.CreateDirectory(Paths.Home + "Decryptions"); + } + File.WriteAllText(Paths.Home + $"Decryptions{OSInfo.DirectorySeparator}{fname}", decrypted); + break; + case 100: + WriteLine("Decryption successful."); + tmrdecrypt.Stop(); + currentaddress = null; + i = 0; + encrypted_contents = null; + btnstart.Enabled = true; + txtaddress.Enabled = true; + + break; + } + + i += 1; + pgstatus.Value = i; + } + + private void btnstart_Click(object sender, EventArgs e) + { + i = 0; + tmrdecrypt.Start(); + btnstart.Enabled = false; + txtaddress.Enabled = false; + } + + private void ShiftnetDecryptor_Load(object sender, EventArgs e) + { + RecursiveControlSetup(panel1); + } + } +} |
