WriteWriter method, ImageBank and SoundBank fixes for MFA

master
1987kostya 5 years ago
parent 47ce54ec17
commit c7797acc0a

@ -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)

@ -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);

@ -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;

@ -98,6 +98,12 @@ namespace DotNetCTFDumper.Utils
}
public void WriteWriter(ByteWriter toWrite)
{
byte[] data = ((MemoryStream) toWrite.BaseStream).GetBuffer();
Array.Resize<byte>(ref data,(int) toWrite.Size());
this.WriteBytes(data);
}

@ -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]);
}
}
}
}
Loading…
Cancel
Save