diff --git a/App.config b/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Form1.Designer.cs b/Form1.Designer.cs
new file mode 100644
index 0000000..1aaef35
--- /dev/null
+++ b/Form1.Designer.cs
@@ -0,0 +1,62 @@
+namespace VAG_FRF_Extractor
+{
+ partial class Form1
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором форм Windows
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ this.button_OpenFile = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // button_OpenFile
+ //
+ this.button_OpenFile.Location = new System.Drawing.Point(12, 12);
+ this.button_OpenFile.Name = "button_OpenFile";
+ this.button_OpenFile.Size = new System.Drawing.Size(163, 84);
+ this.button_OpenFile.TabIndex = 0;
+ this.button_OpenFile.Text = "Open file";
+ this.button_OpenFile.UseVisualStyleBackColor = true;
+ this.button_OpenFile.Click += new System.EventHandler(this.Button_OpenFile_Click);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(187, 108);
+ this.Controls.Add(this.button_OpenFile);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "Form1";
+ this.Text = "VAG FRF Extractor";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button_OpenFile;
+ }
+}
+
diff --git a/Form1.cs b/Form1.cs
new file mode 100644
index 0000000..927f16e
--- /dev/null
+++ b/Form1.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Windows.Forms;
+using System.IO;
+using System.IO.Compression;
+
+namespace VAG_FRF_Extractor
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void Button_OpenFile_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ var ofd = new OpenFileDialog();
+ ofd.Filter = "FRF Files |*.frf";
+ if (ofd.ShowDialog() != DialogResult.OK) return;
+ if (File.Exists(ofd.FileName) == false) return;
+ var key = Key.GetKey();
+ var crypted_file = File.ReadAllBytes(ofd.FileName);
+ var decrypted_file = new byte[crypted_file.Length];
+ int first_seed = 0;
+ int second_seed = 1;
+ for (int i = 0; i < crypted_file.Length; i++)
+ {
+ var key_byte = key[i % key.Length];
+ first_seed = ((first_seed + key_byte) * 3) & 0xFF;
+ decrypted_file[i] = (byte)(crypted_file[i] ^ (first_seed ^ 0xFF ^ second_seed ^ key_byte));
+ second_seed = ((second_seed + 1) * first_seed) & 0xFF;
+ }
+ var fbd = new FolderBrowserDialog();
+ if (fbd.ShowDialog() != DialogResult.OK) return;
+
+ File.WriteAllBytes("decrypted.zip", decrypted_file);
+ ZipFile.ExtractToDirectory("decrypted.zip", fbd.SelectedPath);
+ File.Delete("decrypted.zip");
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message, "Error");
+ }
+ }
+ }
+}
diff --git a/Form1.resx b/Form1.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Form1.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Key.cs b/Key.cs
new file mode 100644
index 0000000..f785952
--- /dev/null
+++ b/Key.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace VAG_FRF_Extractor
+{
+ static class Key
+ {
+ private static string key = "3221602D1719426B710F11297C61084375656E727E451B43430E39475E03480C7837644D315B4B6642541A0A61115738661B346B2B6D12123807453F203E172326560F3A245273432E0B0B7372286A626D6566161F2D376B067D73710C6B6A0425685C3827426A7B5D6D4B755602403303084A0502731A24346A4918154D49594D771C350240437171467A333D6E222006257F413E6C232B38132A5F0244286F754460620A76375A702168745B7278701E456D127C203B473B7F0C7B596F0C46581108686B2C7C01037D58192A6C726F7C3F64184842653A2E6827130679683A186F44270B214D76211E5D68215C2B2B14121D5B33625D48213B2F7A567E02725B5F44333D0F7B013C181269430870011D51507165704C323E4D3A1645623C0944201316290E342D36341E2379376A7A7F452463453359016F6571703C6F3F063A795758366820773B2A1E2C32411D223642383A752D3C1B4D7C0F246B3371243439024E63660467745D6342421C726E6C51782E7C6F6B294B027B631F40536C17601B58492F416E296079252D23024C2E7A2B0812481703282B3D63530C32796B752B3B60223E75205A683B3B542245655A307D6047102B215C0A4F421933771F3B61716803622274396E365871597A390D0D055E03381E0960425A080D02050751314328181F7756732464565F5A131E4A09746B5363470E52723D06184E5B547813200B061267271E470F1F280C583E1B0B102E4079705639024166417F422F356F4E3954253A0F433E7D5E5356133E077C235051625F091D592B4D107D0240122D16590A3F37386871763969220A49164273780F075D50066146650E31632E163640133047284718484458715706055146494F4E31537D01595642012D22497014114F275367582B2E64735C4F1A3F706C7D2E20253909212B483556274334445A786E463E32027B05781B2D316929262921667F2A332905626D191B3A5E1A5973160C79742D357462077B687255573D7B5F06085002022F4C74304F2E505B5A274E610532512C6124286447040D637A1C726A08507E12712F52050B48106D253F1E2D6B2027500A72633E141019362534627847552F4213330D7E1930283A02610E587465360736754172153D7F37066A351A0C051E7B5C7F2F05400D1F293936274A6829073A2E5549661334494D6467753720085223163C400147077E211165706C0F1620523B390403551C7F62095329364C0753230711465A77474C0C5316722430520B3523497831251E275D3B555A01562A2A6477274B77187511514873335B1505504D2E2F2F5949624B2543150F7F06185E4D302556427239565835213D7A045875261031610A0F7224693C5018267A7745793470224C392209654B18674672043851170433304D2541747226347C777E36197C1F7F6F207D4C1F174A0C237D045C7969323503466B642E5E173B52387A0759246E4224146F092A2D5D50621E7E54643143514B1F4C755D292D156E64732001556251313D01284F36591A4D7F79085A153D6E4F03505D4A7A702B18247169593605155E453A11565A44542A487D60253D2A735818023D7A67631A207D4A28705E767551232C07402865422113440C52114A2E06634D7D511A263B7F1E2B382A755D3C0C426229110C355D30411C567C7B5A197601265426115D426A5D744F0D53307D1B21190674792C432011504C626F0B611063760821556E7808400D36417F587E29483A641276323B170B48362D75454D7B1023626C6D432502525E356D013E085C3D2E0C130B2F0E3D366C5C041570266010172A2C6142117F184F13396249625C0A5B461E400B043C1A250510587434666C38280C3A5503281C491A4E29605652372B5A5B1E2E65393F597A79453A3F362B7024327F634425653210545E6D2A664A050F732C795F2E71046665280F775526654638541D1D7B743E720A57273F4D502E0E726A08536E56697F3E276B52734234716D0F533867756C513406150647767F5379525940076E716E5A201D6F0C2B595A277E311F301F621964623C62415E4A6B4821354C0223665841796B75284B1C2B6D087E7A5E5867712253637C4270577E6840641F665C0E68791C1E0D4F094409481501707A0A44017741547B52146D335F152E623B0133430C6F7E5E0A4D1B1E3F0D032A0A1C42726A14550879325632370A5B3D09791B14025C5211607F67125A594C501976276C04342F4B4032582477063257592E0E016149644D5A08710D215F24092C3B164B092A6B2E7C3C3128717C593207563233207A3B7F4E01361D08537D4D224819497C0D114C794A5132016A1D6C3A507F485D02573A5F35553C20550344141D06732264210F493A7A330933214501034E29554B6A34523351645539574E684909572F0D352703062C5B5C5C467A7472272B293E412523581A6638504F280C455A117D33102A3E0D6D12410C14745B461236230263731B4B372C1243763A483A0107547F3B7E43764840026B14197E2617320940580835301C2A39516D645006237B193D0D5A6A424D65224D52243B3F07241F294A1A3D0E204A5B6A27272E724C3C281E3D4A11652233594708162D111D3C485D23330C581F385148515B7D4D695D5466785D12382533370B211D23165D19627C7A114916013D42735446641D6427471E255916433F2F6520077F45542D02160F367D1D512D21577416300C6C2462264E2C07440F586D0B0E20043C5576400C1C413F300F0D2C375201631C4111561C7C752F45235937505E56763021211C6B2E021F295B08260A157C263D25134A4F326719400728535C170F1B483E145B5C4A6165303A06567A466E40171F120867776C0C5E442F095841353D2D363948067A46586F366F052D6B417A513776560D546B52476155236C652F220711772A124519410B562C7B4B0F5C1C1475277D694F4D31226601673F0A65127D553548273442682F22237D37276E07620E4522737872175C1D1F7A383F57370C5D6B6E4D2A1501233D5C6B6D0A37530511756045555C504A1011447725385E3D565B0E1A3710296062563C386D411F6619574D4F4C397238420646507F7C1A7108603023522050627B3818213852140E0F310F18464F282E1B45284A356C122F5B427C6F640F1E2F6E48292E53335A04594C4E28296818350318116E2F506F7F3748190653233A51254F1469262C1850617033085F4A6A546245294356705869043C307009254D500614045A1A04767B0D64653F4E3D471420151951101376762A6468356C5C7E327B611F0815051D0C47720D55600B577C255009204602712D11086A5E661276016B7C0D7B75350B766053537B7A4114593E20396106701721725E735E0D5C443E2E773B441D650101775E4009542E642526072347651B3A43696A7A3B1759045B3F055147455675527F5724715F45756F52666662671B205D34397D677615482C775E447335306F504065071B642F4E2008640B18561851591C710349723718181E2B1C2F341A77630231726F2A137721112918537839541D693B154955687C077B1361620B3C16730C636C557B1A7959355E187A17273013633E3A4F654F7D61573F1C76033F536827227E351D6B5B2F3B2B1075790A702151237A436C15220F7A565552624B372B1B162F775930250D6D370A2C660919317D115D0D306174772C01125E7007492230680703770E605A112B0D07284C352A2D316C167A5C7A0235685D02771C11362D400E413F2F137D702E226E067C4B742A2B2E44112D3C185C323D263D32174F5C454D1A793B466052695049474164773C262C3F7E42226A083B320B6F645603204B746C59016A7F031F3442071A2A4A6C334A74150628115D0E297E7F316B79103961324D033E25177B15283C483E4078437B393C2E5B762D235F05704A5C76254F206E311358774122321A0C663E30581A1A753F4E5E3357752D40081E421120713436021620245E52417D5D7341121E6F4F276648727613321D765278035C121C2C62393E4948153E451915251C303941707A47105A7E40607E1A1233620F0F68401E181936303F4D68761C6939525A430B6F3D53444577342F1706317E1F55551A6E3975181B0171691F4F36502607192D437E0929314D116C184A4607562B1606500D331A0A3C5478762E1D7C0A505B1215067556536C207A3F6351682849782907076B061051206D07292016552538655B737213061A44092402060C7637291F066A27253A3936472A3041152F0F18703C4D6727725E65606E324D3A667E1230743E4F41317B7C4D064968433F156379611D3B5B3E406B4846780E3920251A247A0C4A201D1F5C49447F7D662E3F0249726B587713483E09545E31524D3428423F5B020A252D3D010B57684723155B28163D2543187F466B3F6B1F4D153326536C335E49712E073F045B112E4720575E751D0A06766C6B3630273E721F2B7B1F281C46242A2A21495712616242675E3238126F0A541816314E1B770814240F6E1C1F2262782775672B043E2D3B72596D07243C155B092D25424E33591B244A086F435A4C022F6A63283A11555A4A2E57095C597032491A5A3348582B5D3514354A11572A71496804773B43234976473867412F63036043184A124F47025E553C550F7F446C7E5711400F3A5F2D7E0A58495C2435735412272F3301753128756637473B611C5420532A3F6051316B617F553321302C2F6D4E0933557D12195C7B1941744A295529125E521C417A44337436510F1A56783E561B32264E3B7243220410483A095B1504505576331168123B543C18386C083D7202390D1620057B18792177771E2643427539025B686B127B5A5E1B765F2A68402C7E76304C0B4B05151D09275B0B432F63520F281A7D5D170748073A7F04290E183D3213601B3B534E061821780D2D1F07090303687D1C1A4541030D346026632E3E6847427E730B0A224B6E5F74291A49250671393576097B12377566040A47564841525C7C1A35333B4B1576085E2911703F7C766B146E11044C7C7D397B427825653E145C58573017401E271175534730572B05681D506E5D6A2A6147215D7C1B7B135468577B697E511259561521532E76064F743A387C6538067A76261F4A732C5703663C28463A2677732067191D3242163C56132D22665F18310E2F114A751F14081F32672F1268585F3713460E04666235584F37482607686C56673965687D514D5B5F3F0C4D3F3A0463402D0C6B08732040165E566E567F1417732101166D1739616B38453452274A6C165831514F6657122B3506776412197E510745186D347B7F5A420F4A2619193F4E531C68706569254B36101F4C242E4F603E255B266F432E6C264E40593360176B75750E2532435501464A392C2B2572493D6977065E3B2940077B7202243C3203227F6C054941407D4C3919741E5B272D08201008790962261D624D4E30440F10155D2F2822736E253F277B4A2F7766342D07573D3B2121377A505F2F376962762F5561777374044A0C3948050316245527356D4D0A69777D4D647D471D2A426E7E467970473B62166E3D37490621462706135F564C07701862726F207F39782551693834792A094A586E5E22096E624C2E575C7F7040563041607E63647E4C423028656C1128400F4F3407391365406B276B2C707D7E6F6C731772385561066D236A4A3F151F4E0D5D7778352C6E272D773517507B2805757F1346594A6D5033";
+ public static byte[] GetKey()
+ {
+ return Enumerable.Range(0, key.Length)
+ .Where(x => x % 2 == 0)
+ .Select(x => Convert.ToByte(key.Substring(x, 2), 16))
+ .ToArray();
+ }
+ }
+}
diff --git a/Program.cs b/Program.cs
new file mode 100644
index 0000000..9774e80
--- /dev/null
+++ b/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace VAG_FRF_Extractor
+{
+ static class Program
+ {
+ ///
+ /// Главная точка входа для приложения.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..3b1489a
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
+// связанных со сборкой.
+[assembly: AssemblyTitle("VAG_FRF_Extractor")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("VAG_FRF_Extractor")]
+[assembly: AssemblyCopyright("Copyright © 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, следует установить атрибут ComVisible в TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("371e4ec1-a1a7-4abb-b91d-ff617848061b")]
+
+// Сведения о версии сборки состоят из указанных ниже четырех значений:
+//
+// Основной номер версии
+// Дополнительный номер версии
+// Номер сборки
+// Редакция
+//
+// Можно задать все значения или принять номера сборки и редакции по умолчанию
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..3a6b60d
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программным средством.
+// Версия среды выполнения: 4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
+// код создан повторно.
+//
+//------------------------------------------------------------------------------
+
+namespace VAG_FRF_Extractor.Properties
+{
+
+
+ ///
+ /// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
+ ///
+ // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
+ // класс с помощью таких средств, как ResGen или Visual Studio.
+ // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
+ // с параметром /str или заново постройте свой VS-проект.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VAG_FRF_Extractor.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Переопределяет свойство CurrentUICulture текущего потока для всех
+ /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..1e289c9
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace VAG_FRF_Extractor.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/VAG_FRF_Extractor.csproj b/VAG_FRF_Extractor.csproj
new file mode 100644
index 0000000..8b9adfb
--- /dev/null
+++ b/VAG_FRF_Extractor.csproj
@@ -0,0 +1,84 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {371E4EC1-A1A7-4ABB-B91D-FF617848061B}
+ WinExe
+ VAG_FRF_Extractor
+ VAG_FRF_Extractor
+ v4.5
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VAG_FRF_Extractor.sln b/VAG_FRF_Extractor.sln
new file mode 100644
index 0000000..6f6347c
--- /dev/null
+++ b/VAG_FRF_Extractor.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28922.388
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VAG_FRF_Extractor", "VAG_FRF_Extractor.csproj", "{371E4EC1-A1A7-4ABB-B91D-FF617848061B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {371E4EC1-A1A7-4ABB-B91D-FF617848061B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {371E4EC1-A1A7-4ABB-B91D-FF617848061B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {371E4EC1-A1A7-4ABB-B91D-FF617848061B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {371E4EC1-A1A7-4ABB-B91D-FF617848061B}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {8D9BB058-91F1-4575-870D-D0163ADECDF9}
+ EndGlobalSection
+EndGlobal