From 9f9a3f1d7f87b3f1e41685882deca748c3ecef0f Mon Sep 17 00:00:00 2001
From: JDM170 <30170278+JDM170@users.noreply.github.com>
Date: Sun, 13 Sep 2020 19:34:35 +0700
Subject: [PATCH] Partial file coding (C#)
Signed-off-by: JDM170 <30170278+JDM170@users.noreply.github.com>
---
.gitignore | 2 +
Program.cs | 74 +
Properties/AssemblyInfo.cs | 27 +
README.md | 1 +
app.config | 6 +
model_coder.Settings | 1 +
model_coder.csproj | 69 +
model_coder.sdsettings | 2 +
model_coder.sln | 18 +
tea.cs | 77 ++
test/partial_file_decode.lua | 32 +
test/partial_file_encode | Bin 0 -> 1341364 bytes
test/partial_file_encode.enc | 2474 ++++++++++++++++++++++++++++++++++
utils.cs | 60 +
14 files changed, 2843 insertions(+)
create mode 100644 .gitignore
create mode 100644 Program.cs
create mode 100644 Properties/AssemblyInfo.cs
create mode 100644 README.md
create mode 100644 app.config
create mode 100644 model_coder.Settings
create mode 100644 model_coder.csproj
create mode 100644 model_coder.sdsettings
create mode 100644 model_coder.sln
create mode 100644 tea.cs
create mode 100644 test/partial_file_decode.lua
create mode 100644 test/partial_file_encode
create mode 100644 test/partial_file_encode.enc
create mode 100644 utils.cs
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cd42ee3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+bin/
+obj/
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..ce35399
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,74 @@
+/*
+ * Created by SharpDevelop.
+ * User: JDM17
+ * Date: 23.09.2020
+ * Time: 17:48
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.IO;
+using Tea;
+using Utils;
+
+namespace ModelCoder
+{
+ class Program
+ {
+ private static readonly int encodeSize = 3000;
+
+ private static bool encodeFile(string path, uint[] key)
+ {
+ Console.WriteLine("[OUTPUT] Reading: " + path);
+ byte[] file_bytes;
+ try {
+ file_bytes = File.ReadAllBytes(path);
+ } catch {
+ Console.WriteLine("[OUTPUT] File '" + path + "' not found");
+ return false;
+ }
+
+ ITeaCoding tea = new TeaCoding();
+ var block = new uint[2];
+ for (uint i = 0; i < encodeSize; i += 2) {
+ Console.WriteLine(i + " start iteration");
+ block[0] = file_bytes[i];
+ block[1] = file_bytes[i + 1];
+ Console.WriteLine(i + " start encoding");
+ tea.code(block, key);
+ }
+
+ return true;
+ }
+
+ [STAThread]
+ static void Main(string[] args)
+ {
+ IUtil util = new Util();
+
+ string fpath;
+ if (args.Length > 0) {
+ fpath = args[0];
+ } else {
+ Console.WriteLine("[OUTPUT] You can open file(s) with this program");
+ Console.WriteLine("[OUTPUT] Or drag'n'drop on it");
+ Console.Write("[INPUT] Enter filename (without spaces): ");
+ fpath = Console.ReadLine();
+ }
+
+ Console.Write("[INPUT] Enter key: ");
+ uint[] uKey = util.ConvertKey(Console.ReadLine());
+
+ Console.WriteLine("[OUTPUT] Reading file(s)...");
+ if (args.Length > 1) {
+ foreach (string i in args)
+ encodeFile(i, uKey);
+ } else {
+ encodeFile(fpath, uKey);
+ }
+
+ Console.Write("Press any key to continue . . . ");
+ Console.ReadKey(true);
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6aac21d
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+#region Using directives
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+#endregion
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle ("model_coder")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("model_coder")]
+[assembly: AssemblyCopyright ("Copyright 2020")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+// This sets the default COM visibility of types in the assembly to invisible.
+// If you need to expose a type to COM, use [ComVisible(true)] on that type.
+[assembly: ComVisible (false)]
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all the values or you can use the default the Revision and
+// Build Numbers by using the '*' as shown below:
+[assembly: AssemblyVersion ("1.0.*")]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6083412
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+#### Thanks [Toliak](https://github.com/Toliak) for his [MTA-TEA-Encoder](https://github.com/Toliak/MTA-TEA-Encoder)
diff --git a/app.config b/app.config
new file mode 100644
index 0000000..970c80b
--- /dev/null
+++ b/app.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/model_coder.Settings b/model_coder.Settings
new file mode 100644
index 0000000..6f1dade
--- /dev/null
+++ b/model_coder.Settings
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/model_coder.csproj b/model_coder.csproj
new file mode 100644
index 0000000..27d88f3
--- /dev/null
+++ b/model_coder.csproj
@@ -0,0 +1,69 @@
+
+
+
+ {794C3722-03FF-400A-A0EA-DD5FD78AE01D}
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Debug
+ AnyCPU
+ Exe
+ model_coder
+ model_coder
+ v4.0
+ Properties
+ False
+ False
+ False
+ OnBuildSuccess
+ False
+ False
+ False
+ obj\$(Configuration)\
+ 4
+ False
+ C:\Users\JDM17\AppData\Roaming\ICSharpCode\SharpDevelop5\Settings.SourceAnalysis
+
+
+ x86
+ 4194304
+ False
+ Auto
+ 4096
+
+
+ bin\Debug\
+ True
+ Full
+ False
+ True
+ DEBUG;TRACE
+ obj\
+ Project
+
+
+ bin\Release\
+ False
+ None
+ True
+ False
+ TRACE
+
+
+
+ 4.0
+
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/model_coder.sdsettings b/model_coder.sdsettings
new file mode 100644
index 0000000..38f7991
--- /dev/null
+++ b/model_coder.sdsettings
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/model_coder.sln b/model_coder.sln
new file mode 100644
index 0000000..9b160d0
--- /dev/null
+++ b/model_coder.sln
@@ -0,0 +1,18 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+# SharpDevelop 5.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "model_coder", "model_coder.csproj", "{E7DCB830-5ACF-4B60-A14A-525047F074C0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E7DCB830-5ACF-4B60-A14A-525047F074C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E7DCB830-5ACF-4B60-A14A-525047F074C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E7DCB830-5ACF-4B60-A14A-525047F074C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E7DCB830-5ACF-4B60-A14A-525047F074C0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/tea.cs b/tea.cs
new file mode 100644
index 0000000..fb54fa0
--- /dev/null
+++ b/tea.cs
@@ -0,0 +1,77 @@
+/*
+ * Created by SharpDevelop.
+ * User: JDM17
+ * Date: 23.09.2020
+ * Time: 17:50
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+
+namespace Tea
+{
+ public interface ITeaCoding
+ {
+ void code(uint[] v, uint[] k);
+ //void decode(uint[] v, uint[] k);
+ }
+ public partial class TeaCoding: ITeaCoding
+ {
+ private readonly uint c_delta = 0x9E3779B9;
+
+ /*
+ public void encode(uint[] v, uint[] k) {
+ uint v0 = v[0], v1 = v[1];
+ uint sum = 0;
+ //for(int i = 0; i < 32; i++) {
+ for(uint i = 32; i > 0; i--) {
+ //v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
+ //sum += c_delta;
+ //v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum >> 11) & 3]);
+
+ //sum += c_delta;
+ //v0 += (v1 << 4) + k[0] ^ v1 + sum ^ (v1 >> 5) + k[1];
+ //v1 += (v0 << 4) + k[2] ^ v0 + sum ^ (v0 >> 5) + k[3];
+
+ v0 += (v1 << 4 ^ v1 >> 5) + v1 ^ sum + k[sum & 3];
+ sum += c_delta;
+ v1 += (v0 << 4 ^ v0 >> 5) + v0 ^ sum + k[sum >> 11 & 3];
+ }
+ v[0] = v0;
+ v[1] = v1;
+ }
+ */
+ public void code(uint[] v, uint[] k)
+ {
+ uint y = v[0];
+ uint z = v[1];
+ uint sum = 0;
+ uint n = 32;
+
+ while (n-- > 0)
+ {
+ y += (z << 4 ^ z >> 5) + z ^ sum + k[sum & 3];
+ sum += c_delta;
+ z += (y << 4 ^ y >> 5) + y ^ sum + k[sum >> 11 & 3];
+ }
+
+ v[0] = y;
+ v[1] = z;
+ }
+
+ /*
+ private readonly uint c_sum = 0xC6EF3720;
+ public void decode(uint[] v, uint[] k) {
+ uint v0 = v[0], v1 = v[1];
+ uint sum = c_sum;
+ for (int i = 0; i < 32; i++) {
+ v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum >> 11) & 3]);
+ sum -= c_delta;
+ v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
+ }
+ v[0] = v0;
+ v[1] = v1;
+ }
+ */
+ }
+}
diff --git a/test/partial_file_decode.lua b/test/partial_file_decode.lua
new file mode 100644
index 0000000..d20ca71
--- /dev/null
+++ b/test/partial_file_decode.lua
@@ -0,0 +1,32 @@
+
+local key = "1234" -- Model key
+local fileName = "partial_file_encode" -- File name
+local encodeSize = 36000 -- Encoding size (3000*12)
+
+-- Reading crypted file
+local file = fileOpen(fileName .. ".enc")
+local encodedFileData = fileRead(file, encodeSize)
+fileSetPos(file, encodeSize)
+local originalFileData = fileRead(file, fileGetSize(file) - encodeSize)
+fileClose(file)
+
+-- Decoding file data
+local block = ""
+local decoded = ""
+local encodedKey = string.sub(utf8.lower(md5(key)), 1, 16)
+for i = 1, encodeSize, 12 do
+ block = teaDecode(string.sub(encodedFileData, i, i + 12), encodedKey)
+ decoded = decoded .. block
+end
+
+-- Writing uncrypted data to clean file
+file = fileCreate(fileName .. ".dec")
+fileWrite(file, decoded .. originalFileData)
+fileClose(file)
+
+originalFileData = nil
+encodedFileData = nil
+encodedKey = nil
+decoded = nil
+block = nil
+file = nil
diff --git a/test/partial_file_encode b/test/partial_file_encode
new file mode 100644
index 0000000000000000000000000000000000000000..45d633a30b88ab323015b3360bcedf2c1694d752
GIT binary patch
literal 1341364
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