diff --git a/NetMFAPatcher/MMFParser/Data/MFA.cs b/NetMFAPatcher/MMFParser/Data/MFA.cs index c8259ff..adb2566 100644 --- a/NetMFAPatcher/MMFParser/Data/MFA.cs +++ b/NetMFAPatcher/MMFParser/Data/MFA.cs @@ -164,11 +164,13 @@ namespace DotNetCTFDumper.MMFParser.Data writer.AutoWriteUnicode(Aboutbox); writer.WriteInt32(0);//anaconda writer.WriteInt32(0);//binary files are not supported because i am lazy asshole + Controls.Write(writer); - Menu = null; //cunt + + //Menu = null; //TODO:Menu if (Menu != null) { - byte[] menuData = new byte[15]; //Menu.Generate; + byte[] menuData = new byte[1]; //Menu.Generate; writer.WriteInt32(menuData.Length); writer.WriteBytes(menuData); } @@ -176,6 +178,7 @@ namespace DotNetCTFDumper.MMFParser.Data { writer.WriteInt32(0); } + return; writer.WriteInt32(windowMenuIndex); writer.WriteInt32(menuImages.Length); foreach (var item in menuImages) diff --git a/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs b/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs index 9ad8b99..e4a3a7d 100644 --- a/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs +++ b/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs @@ -6,7 +6,7 @@ namespace DotNetCTFDumper.MMFParser.Decompiling { public static class MFAGenerator { - public static readonly string TemplatePath = @"C:\Users\ivani\Desktop\CTFResearch\TestWriting.mfa"; + public static readonly string TemplatePath = @"C:\Users\ivani\Desktop\CTFResearch\testreader.mfa"; public static void BuildMFA() { @@ -29,6 +29,7 @@ namespace DotNetCTFDumper.MMFParser.Decompiling { var mfaReader = new ByteReader(TemplatePath, FileMode.Open); var template = new MFA(mfaReader); + Settings.DoMFA = true; template.Read(); var mfaWriter = new ByteWriter("outTest.mfa", FileMode.Create); template.Write(mfaWriter); diff --git a/NetMFAPatcher/Program.cs b/NetMFAPatcher/Program.cs index 06ff8b3..8d96db7 100644 --- a/NetMFAPatcher/Program.cs +++ b/NetMFAPatcher/Program.cs @@ -24,6 +24,8 @@ namespace DotNetCTFDumper var handle = Helper.GetConsoleWindow(); Helper.ShowWindow(handle, Helper.SW_HIDE); InitNativeLibrary(); + MFAGenerator.ReadTestMFA(); + Environment.Exit(0); var path = ""; var verbose = false; diff --git a/NetMFAPatcher/Utils/ByteWriter.cs b/NetMFAPatcher/Utils/ByteWriter.cs index b0c806f..736ae80 100644 --- a/NetMFAPatcher/Utils/ByteWriter.cs +++ b/NetMFAPatcher/Utils/ByteWriter.cs @@ -98,6 +98,12 @@ namespace DotNetCTFDumper.Utils } + public void WriteWriter(ByteWriter toWrite) + { + byte[] data = ((MemoryStream) toWrite.BaseStream).GetBuffer(); + Array.Resize(ref data,(int) toWrite.Size()); + this.WriteBytes(data); + } diff --git a/NetMFAPatcher/Utils/Helper.cs b/NetMFAPatcher/Utils/Helper.cs index e637ec3..b680185 100644 --- a/NetMFAPatcher/Utils/Helper.cs +++ b/NetMFAPatcher/Utils/Helper.cs @@ -289,15 +289,6 @@ namespace DotNetCTFDumper.Utils return result; } - public static void WriteWriter(this ByteWriter writer, ByteWriter toWrite) - { - var endPos = toWrite.Tell(); - toWrite.Seek(0); - for (int i = 0; i < endPos; i++) - { - writer.WriteInt8(((MemoryStream)(toWrite.BaseStream)).GetBuffer()[i]); - } - - } + } } \ No newline at end of file