Better logging, MFA Generator will now download template from github

master
1987kostya 5 years ago
parent b839afddb1
commit eef23138f1

@ -105,7 +105,7 @@ namespace DotNetCTFDumper.GUI
}; };
KeyPreview = true; KeyPreview = true;
tabControl1.Selecting += tabControl1_Selecting; tabControl1.Selecting += tabControl1_Selecting;
tabControl1.TabPages.Remove(mfaTab); //tabControl1.TabPages.Remove(mfaTab);
} }

@ -87,7 +87,7 @@ namespace DotNetCTFDumper.MMFParser.EXE
case ChunkFlags.Encrypted: case ChunkFlags.Encrypted:
ChunkData = Decryption.DecodeChunk(exeReader.ReadBytes(Size),Size); ChunkData = Decryption.DecodeChunk(exeReader.ReadBytes(Size),Size);
break; break;
case ChunkFlags.CompressedAndEncrypyed: case ChunkFlags.CompressedAndEncrypted:
ChunkData = Decryption.DecodeMode3(exeReader.ReadBytes(Size), Size,Id,out DecompressedSize); ChunkData = Decryption.DecodeMode3(exeReader.ReadBytes(Size), Size,Id,out DecompressedSize);
break; break;
case ChunkFlags.Compressed: case ChunkFlags.Compressed:
@ -159,7 +159,7 @@ namespace DotNetCTFDumper.MMFParser.EXE
NotCompressed = 0, NotCompressed = 0,
Compressed = 1, Compressed = 1,
Encrypted = 2, Encrypted = 2,
CompressedAndEncrypyed = 3 CompressedAndEncrypted = 3
} }
public ChunkLoader LoadChunk(Chunk chunk) public ChunkLoader LoadChunk(Chunk chunk)

@ -257,7 +257,7 @@ namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
_transparent = imageReader.ReadBytes(4); _transparent = imageReader.ReadBytes(4);
if(Settings.twofiveplus)Logger.Log($"Loading image {Handle.ToString(),4} Size: {_width,4}x{_height,4}"); if(Settings.twofiveplus)Logger.Log($"Loading image {Handle.ToString(),4} Size: {_width,4}x{_height,4}");
byte[] imageData; byte[] imageData;
Flags["LZX"] = false; if(Settings.twofiveplus) Flags["LZX"] = false;
if (Flags["LZX"]) if (Flags["LZX"])
{ {
@ -301,12 +301,12 @@ namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
case 8: case 8:
{ {
imageReader.Seek(start+Size); imageReader.Seek(start+Size);
return;
(_colorArray, bytesRead) = ImageHelper.Read32(imageData, _width, _height); (_colorArray, bytesRead) = ImageHelper.Read32(imageData, _width, _height);
break; break;
} }
default: default:
{ {
Logger.Log("Unknown Color Mode");
break; break;
} }

@ -52,10 +52,10 @@ namespace DotNetCTFDumper.MMFParser.EXE.Loaders
}); });
public int CountOfObjs; public int CountOfObjs;
int _top; // int _top;
int _bottom; // int _bottom;
int _left; // int _left;
int _right; // int _right;
public ChunkList Chunks; public ChunkList Chunks;
public FrameHeader Header; public FrameHeader Header;
public ObjectInstances Objects; public ObjectInstances Objects;

@ -1,5 +1,8 @@
using System; using System;
using System.IO; using System.IO;
using System.IO.Pipes;
using System.Net;
using System.Windows.Forms;
using DotNetCTFDumper.MMFParser.EXE; using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils; using DotNetCTFDumper.Utils;
@ -8,12 +11,34 @@ namespace DotNetCTFDumper.MMFParser.Translation
public static class MFAGenerator public static class MFAGenerator
{ {
public static readonly string TemplatePath = @"template.mfa"; public const string TemplatePath = @"template.mfa";
public const string TemplateLink = @"https://github.com/CTFAK/CTFAK/raw/master/Dependencies/template.mfa";
public static MFA.MFA BuildMFA() public static MFA.MFA BuildMFA()
{ {
ByteReader mfaReader;
if (!File.Exists(TemplatePath))
{
var dlg = MessageBox.Show("Template MFA not found\nUse github version?", "Error",MessageBoxButtons.YesNo);
if (dlg == DialogResult.No)
{
Logger.Log("MFA Generation Error");
return null;
}
else if (dlg == DialogResult.Yes)
{
using (var wc = new WebClient())
{
Logger.Log("Donwloading MFA from "+TemplateLink);
mfaReader=new ByteReader(wc.DownloadData(TemplateLink));
}
}
else return null;
}
else mfaReader = new ByteReader(TemplatePath, FileMode.Open);
Settings.DoMFA = true; Settings.DoMFA = true;
var mfaReader = new ByteReader(TemplatePath, FileMode.Open);
var template = new MFA.MFA(mfaReader); var template = new MFA.MFA(mfaReader);
Pame2Mfa.Message("Loading Template"); Pame2Mfa.Message("Loading Template");
template.Read(); //Loading template template.Read(); //Loading template

@ -347,6 +347,7 @@ namespace DotNetCTFDumper.MMFParser.Translation
public static void Message(string msg) public static void Message(string msg)
{ {
OnMessage?.Invoke(msg); OnMessage?.Invoke(msg);
Logger.Log(msg);
} }

@ -3,6 +3,7 @@ using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
using DotNetCTFDumper.GUI; using DotNetCTFDumper.GUI;
using DotNetCTFDumper.MMFParser.EXE; using DotNetCTFDumper.MMFParser.EXE;
@ -26,12 +27,10 @@ namespace DotNetCTFDumper
// MFAGenerator.ReadTestMFA(); // MFAGenerator.ReadTestMFA();
// Environment.Exit(0); // Environment.Exit(0);
var path = "";
var verbose = false;
var dumpImages = true;
var dumpSounds = true;
AppDomain.CurrentDomain.FirstChanceException += (sender, eventArgs) => AppDomain.CurrentDomain.FirstChanceException += (sender, eventArgs) =>
{ {
if (eventArgs.Exception is ThreadAbortException) return;
Logger.Log("ERROR: "); Logger.Log("ERROR: ");
Logger.Log(eventArgs.Exception.ToString()); Logger.Log(eventArgs.Exception.ToString());
}; };

Loading…
Cancel
Save