From 4b24ac52c9ea0100144985ea4e375710c1e882e1 Mon Sep 17 00:00:00 2001 From: 1987kostya Date: Thu, 31 Dec 2020 12:49:41 +0600 Subject: [PATCH] Add Decrypter-x86.dll --- CTFAK/CTFAK.csproj | 17 ++++++- CTFAK/GUI/MainForm.Designer.cs | 90 ++++++++++++++++++--------------- CTFAK/GUI/MainForm.cs | 12 ++--- CTFAK/PluginAPI/PluginAPI.cs | 9 +--- CTFAK/Utils/Decryption.cs | 2 +- Dependencies/Decrypter-x64.dll | Bin 19456 -> 3 bytes Dependencies/Decrypter-x86.dll | Bin 0 -> 16896 bytes 7 files changed, 72 insertions(+), 58 deletions(-) create mode 100644 Dependencies/Decrypter-x86.dll diff --git a/CTFAK/CTFAK.csproj b/CTFAK/CTFAK.csproj index 0aada30..e3ece02 100644 --- a/CTFAK/CTFAK.csproj +++ b/CTFAK/CTFAK.csproj @@ -269,6 +269,16 @@ MainForm.cs + + + x64\Decrypter-x64.dll + Always + + + x86\Decrypter-x86.dll + Always + + @@ -282,9 +292,12 @@ md $(SolutionDir)\Build\ md $(SolutionDir)\Build\x64\ +md $(SolutionDir)\Build\x86\ copy $(TargetPath) $(SolutionDir)Build\CTFAK.exe -copy $(SolutionDir)Dependencies\Decrypter-x64.dll $(SolutionDir)Build\Decrypter-x64.dll -copy $(TargetDir)\x64\zlibwapi.dll $(SolutionDir)Build\x64\zlibwapi.dll +copy $(TargetDir)x64\Decrypter-x64.dll $(SolutionDir)Build\x64\Decrypter-x64.dll +copy $(TargetDir)x86\Decrypter-x86.dll $(SolutionDir)Build\x86\Decrypter-x86.dll +copy $(TargetDir)x64\zlibwapi.dll $(SolutionDir)Build\x64\zlibwapi.dll +copy $(TargetDir)x86\zlibwapi.dll $(SolutionDir)Build\x86\zlibwapi.dll copy $(TargetDir)CTFAK.pdb $(SolutionDir)Build\CTFAK.pdb copy $(TargetDir)Be.Windows.Forms.HexBox.dll $(SolutionDir)Build\Be.Windows.Forms.HexBox.dll copy $(TargetDir)Joveler.Compression.ZLib.dll $(SolutionDir)Build\Joveler.Compression.ZLib.dll diff --git a/CTFAK/GUI/MainForm.Designer.cs b/CTFAK/GUI/MainForm.Designer.cs index ca4737d..bb3e0c6 100644 --- a/CTFAK/GUI/MainForm.Designer.cs +++ b/CTFAK/GUI/MainForm.Designer.cs @@ -69,6 +69,7 @@ this.imageViewPictureBox = new System.Windows.Forms.PictureBox(); this.imagesTreeView = new System.Windows.Forms.TreeView(); this.soundViewTab = new System.Windows.Forms.TabPage(); + this.stopSoundBtn = new System.Windows.Forms.Button(); this.soundList = new System.Windows.Forms.TreeView(); this.playSoundBtn = new System.Windows.Forms.Button(); this.cryptKeyTab = new System.Windows.Forms.TabPage(); @@ -77,7 +78,6 @@ this.hexBox1 = new Be.Windows.Forms.HexBox(); this.charBox = new System.Windows.Forms.TextBox(); this.pluginTab = new System.Windows.Forms.TabPage(); - this.pluginLogBox = new System.Windows.Forms.TextBox(); this.activatePluginBtn = new System.Windows.Forms.Button(); this.pluginsList = new System.Windows.Forms.ListBox(); this.packDataDialog = new System.Windows.Forms.SaveFileDialog(); @@ -441,6 +441,7 @@ this.mfaTab.Controls.Add(this.mfaLogBox); this.mfaTab.Location = new System.Drawing.Point(4, 24); this.mfaTab.Name = "mfaTab"; + this.mfaTab.Padding = new System.Windows.Forms.Padding(3); this.mfaTab.Size = new System.Drawing.Size(935, 479); this.mfaTab.TabIndex = 2; this.mfaTab.Text = "MFA Dump"; @@ -462,13 +463,13 @@ // this.mfaLogBox.Dock = System.Windows.Forms.DockStyle.Left; this.mfaLogBox.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte) (204))); - this.mfaLogBox.Location = new System.Drawing.Point(0, 0); + this.mfaLogBox.Location = new System.Drawing.Point(3, 3); this.mfaLogBox.MaxLength = 999999999; this.mfaLogBox.Multiline = true; this.mfaLogBox.Name = "mfaLogBox"; this.mfaLogBox.ReadOnly = true; this.mfaLogBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.mfaLogBox.Size = new System.Drawing.Size(405, 479); + this.mfaLogBox.Size = new System.Drawing.Size(405, 473); this.mfaLogBox.TabIndex = 0; this.mfaLogBox.Text = "MFA Generation is currently unstable\r\nUSE AT YOUR OWN RISK"; // @@ -481,6 +482,7 @@ this.packDataTab.Controls.Add(this.packDataListBox); this.packDataTab.Location = new System.Drawing.Point(4, 24); this.packDataTab.Name = "packDataTab"; + this.packDataTab.Padding = new System.Windows.Forms.Padding(3); this.packDataTab.Size = new System.Drawing.Size(935, 479); this.packDataTab.TabIndex = 4; this.packDataTab.Text = "Pack Data"; @@ -526,21 +528,22 @@ // packDataListBox // this.packDataListBox.BackColor = System.Drawing.SystemColors.WindowText; + this.packDataListBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.packDataListBox.Dock = System.Windows.Forms.DockStyle.Left; this.packDataListBox.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte) (204))); this.packDataListBox.ForeColor = System.Drawing.Color.FromArgb(((int) (((byte) (255)))), ((int) (((byte) (128)))), ((int) (((byte) (0))))); this.packDataListBox.FormattingEnabled = true; this.packDataListBox.ItemHeight = 15; this.packDataListBox.Items.AddRange(new object[] {"PackFile1", "PackFile2", "PackFile3", "PackFile4", "PackFile5", "PackFile6"}); - this.packDataListBox.Location = new System.Drawing.Point(0, 0); + this.packDataListBox.Location = new System.Drawing.Point(3, 3); this.packDataListBox.Name = "packDataListBox"; - this.packDataListBox.Size = new System.Drawing.Size(198, 479); + this.packDataListBox.Size = new System.Drawing.Size(198, 473); this.packDataListBox.TabIndex = 4; this.packDataListBox.SelectedIndexChanged += new System.EventHandler(this.packDataListBox_SelectedIndexChanged); // // imgViewerTab // - this.imgViewerTab.BackColor = System.Drawing.Color.DimGray; + this.imgViewerTab.BackColor = System.Drawing.Color.Black; this.imgViewerTab.Controls.Add(this.imageViewerInfo); this.imgViewerTab.Controls.Add(this.imageViewerPlayAnim); this.imgViewerTab.Controls.Add(this.imageViewPictureBox); @@ -566,9 +569,9 @@ // imageViewerPlayAnim // this.imageViewerPlayAnim.Dock = System.Windows.Forms.DockStyle.Bottom; - this.imageViewerPlayAnim.Location = new System.Drawing.Point(203, 441); + this.imageViewerPlayAnim.Location = new System.Drawing.Point(201, 441); this.imageViewerPlayAnim.Name = "imageViewerPlayAnim"; - this.imageViewerPlayAnim.Size = new System.Drawing.Size(729, 35); + this.imageViewerPlayAnim.Size = new System.Drawing.Size(731, 35); this.imageViewerPlayAnim.TabIndex = 2; this.imageViewerPlayAnim.Text = "Play Animation"; this.imageViewerPlayAnim.UseVisualStyleBackColor = true; @@ -578,39 +581,53 @@ // this.imageViewPictureBox.BackColor = System.Drawing.Color.FromArgb(((int) (((byte) (64)))), ((int) (((byte) (64)))), ((int) (((byte) (64))))); this.imageViewPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.imageViewPictureBox.Location = new System.Drawing.Point(203, 3); + this.imageViewPictureBox.Location = new System.Drawing.Point(201, 3); this.imageViewPictureBox.Name = "imageViewPictureBox"; - this.imageViewPictureBox.Size = new System.Drawing.Size(729, 473); + this.imageViewPictureBox.Size = new System.Drawing.Size(731, 473); this.imageViewPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; this.imageViewPictureBox.TabIndex = 1; this.imageViewPictureBox.TabStop = false; // // imagesTreeView // + this.imagesTreeView.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.imagesTreeView.Dock = System.Windows.Forms.DockStyle.Left; this.imagesTreeView.Location = new System.Drawing.Point(3, 3); this.imagesTreeView.Name = "imagesTreeView"; - this.imagesTreeView.Size = new System.Drawing.Size(200, 473); - this.imagesTreeView.TabIndex = 0; + this.imagesTreeView.Size = new System.Drawing.Size(198, 473); + this.imagesTreeView.TabIndex = 1; this.imagesTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.advancedTreeView_AfterSelect); // // soundViewTab // this.soundViewTab.BackColor = System.Drawing.Color.Black; + this.soundViewTab.Controls.Add(this.stopSoundBtn); this.soundViewTab.Controls.Add(this.soundList); this.soundViewTab.Controls.Add(this.playSoundBtn); this.soundViewTab.Location = new System.Drawing.Point(4, 24); this.soundViewTab.Name = "soundViewTab"; + this.soundViewTab.Padding = new System.Windows.Forms.Padding(3); this.soundViewTab.Size = new System.Drawing.Size(935, 479); this.soundViewTab.TabIndex = 6; this.soundViewTab.Text = "Sounds"; // + // stopSoundBtn + // + this.stopSoundBtn.Location = new System.Drawing.Point(328, 3); + this.stopSoundBtn.Name = "stopSoundBtn"; + this.stopSoundBtn.Size = new System.Drawing.Size(113, 50); + this.stopSoundBtn.TabIndex = 2; + this.stopSoundBtn.Text = "Stop Sound"; + this.stopSoundBtn.UseVisualStyleBackColor = true; + this.stopSoundBtn.Click += new System.EventHandler(this.stopSoundBtn_Click); + // // soundList // + this.soundList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.soundList.Dock = System.Windows.Forms.DockStyle.Left; - this.soundList.Location = new System.Drawing.Point(0, 0); + this.soundList.Location = new System.Drawing.Point(3, 3); this.soundList.Name = "soundList"; - this.soundList.Size = new System.Drawing.Size(200, 479); + this.soundList.Size = new System.Drawing.Size(198, 473); this.soundList.TabIndex = 1; this.soundList.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.soundList_AfterSelect); // @@ -633,6 +650,7 @@ this.cryptKeyTab.Controls.Add(this.charBox); this.cryptKeyTab.Location = new System.Drawing.Point(4, 24); this.cryptKeyTab.Name = "cryptKeyTab"; + this.cryptKeyTab.Padding = new System.Windows.Forms.Padding(3); this.cryptKeyTab.Size = new System.Drawing.Size(935, 479); this.cryptKeyTab.TabIndex = 3; this.cryptKeyTab.Text = "CryptoKey"; @@ -640,9 +658,9 @@ // minusCharButton // this.minusCharButton.Dock = System.Windows.Forms.DockStyle.Left; - this.minusCharButton.Location = new System.Drawing.Point(0, 21); + this.minusCharButton.Location = new System.Drawing.Point(3, 24); this.minusCharButton.Name = "minusCharButton"; - this.minusCharButton.Size = new System.Drawing.Size(20, 458); + this.minusCharButton.Size = new System.Drawing.Size(20, 452); this.minusCharButton.TabIndex = 3; this.minusCharButton.Text = "-"; this.minusCharButton.UseVisualStyleBackColor = true; @@ -651,9 +669,9 @@ // plusCharBtn // this.plusCharBtn.Dock = System.Windows.Forms.DockStyle.Right; - this.plusCharBtn.Location = new System.Drawing.Point(915, 21); + this.plusCharBtn.Location = new System.Drawing.Point(912, 24); this.plusCharBtn.Name = "plusCharBtn"; - this.plusCharBtn.Size = new System.Drawing.Size(20, 458); + this.plusCharBtn.Size = new System.Drawing.Size(20, 452); this.plusCharBtn.TabIndex = 2; this.plusCharBtn.Text = "+"; this.plusCharBtn.UseVisualStyleBackColor = true; @@ -665,19 +683,19 @@ this.hexBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.hexBox1.Font = new System.Drawing.Font("Segoe UI", 9F); this.hexBox1.LineInfoVisible = true; - this.hexBox1.Location = new System.Drawing.Point(0, 21); + this.hexBox1.Location = new System.Drawing.Point(3, 24); this.hexBox1.Name = "hexBox1"; this.hexBox1.ShadowSelectionColor = System.Drawing.Color.FromArgb(((int) (((byte) (100)))), ((int) (((byte) (60)))), ((int) (((byte) (188)))), ((int) (((byte) (255))))); - this.hexBox1.Size = new System.Drawing.Size(935, 458); + this.hexBox1.Size = new System.Drawing.Size(929, 452); this.hexBox1.StringViewVisible = true; this.hexBox1.TabIndex = 1; // // charBox // this.charBox.Dock = System.Windows.Forms.DockStyle.Top; - this.charBox.Location = new System.Drawing.Point(0, 0); + this.charBox.Location = new System.Drawing.Point(3, 3); this.charBox.Name = "charBox"; - this.charBox.Size = new System.Drawing.Size(935, 21); + this.charBox.Size = new System.Drawing.Size(929, 21); this.charBox.TabIndex = 0; this.charBox.Text = "54"; this.charBox.TextChanged += new System.EventHandler(this.charBox_TextChanged); @@ -685,36 +703,25 @@ // pluginTab // this.pluginTab.BackColor = System.Drawing.Color.Black; - this.pluginTab.Controls.Add(this.pluginLogBox); this.pluginTab.Controls.Add(this.activatePluginBtn); this.pluginTab.Controls.Add(this.pluginsList); this.pluginTab.Location = new System.Drawing.Point(4, 24); this.pluginTab.Name = "pluginTab"; + this.pluginTab.Padding = new System.Windows.Forms.Padding(3); this.pluginTab.Size = new System.Drawing.Size(935, 479); this.pluginTab.TabIndex = 5; this.pluginTab.Text = "Plugins"; // - // pluginLogBox - // - this.pluginLogBox.Dock = System.Windows.Forms.DockStyle.Right; - this.pluginLogBox.Location = new System.Drawing.Point(530, 0); - this.pluginLogBox.Multiline = true; - this.pluginLogBox.Name = "pluginLogBox"; - this.pluginLogBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.pluginLogBox.Size = new System.Drawing.Size(405, 448); - this.pluginLogBox.TabIndex = 2; - // // activatePluginBtn // this.activatePluginBtn.AutoSize = true; this.activatePluginBtn.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.activatePluginBtn.Dock = System.Windows.Forms.DockStyle.Bottom; this.activatePluginBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.activatePluginBtn.Font = new System.Drawing.Font("Feast of Flesh BB", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte) (77))); + this.activatePluginBtn.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte) (204))); this.activatePluginBtn.ForeColor = System.Drawing.Color.FromArgb(((int) (((byte) (255)))), ((int) (((byte) (128)))), ((int) (((byte) (0))))); - this.activatePluginBtn.Location = new System.Drawing.Point(252, 448); + this.activatePluginBtn.Location = new System.Drawing.Point(207, 6); this.activatePluginBtn.Name = "activatePluginBtn"; - this.activatePluginBtn.Size = new System.Drawing.Size(683, 31); + this.activatePluginBtn.Size = new System.Drawing.Size(101, 31); this.activatePluginBtn.TabIndex = 1; this.activatePluginBtn.Text = "Activate"; this.activatePluginBtn.UseVisualStyleBackColor = true; @@ -722,12 +729,13 @@ // // pluginsList // + this.pluginsList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pluginsList.Dock = System.Windows.Forms.DockStyle.Left; this.pluginsList.FormattingEnabled = true; this.pluginsList.ItemHeight = 15; - this.pluginsList.Location = new System.Drawing.Point(0, 0); + this.pluginsList.Location = new System.Drawing.Point(3, 3); this.pluginsList.Name = "pluginsList"; - this.pluginsList.Size = new System.Drawing.Size(252, 479); + this.pluginsList.Size = new System.Drawing.Size(198, 473); this.pluginsList.TabIndex = 0; // // packDataDialog @@ -763,6 +771,8 @@ this.ResumeLayout(false); } + private System.Windows.Forms.Button stopSoundBtn; + private System.Windows.Forms.TreeView soundList; private System.Windows.Forms.Button playSoundBtn; @@ -776,8 +786,6 @@ private System.Windows.Forms.Label imageViewerInfo; - public System.Windows.Forms.TextBox pluginLogBox; - private System.Windows.Forms.Button activatePluginBtn; private System.Windows.Forms.ListBox pluginsList; diff --git a/CTFAK/GUI/MainForm.cs b/CTFAK/GUI/MainForm.cs index 802d045..b7328cd 100644 --- a/CTFAK/GUI/MainForm.cs +++ b/CTFAK/GUI/MainForm.cs @@ -859,17 +859,12 @@ namespace CTFAK.GUI } - + private bool _isAudioPlaying; private void playSoundBtn_Click(object sender, EventArgs e) { _soundPlayer.Stream = new MemoryStream(Exe.Instance.GameData.GameChunks.GetChunk().Items[soundList.SelectedNode.Index].Data); _soundPlayer.Play(); - - - - - } private void soundList_AfterSelect(object sender, TreeViewEventArgs e) @@ -892,6 +887,11 @@ namespace CTFAK.GUI } } } + + private void stopSoundBtn_Click(object sender, EventArgs e) + { + _soundPlayer.Stop(); + } } } diff --git a/CTFAK/PluginAPI/PluginAPI.cs b/CTFAK/PluginAPI/PluginAPI.cs index 4d7cb48..28d8e6f 100644 --- a/CTFAK/PluginAPI/PluginAPI.cs +++ b/CTFAK/PluginAPI/PluginAPI.cs @@ -62,14 +62,7 @@ namespace CTFAK.PluginAPI throw new NotImplementedException("Critical error "); } - public static void Message(string msg, bool showTime = true) - { - var date = DateTime.Now; - if (showTime) - Program.MyForm.pluginLogBox.AppendText( - $"[{date.Hour,2}:{date.Minute,2}:{date.Second,2}:{date.Millisecond,3}] " + msg + "\r\n"); - else Program.MyForm.pluginLogBox.AppendText(msg + "\r\n"); - } + } diff --git a/CTFAK/Utils/Decryption.cs b/CTFAK/Utils/Decryption.cs index 2dbfd42..1ca6cea 100644 --- a/CTFAK/Utils/Decryption.cs +++ b/CTFAK/Utils/Decryption.cs @@ -84,7 +84,7 @@ namespace CTFAK.Utils return decodedChunk; } - private const string _dllPath = "Decrypter-x64.dll"; + private const string _dllPath = "x64\\Decrypter-x64.dll"; [DllImport(_dllPath, EntryPoint = "decode_chunk", CharSet = CharSet.Auto)] public static extern IntPtr decode_chunk(IntPtr chunkData, int chunkSize, byte magicChar, IntPtr wrapperKey); diff --git a/Dependencies/Decrypter-x64.dll b/Dependencies/Decrypter-x64.dll index 2171e5dd7c7e11bf5ebeed12159d25f478fa2bad..5f282702bb03ef11d7184d19c80927b47f919764 100644 GIT binary patch literal 3 KcmaFAdp`gL1p;aS literal 19456 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 literal 0 HcmV?d00001