├── Appacker ├── Resources │ ├── Strings.ru.Designer.cs │ ├── Packer.exe │ ├── eye_14.png │ ├── mfc80.dll │ ├── Unpacker.exe │ ├── VerInfoLib.dll │ ├── VerInfoLib.exe │ ├── eye_red_14.png │ ├── icons │ │ ├── box-16.png │ │ ├── close-16.png │ │ ├── file-16.png │ │ ├── info-16.png │ │ ├── menu-16.png │ │ ├── tune-16.png │ │ ├── cancel-16.png │ │ ├── close_icon.png │ │ ├── file-bat-16.png │ │ ├── file-bin-16.png │ │ ├── file-cmd-16.png │ │ ├── file-exe-16.png │ │ ├── file-lnk-16.png │ │ ├── package-16.png │ │ ├── settings-16.png │ │ ├── open box icon.ico │ │ ├── open_box_icon.png │ │ ├── folder-closed-16.png │ │ ├── folder-open-16.png │ │ ├── flag-great-britain-30.png │ │ └── flag-russian-federation-30.png │ ├── password_16.png │ ├── red-warning-16.png │ ├── ProgressBarSplash.exe │ ├── UnpackerWindowless.exe │ └── Microsoft.VC80.MFC.manifest ├── Lib │ └── Infralution.Localization.dll ├── Properties │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ └── Resources.Designer.cs ├── App.config ├── FodyWeavers.xml ├── packages.config ├── Settings.cs ├── AboutForm.cs ├── RegistrySettingsProvider.cs ├── CueProvider.cs ├── IconSwapper.cs ├── IniSettingsProvider.cs ├── ToolsStorage.Designer.cs ├── AdvancedOptionsForm.cs └── AboutForm.Designer.cs ├── IconLib ├── Resources │ └── EmptyDll.dll ├── System │ └── Drawing │ │ └── IconLib │ │ ├── Exceptions │ │ ├── InvalidFileException.cs │ │ ├── InvalidICLFileException.cs │ │ ├── InvalidIconSelectionException.cs │ │ ├── ImageTooBigException.cs │ │ ├── IconNameAlreadyExistException.cs │ │ ├── ImageAlreadyExistsException.cs │ │ ├── InvalidMultiIconFileException.cs │ │ ├── InvalidIconFormatSelectionException.cs │ │ ├── InvalidMultiIconMaskBitmap.cs │ │ └── InvalidPixelFormatException.cs │ │ ├── LibraryFormats │ │ ├── ILibraryFormat.cs │ │ └── IconFormat.cs │ │ ├── ColorProcessing │ │ ├── IColorQuantizer.cs │ │ ├── IPaletteQuantizer.cs │ │ └── IDithering.cs │ │ ├── AuthorAttribute.cs │ │ ├── Resource.Designer.cs │ │ ├── BitmapEncoders │ │ ├── PNGEncoder.cs │ │ ├── BMPEncoder.cs │ │ └── ImageEncoder.cs │ │ ├── Tools.cs │ │ ├── Enums.cs │ │ ├── Resource.resx │ │ └── Win32.cs ├── Properties │ └── AssemblyInfo.cs └── IconLib.csproj ├── Screenshots ├── appacker_demo.png ├── 2018-05-06_222416.png └── 2018-08-21_190019.png ├── UnpackerSharedProject ├── box icon.ico ├── UnpackerShared.shproj ├── UnpackerSharedProject.projitems ├── PasswordForm.cs └── PasswordForm.Designer.cs ├── Packer ├── FodyWeavers.xml ├── App.config ├── packages.config ├── Properties │ └── AssemblyInfo.cs └── Packer.csproj ├── Unpacker ├── FodyWeavers.xml ├── App.config ├── packages.config ├── Properties │ └── AssemblyInfo.cs └── Unpacker.csproj ├── PackerWindowless ├── FodyWeavers.xml ├── App.config ├── packages.config ├── Properties │ └── AssemblyInfo.cs └── PackerWindowless.csproj ├── ProgressBarSplash ├── FodyWeavers.xml ├── App.config ├── Properties │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── packages.config ├── Program.cs ├── LoadingForm.cs ├── LoadingForm.Designer.cs └── ProgressBarSplash.csproj ├── UnpackerWindowless ├── FodyWeavers.xml ├── App.config ├── packages.config ├── Properties │ └── AssemblyInfo.cs └── UnpackerWindowless.csproj ├── SharedFiles ├── SharedFiles.projitems ├── SharedFiles.shproj └── Password.cs ├── PackerShared ├── PackerShared.projitems └── PackerShared.shproj ├── History of false detections as malware.md ├── IconInjector ├── Properties │ └── AssemblyInfo.cs └── IconInjector.csproj ├── .gitattributes └── .gitignore /Appacker/Resources/Strings.ru.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Appacker/Resources/Packer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/Packer.exe -------------------------------------------------------------------------------- /Appacker/Resources/eye_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/eye_14.png -------------------------------------------------------------------------------- /Appacker/Resources/mfc80.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/mfc80.dll -------------------------------------------------------------------------------- /IconLib/Resources/EmptyDll.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/IconLib/Resources/EmptyDll.dll -------------------------------------------------------------------------------- /Screenshots/appacker_demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Screenshots/appacker_demo.png -------------------------------------------------------------------------------- /Appacker/Resources/Unpacker.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/Unpacker.exe -------------------------------------------------------------------------------- /Appacker/Resources/VerInfoLib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/VerInfoLib.dll -------------------------------------------------------------------------------- /Appacker/Resources/VerInfoLib.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/VerInfoLib.exe -------------------------------------------------------------------------------- /Appacker/Resources/eye_red_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/eye_red_14.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/box-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/box-16.png -------------------------------------------------------------------------------- /Appacker/Resources/password_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/password_16.png -------------------------------------------------------------------------------- /Screenshots/2018-05-06_222416.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Screenshots/2018-05-06_222416.png -------------------------------------------------------------------------------- /Screenshots/2018-08-21_190019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Screenshots/2018-08-21_190019.png -------------------------------------------------------------------------------- /UnpackerSharedProject/box icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/UnpackerSharedProject/box icon.ico -------------------------------------------------------------------------------- /Appacker/Resources/icons/close-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/close-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/info-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/info-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/menu-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/menu-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/tune-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/tune-16.png -------------------------------------------------------------------------------- /Appacker/Resources/red-warning-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/red-warning-16.png -------------------------------------------------------------------------------- /Appacker/Resources/ProgressBarSplash.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/ProgressBarSplash.exe -------------------------------------------------------------------------------- /Appacker/Resources/icons/cancel-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/cancel-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/close_icon.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-bat-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-bat-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-bin-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-bin-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-cmd-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-cmd-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-exe-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-exe-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/file-lnk-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/file-lnk-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/package-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/package-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/settings-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/settings-16.png -------------------------------------------------------------------------------- /Appacker/Lib/Infralution.Localization.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Lib/Infralution.Localization.dll -------------------------------------------------------------------------------- /Appacker/Resources/UnpackerWindowless.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/UnpackerWindowless.exe -------------------------------------------------------------------------------- /Appacker/Resources/icons/open box icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/open box icon.ico -------------------------------------------------------------------------------- /Appacker/Resources/icons/open_box_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/open_box_icon.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/folder-closed-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/folder-closed-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/folder-open-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/folder-open-16.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/flag-great-britain-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/flag-great-britain-30.png -------------------------------------------------------------------------------- /Appacker/Resources/icons/flag-russian-federation-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SerGreen/Appacker/HEAD/Appacker/Resources/icons/flag-russian-federation-30.png -------------------------------------------------------------------------------- /Packer/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XDMessaging.Lite 6 | 7 | 8 | -------------------------------------------------------------------------------- /Unpacker/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XDMessaging.Lite 6 | 7 | 8 | -------------------------------------------------------------------------------- /Packer/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /PackerWindowless/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XDMessaging.Lite 6 | 7 | 8 | -------------------------------------------------------------------------------- /ProgressBarSplash/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XDMessaging.Lite 6 | 7 | 8 | -------------------------------------------------------------------------------- /Unpacker/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /UnpackerWindowless/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XDMessaging.Lite 6 | 7 | 8 | -------------------------------------------------------------------------------- /PackerWindowless/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ProgressBarSplash/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /UnpackerWindowless/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Appacker/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Appacker/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ProgressBarSplash/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Appacker/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Infralution.Localization 6 | IconInjector 7 | IconLib 8 | XDMessaging.Lite 9 | NDesk.Options 10 | INIFileParser 11 | 12 | 13 | -------------------------------------------------------------------------------- /Packer/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /PackerWindowless/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Unpacker/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ProgressBarSplash/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /UnpackerWindowless/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Appacker/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ProgressBarSplash/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace ProgressBarSplash 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new LoadingForm()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SharedFiles/SharedFiles.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | 4ebe08b7-c972-4cca-aceb-988bd45145ea 7 | 8 | 9 | SharedFiles 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /PackerShared/PackerShared.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | 7a11989c-acac-4e88-a5c5-6c4a7cff7a81 7 | 8 | 9 | PackerShared 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Appacker/Settings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Appacker 8 | { 9 | public class Settings 10 | { 11 | public string language; 12 | 13 | public bool isRepackable; 14 | public bool openUnpackDirectory; 15 | public MainForm.UnpackDirectory unpackDirectory; 16 | public string launchArguments; 17 | public string customFileDescription; 18 | public bool isWindowless; 19 | public bool isSplashProgressBarEnabled; 20 | 21 | public int positionTop; 22 | public int positionLeft; 23 | public int width; 24 | public int height; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /History of false detections as malware.md: -------------------------------------------------------------------------------- 1 | This app keeps getting detected as malware despite submitions to Microsoft Security Intelligence. It gets confirmed as false positive and removed from malware definitions of Winfows 10 Defender, but eventually it regresses again. 2 | I'll keep track of all detections here. 3 | 4 | | Date | Detected as | Version | 5 | | :--------: | :-------------------------- | :-----: | 6 | | 2019-09-11 | Trojan:Win32/Fuerboos.A!cl | v1.3.6 | 7 | | 2019-11-26 | Trojan:Win32/Woreflint.A!cl | v1.3.6 | 8 | | 2020-02-28 | Trojan:Win32/Wacatac.C!ml | v1.3.6 | 9 | | 2020-03-30 | Trojan:Win32/Wacatac.C!ml | v1.3.6 | 10 | | 2020-04-30 | Trojan:Win32/Occamy.AA | v1.3.6 | 11 | | 2020-12-17 | Trojan:Win32/Occamy.AA | v1.3.6 | 12 | | 2021-03-23 | Trojan:Win32/Wacatac.B!ml | v1.3.8 | 13 | | 2022-01-12 | Trojan:Win32/Woreflint.A!cl | v1.3.10 | 14 | | 2022-01-12 | Trojan:Win32/Wacatac.B!ml | v1.3.10 | 15 | -------------------------------------------------------------------------------- /SharedFiles/SharedFiles.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 4ebe08b7-c972-4cca-aceb-988bd45145ea 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /PackerShared/PackerShared.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7a11989c-acac-4e88-a5c5-6c4a7cff7a81 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /UnpackerSharedProject/UnpackerShared.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0332fcec-5a10-4fcb-a0ba-8adeb5584c7a 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Appacker/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Appacker.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /ProgressBarSplash/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ProgressBarSplash.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Appacker/AboutForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace Appacker 12 | { 13 | public partial class AboutForm : Form 14 | { 15 | public AboutForm() 16 | { 17 | InitializeComponent(); 18 | labVersion.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(3); 19 | } 20 | 21 | private void linkIconsCredit_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 22 | { 23 | System.Diagnostics.Process.Start("https://www.flaticon.com/authors/good-ware"); 24 | } 25 | 26 | private void linkIconsCredit2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 27 | { 28 | System.Diagnostics.Process.Start("https://icons8.com/icons/officexs"); 29 | } 30 | 31 | private void linkGithub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 32 | { 33 | System.Diagnostics.Process.Start("https://github.com/SerGreen/Appacker"); 34 | } 35 | 36 | private void btnDismiss_Click(object sender, EventArgs e) => Close(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Appacker/RegistrySettingsProvider.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Globalization; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace Appacker 10 | { 11 | internal static class RegistrySettingsProvider 12 | { 13 | public static CultureInfo Language 14 | { 15 | get => GetLanguage(); 16 | set => SaveLanguage(value); 17 | } 18 | 19 | private static void SaveLanguage(CultureInfo lang) 20 | { 21 | using (RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\SerGreen\Appacker", true)) 22 | { 23 | key.SetValue("Language", lang.ToString(), RegistryValueKind.String); 24 | } 25 | } 26 | 27 | private static CultureInfo GetLanguage() 28 | { 29 | using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\SerGreen\Appacker")) 30 | { 31 | string lang = key?.GetValue("Language") as string; 32 | if (lang == null) 33 | { 34 | lang = "en-US"; 35 | SaveLanguage(CultureInfo.GetCultureInfo(lang)); 36 | } 37 | 38 | return CultureInfo.GetCultureInfo(lang); 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidFileException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class InvalidFileException : Exception 23 | { 24 | #region Constructors 25 | public InvalidFileException() : base ("Format not recognized by IconLib") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidICLFileException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | 20 | namespace System.Drawing.IconLib.Exceptions 21 | { 22 | [Author("Franco, Gustavo")] 23 | public class InvalidICLFileException : Exception 24 | { 25 | #region Constructors 26 | public InvalidICLFileException() : base ("Invalid ICL file.") 27 | { 28 | } 29 | #endregion 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidIconSelectionException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class InvalidIconSelectionException : Exception 23 | { 24 | #region Constructors 25 | public InvalidIconSelectionException() : base ("Selected Icon is invalid") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/ImageTooBigException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class ImageTooBigException : Exception 23 | { 24 | #region Constructors 25 | public ImageTooBigException() : base ("Image width and height cannot be bigger than 256 pixels.") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/IconNameAlreadyExistException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class IconNameAlreadyExistException : Exception 23 | { 24 | #region Constructors 25 | public IconNameAlreadyExistException() : base ("Icon name already exist in the collection") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/ImageAlreadyExistsException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class ImageAlreadyExistsException : Exception 23 | { 24 | #region Constructors 25 | public ImageAlreadyExistsException() : base ("Image with same size and format already exists") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidMultiIconFileException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class InvalidMultiIconFileException : Exception 23 | { 24 | #region Constructors 25 | public InvalidMultiIconFileException() : base ("Invalid icon file. Signature does not match") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidIconFormatSelectionException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class InvalidIconFormatSelectionException : Exception 23 | { 24 | #region Constructors 25 | public InvalidIconFormatSelectionException() : base ("Invalid IconImageFormat selection") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/LibraryFormats/ILibraryFormat.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.IO; 21 | using System.Text; 22 | using System.Collections.Generic; 23 | 24 | namespace System.Drawing.IconLib.EncodingFormats 25 | { 26 | public interface ILibraryFormat 27 | { 28 | bool IsRecognizedFormat(Stream stream); 29 | void Save(MultiIcon singleIcon, Stream stream); 30 | MultiIcon Load(Stream stream); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/ColorProcessing/IColorQuantizer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Text; 21 | using System.Drawing.Imaging; 22 | using System.Collections.Generic; 23 | 24 | namespace System.Drawing.IconLib.ColorProcessing 25 | { 26 | [Author("Franco, Gustavo")] 27 | public interface IColorQuantizer 28 | { 29 | #region Methods 30 | Bitmap Convert(Bitmap source, PixelFormat outputFormat); 31 | #endregion 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidMultiIconMaskBitmap.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | namespace System.Drawing.IconLib.Exceptions 20 | { 21 | [Author("Franco, Gustavo")] 22 | public class InvalidMultiIconMaskBitmap : Exception 23 | { 24 | #region Constructors 25 | public InvalidMultiIconMaskBitmap() : base ("Invalid mask bitmap. Mask must be same size as the bitmap and PixelFormat must be Format1bppIndexed") 26 | { 27 | } 28 | #endregion 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/ColorProcessing/IPaletteQuantizer.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Text; 21 | using System.Drawing; 22 | using System.Drawing.Imaging; 23 | using System.Collections.Generic; 24 | 25 | namespace System.Drawing.IconLib.ColorProcessing 26 | { 27 | [Author("Franco, Gustavo")] 28 | public interface IPaletteQuantizer 29 | { 30 | #region Methods 31 | ColorPalette CreatePalette(Bitmap image, int maxColors, int bitsPerPixel); 32 | #endregion 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /UnpackerSharedProject/UnpackerSharedProject.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | 0332fcec-5a10-4fcb-a0ba-8adeb5584c7a 7 | 8 | 9 | UnpackerSharedProject 10 | 11 | 12 | 13 | 14 | 15 | 16 | Form 17 | 18 | 19 | PasswordForm.cs 20 | 21 | 22 | 23 | 24 | 25 | PasswordForm.cs 26 | 27 | 28 | PasswordForm.cs 29 | 30 | 31 | -------------------------------------------------------------------------------- /IconLib/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("IconLib")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("IconLib")] 13 | [assembly: AssemblyCopyright("Copyright © Franco, Gustavo 2006")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("648f0c95-df6f-4556-ae00-f9e17be4c056")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("0.73.0.0")] 35 | [assembly: AssemblyFileVersion("0.73.0.0")] 36 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/ColorProcessing/IDithering.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Text; 21 | using System.Drawing; 22 | using System.Drawing.IconLib; 23 | using System.Collections.Generic; 24 | 25 | namespace System.Drawing.IconLib.ColorProcessing 26 | { 27 | [Author("Franco, Gustavo")] 28 | public interface IDithering 29 | { 30 | #region Methods 31 | unsafe void Disperse(byte* pixelSource, int x, int y, byte bpp, int stride, int width, int height, Color colorEntry); 32 | #endregion 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /IconInjector/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("IconInjector")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("IconInjector")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("d7b9897a-704b-4754-bb33-f26529a23ea6")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SharedFiles/Password.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Appacker 8 | { 9 | static class Password 10 | { 11 | internal static byte[] GetPasswordHash (string password) => Obfuscate(GetStringSha256Hash(password)); 12 | 13 | internal static string GetPasswordHashString (string password) => BitConverter.ToString(GetPasswordHash(password)).Replace("-", ""); 14 | internal static string GetPasswordHashString (byte[] passwordHash) => passwordHash == null ? string.Empty : BitConverter.ToString(passwordHash).Replace("-", ""); 15 | 16 | internal static bool ComparePassword (string password, byte[] hash) => GetPasswordHash(password).SequenceEqual(hash); 17 | 18 | private static byte[] Obfuscate (byte[] data, byte xorConstant = 0x69) 19 | { 20 | for (int i = 0; i < data.Length; i++) 21 | data[i] = (byte)(data[i] ^ xorConstant); 22 | 23 | return data; 24 | } 25 | 26 | private static byte[] GetStringSha256Hash (string text) 27 | { 28 | if (string.IsNullOrEmpty(text)) 29 | return new byte[] { }; 30 | 31 | using (var sha = new System.Security.Cryptography.SHA256Managed()) 32 | { 33 | byte[] textData = Encoding.UTF8.GetBytes(text); 34 | byte[] hash = sha.ComputeHash(textData); 35 | 36 | return hash; 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ProgressBarSplash/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ProgressBarSplash")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ProgressBarSplash")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("302dac96-8b41-466b-b86c-cb5da71f0d1b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Appacker/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Appacker")] 9 | [assembly: AssemblyDescription("Application packer")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("SerGreen")] 12 | [assembly: AssemblyProduct("Appacker")] 13 | [assembly: AssemblyCopyright("Copyright © 2018-2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0618e8d3-3057-4317-8ba4-46f39eb864f3")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.11.0")] 36 | [assembly: AssemblyFileVersion("1.3.11.0")] 37 | -------------------------------------------------------------------------------- /Unpacker/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Appacker package")] 9 | [assembly: AssemblyDescription("Packed portable application inside")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("SerGreen")] 12 | [assembly: AssemblyProduct("Appacker")] 13 | [assembly: AssemblyCopyright("Copyright © 2018-2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8d85b3ea-40db-4187-a4f6-fa6263669c5b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.11.0")] 36 | [assembly: AssemblyFileVersion("1.3.11.0")] 37 | -------------------------------------------------------------------------------- /Packer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Appacker's Packer tool")] 9 | [assembly: AssemblyDescription("Tool for creating packed application")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("SerGreen")] 12 | [assembly: AssemblyProduct("Appacker")] 13 | [assembly: AssemblyCopyright("Copyright © 2018-2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("076a6452-1fa4-4995-95bf-c4e28eefd062")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.11.0")] 36 | [assembly: AssemblyFileVersion("1.3.11.0")] 37 | -------------------------------------------------------------------------------- /UnpackerWindowless/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Appacker package")] 9 | [assembly: AssemblyDescription("Packed portable application inside")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("SerGreen")] 12 | [assembly: AssemblyProduct("Appacker")] 13 | [assembly: AssemblyCopyright("Copyright © 2018-2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("8d85b3ea-40db-4187-a4f6-fa6263669c5b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.11.0")] 36 | [assembly: AssemblyFileVersion("1.3.11.0")] 37 | -------------------------------------------------------------------------------- /PackerWindowless/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Appacker's Packer tool")] 9 | [assembly: AssemblyDescription("Tool for creating packed application")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("SerGreen")] 12 | [assembly: AssemblyProduct("Appacker")] 13 | [assembly: AssemblyCopyright("Copyright © 2018-2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("076a6452-1fa4-4995-95bf-c4e28eefd062")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.11.0")] 36 | [assembly: AssemblyFileVersion("1.3.11.0")] 37 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/AuthorAttribute.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Collections.Generic; 21 | using System.Text; 22 | 23 | namespace System.Drawing.IconLib 24 | { 25 | [AttributeUsage(AttributeTargets.Class | 26 | AttributeTargets.Enum | 27 | AttributeTargets.Interface | 28 | AttributeTargets.Struct, 29 | AllowMultiple = true)] 30 | [Author("Franco, Gustavo")] 31 | internal class AuthorAttribute : Attribute 32 | { 33 | #region Constructors 34 | public AuthorAttribute(string authorName) 35 | { 36 | } 37 | #endregion 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Appacker/CueProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using System.Windows.Forms; 4 | 5 | namespace RavSoft 6 | { 7 | /// 8 | /// Provides textual cues to a text box. 9 | /// 10 | /// 11 | /// An object that provides basic logging capabilities. 12 | /// Copyright (c) 2008 Ravi Bhavnani, ravib@ravib.com 13 | /// 14 | /// This software may be freely used in any product or work, provided this 15 | /// copyright notice is maintained. To help ensure a single point of release, 16 | /// please email and bug reports, flames and suggestions to ravib@ravib.com. 17 | /// 18 | public static class CueProvider 19 | { 20 | private const int EM_SETCUEBANNER = 0x1501; 21 | 22 | [DllImport("user32.dll", CharSet = CharSet.Auto)] 23 | private static extern Int32 SendMessage 24 | (IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam); 25 | 26 | /// 27 | /// Sets a text box's cue text. 28 | /// 29 | /// The text box. 30 | /// The cue text. 31 | public static void SetCue 32 | (TextBox textBox, 33 | string cue) 34 | { 35 | SendMessage (textBox.Handle, EM_SETCUEBANNER, 0, cue); 36 | } 37 | 38 | /// 39 | /// Clears a text box's cue text. 40 | /// 41 | /// The text box 42 | public static void ClearCue 43 | (TextBox textBox) 44 | { 45 | SendMessage (textBox.Handle, EM_SETCUEBANNER, 0, string.Empty); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Exceptions/InvalidPixelFormatException.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System.Drawing.Imaging; 20 | namespace System.Drawing.IconLib.Exceptions 21 | { 22 | [Author("Franco, Gustavo")] 23 | public class InvalidPixelFormatException : Exception 24 | { 25 | #region Constructors 26 | public InvalidPixelFormatException(PixelFormat invalid, PixelFormat expected) : base (invalid != PixelFormat.Undefined ? 27 | "PixelFormat " + invalid.ToString() + " is invalid" : 28 | expected != PixelFormat.Undefined ? 29 | "PixelFormat " + expected.ToString() + " expected" : 30 | "Invalid PixelFormat") 31 | { 32 | } 33 | #endregion 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Appacker/Resources/Microsoft.VC80.MFC.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | tpIBsHBROfAlpYMDRDbXYcHmLgk= 6 | oJG2Jr4nbHQujY+GmI7Qfx6Qg9Q= 7 | dNEbvz2oqiF9HoNCWmdiGxJjccU= 8 | gouNpismXZmivnQe1U1Kt95h+DM= 9 | -------------------------------------------------------------------------------- /ProgressBarSplash/LoadingForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Diagnostics; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | using XDMessaging; 12 | 13 | namespace ProgressBarSplash 14 | { 15 | public partial class LoadingForm : Form 16 | { 17 | private IXDListener listener; 18 | 19 | public LoadingForm() 20 | { 21 | InitializeComponent(); 22 | 23 | string[] args = Environment.GetCommandLineArgs(); 24 | if (args.Contains("-packing") || args.Contains("packing")) 25 | labPacking.Visible = true; 26 | else if (args.Contains("-unpacking") || args.Contains("unpacking")) 27 | labUnpacking.Visible = true; 28 | 29 | // Setup XDMessagingClient listener to receive progress updates 30 | XDMessagingClient client = new XDMessagingClient(); 31 | listener = client.Listeners.GetListenerForMode(XDTransportMode.HighPerformanceUI); 32 | listener.RegisterChannel("AppackerProgress"); 33 | 34 | // Attach event handler for incoming messages 35 | listener.MessageReceived += (o, ea) => 36 | { 37 | if (ea.DataGram.Channel == "AppackerProgress") 38 | { 39 | // 'Done' is sent when packing/unpacking is finished => close this splash 40 | if (ea.DataGram.Message == "Done") 41 | { 42 | progressBar.Value = progressBar.Maximum; 43 | Exit(); 44 | } 45 | // Other messages are progress updates 46 | else 47 | { 48 | string[] tokens = ea.DataGram.Message.Split(' '); 49 | progressBar.Maximum = int.Parse(tokens[1]); 50 | progressBar.Value = int.Parse(tokens[0]); 51 | } 52 | } 53 | }; 54 | } 55 | 56 | private void Exit() 57 | { 58 | listener?.UnRegisterChannel("AppackerProgress"); 59 | listener?.Dispose(); 60 | Application.Exit(); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /IconInjector/IconInjector.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {D7B9897A-704B-4754-BB33-F26529A23EA6} 8 | Library 9 | Properties 10 | IconInjector 11 | IconInjector 12 | v4.7 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | true 24 | 25 | 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | true 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /UnpackerSharedProject/PasswordForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace Unpacker 12 | { 13 | public partial class PasswordForm : Form 14 | { 15 | private byte[] hash; 16 | private Timer shakeTimer = new Timer(); 17 | private int shakeHeight = 3; // height in pixels that labWrongPassword jumps up on wrong password entry 18 | private int shakeTime = 35; //ms 19 | private int wrongTriesCount = 0; 20 | 21 | public PasswordForm (byte[] hash) 22 | { 23 | InitializeComponent(); 24 | this.hash = hash; 25 | shakeTimer.Interval = shakeTime; 26 | shakeTimer.Tick += (s, e) => { 27 | labWrongPassword.Location = new Point(labWrongPassword.Location.X, labWrongPassword.Location.Y + shakeHeight); 28 | shakeTimer.Stop(); 29 | }; 30 | } 31 | 32 | private void txtPassword_KeyDown (object sender, KeyEventArgs e) 33 | { 34 | if (e.KeyCode == Keys.Enter) 35 | btnOk.PerformClick(); 36 | else if (e.KeyCode == Keys.Escape) 37 | btnCancel.PerformClick(); 38 | } 39 | 40 | private void btnOk_Click (object sender, EventArgs e) 41 | { 42 | if (shakeTimer.Enabled) 43 | return; 44 | 45 | if (Appacker.Password.ComparePassword(txtPassword.Text, hash)) 46 | { 47 | DialogResult = DialogResult.OK; 48 | Close(); 49 | } 50 | else 51 | { 52 | txtPassword.Text = ""; 53 | wrongTriesCount++; 54 | if (wrongTriesCount == 5) 55 | labWrongPassword.Text = labStopIt.Text; 56 | else if (wrongTriesCount > 5 && (wrongTriesCount - 5) % 3 == 0) 57 | labWrongPassword.Text += "!"; 58 | 59 | if (wrongTriesCount < 5) 60 | System.Media.SystemSounds.Exclamation.Play(); 61 | else 62 | System.Media.SystemSounds.Hand.Play(); 63 | 64 | labWrongPassword.Visible = true; 65 | labWrongPassword.Location = new Point(labWrongPassword.Location.X, labWrongPassword.Location.Y - shakeHeight); 66 | shakeTimer.Start(); 67 | } 68 | } 69 | 70 | private void btnCancel_Click (object sender, EventArgs e) 71 | { 72 | DialogResult = DialogResult.Cancel; 73 | Close(); 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /ProgressBarSplash/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ProgressBarSplash.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProgressBarSplash.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Resource.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:2.0.50727.42 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace System.Drawing.IconLib { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resource { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resource() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IconLib.System.Drawing.IconLib.Resource", typeof(Resource).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | internal static byte[] EmptyDll { 64 | get { 65 | object obj = ResourceManager.GetObject("EmptyDll", resourceCulture); 66 | return ((byte[])(obj)); 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /ProgressBarSplash/LoadingForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace ProgressBarSplash 2 | { 3 | partial class LoadingForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadingForm)); 32 | this.progressBar = new System.Windows.Forms.ProgressBar(); 33 | this.labPacking = new System.Windows.Forms.Label(); 34 | this.labUnpacking = new System.Windows.Forms.Label(); 35 | this.SuspendLayout(); 36 | // 37 | // progressBar 38 | // 39 | resources.ApplyResources(this.progressBar, "progressBar"); 40 | this.progressBar.Name = "progressBar"; 41 | this.progressBar.UseWaitCursor = true; 42 | // 43 | // labPacking 44 | // 45 | resources.ApplyResources(this.labPacking, "labPacking"); 46 | this.labPacking.BackColor = System.Drawing.Color.Transparent; 47 | this.labPacking.Name = "labPacking"; 48 | this.labPacking.UseWaitCursor = true; 49 | // 50 | // labUnpacking 51 | // 52 | resources.ApplyResources(this.labUnpacking, "labUnpacking"); 53 | this.labUnpacking.BackColor = System.Drawing.Color.Transparent; 54 | this.labUnpacking.Name = "labUnpacking"; 55 | this.labUnpacking.UseWaitCursor = true; 56 | // 57 | // LoadingForm 58 | // 59 | resources.ApplyResources(this, "$this"); 60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 61 | this.ControlBox = false; 62 | this.Controls.Add(this.labUnpacking); 63 | this.Controls.Add(this.labPacking); 64 | this.Controls.Add(this.progressBar); 65 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 66 | this.Name = "LoadingForm"; 67 | this.UseWaitCursor = true; 68 | this.ResumeLayout(false); 69 | this.PerformLayout(); 70 | 71 | } 72 | 73 | #endregion 74 | 75 | private System.Windows.Forms.ProgressBar progressBar; 76 | private System.Windows.Forms.Label labPacking; 77 | private System.Windows.Forms.Label labUnpacking; 78 | } 79 | } 80 | 81 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/BitmapEncoders/PNGEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.IO; 21 | using System.Text; 22 | using System.Drawing.Imaging; 23 | using System.Collections.Generic; 24 | using System.Runtime.InteropServices; 25 | 26 | namespace System.Drawing.IconLib.BitmapEncoders 27 | { 28 | [Author("Franco, Gustavo")] 29 | internal class PNGEncoder : ImageEncoder 30 | { 31 | #region Variables Declaration 32 | #endregion 33 | 34 | #region Constructors 35 | public PNGEncoder() 36 | { 37 | } 38 | #endregion 39 | 40 | #region Properties 41 | public override IconImageFormat IconImageFormat 42 | { 43 | get {return IconImageFormat.PNG;} 44 | } 45 | 46 | public override unsafe int ImageSize 47 | { 48 | get 49 | { 50 | // This is a fast and temporary solution, 51 | // Soon Ill implement a png cache, 52 | // then the image will be generated just once between calls and writes 53 | MemoryStream ms = new MemoryStream(); 54 | Icon.ToBitmap().Save(ms, ImageFormat.Png); 55 | return (int) ms.Length; 56 | } 57 | } 58 | #endregion 59 | 60 | #region Methods 61 | public unsafe override void Read(Stream stream, int resourceSize) 62 | { 63 | // Buffer a PNG image 64 | byte[] buffer = new byte[resourceSize]; 65 | stream.Read(buffer, 0, buffer.Length); 66 | MemoryStream ms = new MemoryStream(buffer); 67 | Bitmap pngBitmap = new Bitmap(ms); 68 | 69 | // Set XOR and AND Image 70 | IconImage iconImage = new IconImage(); 71 | iconImage.Set(pngBitmap, null, Color.Transparent); 72 | pngBitmap.Dispose(); 73 | 74 | //Transfer the data from the BMPEncoder to the PNGEncoder 75 | CopyFrom(iconImage.Encoder); 76 | } 77 | 78 | public override void Write(Stream stream) 79 | { 80 | MemoryStream ms = new MemoryStream(); 81 | Icon.ToBitmap().Save(ms, ImageFormat.Png); 82 | byte[] buffer = ms.GetBuffer(); 83 | stream.Write(buffer, 0, (int) ms.Length); 84 | } 85 | #endregion 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/BitmapEncoders/BMPEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.IO; 21 | using System.Text; 22 | using System.Collections.Generic; 23 | using System.Runtime.InteropServices; 24 | 25 | namespace System.Drawing.IconLib.BitmapEncoders 26 | { 27 | [Author("Franco, Gustavo")] 28 | internal class BMPEncoder : ImageEncoder 29 | { 30 | #region Constructors 31 | public BMPEncoder() 32 | { 33 | } 34 | #endregion 35 | 36 | #region Properties 37 | public override IconImageFormat IconImageFormat 38 | { 39 | get {return IconImageFormat.BMP;} 40 | } 41 | #endregion 42 | 43 | #region Methods 44 | public unsafe override void Read(Stream stream, int resourceSize) 45 | { 46 | // BitmapInfoHeader 47 | mHeader.Read(stream); 48 | 49 | // Palette 50 | mColors = new RGBQUAD[ColorsInPalette]; 51 | byte[] colorBuffer = new byte[mColors.Length * sizeof(RGBQUAD)]; 52 | stream.Read(colorBuffer, 0, colorBuffer.Length); 53 | GCHandle handle = GCHandle.Alloc(mColors, GCHandleType.Pinned); 54 | Marshal.Copy(colorBuffer, 0, handle.AddrOfPinnedObject(), colorBuffer.Length); 55 | handle.Free(); 56 | 57 | // XOR Image 58 | int stride = (int) ((mHeader.biWidth * mHeader.biBitCount + 31) & ~31) >> 3; 59 | mXOR = new byte[stride * (mHeader.biHeight / 2)]; 60 | stream.Read(mXOR, 0, mXOR.Length); 61 | 62 | // AND Image 63 | stride = (int) ((mHeader.biWidth * 1 + 31) & ~31) >> 3; 64 | mAND = new byte[stride * (mHeader.biHeight / 2)]; 65 | stream.Read(mAND, 0, mAND.Length); 66 | } 67 | 68 | public unsafe override void Write(Stream stream) 69 | { 70 | BinaryReader br = new BinaryReader(stream); 71 | 72 | // BitmapInfoHeader 73 | mHeader.Write(stream); 74 | 75 | // Palette 76 | byte[] buffer = new byte[ColorsInPalette * sizeof(RGBQUAD)]; 77 | GCHandle handle = GCHandle.Alloc(mColors, GCHandleType.Pinned); 78 | Marshal.Copy(handle.AddrOfPinnedObject(), buffer, 0, buffer.Length); 79 | handle.Free(); 80 | stream.Write(buffer, 0, buffer.Length); 81 | 82 | // XOR Image 83 | stream.Write(mXOR, 0, mXOR.Length); 84 | 85 | // AND Image 86 | stream.Write(mAND, 0, mAND.Length); 87 | } 88 | #endregion 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /Packer/Packer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {076A6452-1FA4-4995-95BF-C4E28EEFD062} 8 | Exe 9 | Packer 10 | Packer 11 | v4.7 12 | 512 13 | true 14 | 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | 39 | 40 | 41 | ..\packages\Costura.Fody.2.0.0\lib\net452\Costura.dll 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | ..\packages\XDMessaging.Lite.5.0.6\lib\net452\XDMessaging.Lite.dll 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | Designer 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /PackerWindowless/PackerWindowless.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {56FC8940-7999-4C90-8324-FC76546ABE70} 8 | WinExe 9 | Packer 10 | Packer 11 | v4.7 12 | 512 13 | true 14 | 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | 39 | 40 | 41 | ..\packages\Costura.Fody.2.0.0\lib\net452\Costura.dll 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | ..\packages\XDMessaging.Lite.5.0.6\lib\net452\XDMessaging.Lite.dll 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | Designer 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /UnpackerSharedProject/PasswordForm.Designer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Unpacker 3 | { 4 | partial class PasswordForm 5 | { 6 | /// 7 | /// Required designer variable. 8 | /// 9 | private System.ComponentModel.IContainer components = null; 10 | 11 | /// 12 | /// Clean up any resources being used. 13 | /// 14 | /// true if managed resources should be disposed; otherwise, false. 15 | protected override void Dispose (bool disposing) 16 | { 17 | if (disposing && (components != null)) 18 | { 19 | components.Dispose(); 20 | } 21 | base.Dispose(disposing); 22 | } 23 | 24 | #region Windows Form Designer generated code 25 | 26 | /// 27 | /// Required method for Designer support - do not modify 28 | /// the contents of this method with the code editor. 29 | /// 30 | private void InitializeComponent () 31 | { 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PasswordForm)); 33 | this.txtPassword = new System.Windows.Forms.TextBox(); 34 | this.labText = new System.Windows.Forms.Label(); 35 | this.btnOk = new System.Windows.Forms.Button(); 36 | this.btnCancel = new System.Windows.Forms.Button(); 37 | this.labWrongPassword = new System.Windows.Forms.Label(); 38 | this.labStopIt = new System.Windows.Forms.Label(); 39 | this.SuspendLayout(); 40 | // 41 | // txtPassword 42 | // 43 | resources.ApplyResources(this.txtPassword, "txtPassword"); 44 | this.txtPassword.Name = "txtPassword"; 45 | this.txtPassword.UseSystemPasswordChar = true; 46 | this.txtPassword.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtPassword_KeyDown); 47 | // 48 | // labText 49 | // 50 | resources.ApplyResources(this.labText, "labText"); 51 | this.labText.Name = "labText"; 52 | // 53 | // btnOk 54 | // 55 | resources.ApplyResources(this.btnOk, "btnOk"); 56 | this.btnOk.Name = "btnOk"; 57 | this.btnOk.UseVisualStyleBackColor = true; 58 | this.btnOk.Click += new System.EventHandler(this.btnOk_Click); 59 | // 60 | // btnCancel 61 | // 62 | resources.ApplyResources(this.btnCancel, "btnCancel"); 63 | this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 64 | this.btnCancel.Name = "btnCancel"; 65 | this.btnCancel.UseVisualStyleBackColor = true; 66 | this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); 67 | // 68 | // labWrongPassword 69 | // 70 | resources.ApplyResources(this.labWrongPassword, "labWrongPassword"); 71 | this.labWrongPassword.ForeColor = System.Drawing.Color.Red; 72 | this.labWrongPassword.Name = "labWrongPassword"; 73 | // 74 | // labStopIt 75 | // 76 | resources.ApplyResources(this.labStopIt, "labStopIt"); 77 | this.labStopIt.ForeColor = System.Drawing.Color.Red; 78 | this.labStopIt.Name = "labStopIt"; 79 | // 80 | // PasswordForm 81 | // 82 | this.AcceptButton = this.btnOk; 83 | resources.ApplyResources(this, "$this"); 84 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 85 | this.CancelButton = this.btnCancel; 86 | this.Controls.Add(this.btnCancel); 87 | this.Controls.Add(this.btnOk); 88 | this.Controls.Add(this.labStopIt); 89 | this.Controls.Add(this.labWrongPassword); 90 | this.Controls.Add(this.labText); 91 | this.Controls.Add(this.txtPassword); 92 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 93 | this.MaximizeBox = false; 94 | this.MinimizeBox = false; 95 | this.Name = "PasswordForm"; 96 | this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; 97 | this.ResumeLayout(false); 98 | this.PerformLayout(); 99 | 100 | } 101 | 102 | #endregion 103 | 104 | private System.Windows.Forms.TextBox txtPassword; 105 | private System.Windows.Forms.Label labText; 106 | private System.Windows.Forms.Button btnOk; 107 | private System.Windows.Forms.Button btnCancel; 108 | private System.Windows.Forms.Label labWrongPassword; 109 | private System.Windows.Forms.Label labStopIt; 110 | } 111 | } -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Tools.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Text; 21 | using System.Drawing.IconLib; 22 | using System.Drawing.Imaging; 23 | using System.Collections.Generic; 24 | using System.Runtime.InteropServices; 25 | 26 | namespace System.Drawing.IconLib 27 | { 28 | [Author("Franco, Gustavo")] 29 | internal static class Tools 30 | { 31 | #region Methods 32 | public static bool CompareRGBQUADToColor(RGBQUAD rgbQuad, Color color) 33 | { 34 | return rgbQuad.rgbRed == color.R && rgbQuad.rgbGreen == color.G && rgbQuad.rgbBlue == color.B; 35 | } 36 | 37 | public static unsafe void FlipYBitmap(Bitmap bitmap) 38 | { 39 | if (bitmap.PixelFormat != PixelFormat.Format1bppIndexed) 40 | return; 41 | 42 | // .Net bug.. it can't flip in the Y axis a 1bpp properly 43 | BitmapData bitmapData = bitmap.LockBits(new Rectangle(0,0,bitmap.Width, bitmap.Height) , ImageLockMode.ReadWrite, PixelFormat.Format1bppIndexed); 44 | 45 | byte* pixelPtr = (byte*)bitmapData.Scan0.ToPointer(); 46 | byte[] tmpbuffer = new byte[bitmapData.Stride]; 47 | 48 | fixed (byte* lptmpbuffer = tmpbuffer) 49 | { 50 | for (int i=0; i 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {8D85B3EA-40DB-4187-A4F6-FA6263669C5B} 8 | Unpacker 9 | Unpacker 10 | v4.7 11 | 512 12 | true 13 | 14 | 15 | 16 | 17 | AnyCPU 18 | Exe 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | Exe 30 | 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | ..\packages\Costura.Fody.2.0.0\lib\net452\Costura.dll 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | ..\packages\XDMessaging.Lite.5.0.6\lib\net452\XDMessaging.Lite.dll 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /UnpackerWindowless/UnpackerWindowless.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {852DB8FA-DF7F-40DB-84EC-F232F9A68EE2} 8 | Unpacker 9 | UnpackerWindowless 10 | v4.7 11 | 512 12 | true 13 | 14 | 15 | 16 | 17 | AnyCPU 18 | Exe 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | Exe 30 | 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | WinExe 47 | 48 | 49 | 50 | ..\packages\Costura.Fody.2.0.0\lib\net452\Costura.dll 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | ..\packages\XDMessaging.Lite.5.0.6\lib\net452\XDMessaging.Lite.dll 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Enums.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Collections.Generic; 21 | using System.Text; 22 | 23 | namespace System.Drawing.IconLib 24 | { 25 | #region MultiIconFormat 26 | [Author("Franco, Gustavo")] 27 | public enum MultiIconFormat 28 | { 29 | // Read-Write 30 | ICO = 1, 31 | ICL = 2, 32 | DLL = 3, 33 | // Read-Only 34 | EXE = 4, 35 | OCX = 5, 36 | CPL = 6, 37 | SRC = 7 38 | } 39 | #endregion 40 | 41 | #region HeaderSignatures 42 | [Author("Franco, Gustavo")] 43 | internal enum HeaderSignatures 44 | { 45 | IMAGE_DOS_SIGNATURE = 0x5A4D, // MZ 46 | IMAGE_OS2_SIGNATURE = 0x454E, // NE 47 | IMAGE_NT_SIGNATURE = 0x00004550 // PE00 48 | } 49 | #endregion 50 | 51 | #region LoadLibraryFlags 52 | [Author("Franco, Gustavo")] 53 | internal enum LoadLibraryFlags 54 | { 55 | DONT_RESOLVE_DLL_REFERENCES = 0x00000001, 56 | LOAD_LIBRARY_AS_DATAFILE = 0x00000002, 57 | LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008, 58 | LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010 59 | } 60 | #endregion 61 | 62 | #region ResourceType 63 | [Author("Franco, Gustavo")] 64 | internal enum ResourceType : uint 65 | { 66 | RT_CURSOR = 1, 67 | RT_BITMAP = 2, 68 | RT_ICON = 3, 69 | RT_MENU = 4, 70 | RT_DIALOG = 5, 71 | RT_STRING = 6, 72 | RT_FONTDIR = 7, 73 | RT_FONT = 8, 74 | RT_ACCELERATOR = 9, 75 | RT_RCDATA = 10, 76 | RT_MESSAGETABLE = 11, 77 | RT_GROUP_CURSOR = 12, 78 | RT_GROUP_ICON = 14, 79 | RT_VERSION = 16, 80 | RT_DLGINCLUDE = 17, 81 | RT_PLUGPLAY = 19, 82 | RT_VXD = 20, 83 | RT_ANICURSOR = 21, 84 | RT_ANIICON = 22, 85 | RT_HTML = 23 86 | } 87 | #endregion 88 | 89 | #region ResourceMemoryType 90 | [Flags] 91 | [Author("Franco, Gustavo")] 92 | internal enum ResourceMemoryType : ushort 93 | { 94 | None = 0, 95 | Moveable = 0x10, 96 | Pure = 0x20, 97 | PreLoad = 0x40, 98 | Unknown = 7168 99 | } 100 | #endregion 101 | 102 | #region BitmapCompression 103 | [Author("Franco, Gustavo")] 104 | public enum IconImageFormat : int 105 | { 106 | //BI_RGB = 0, 107 | //BI_RLE8 = 1, 108 | //BI_RLE4 = 2, 109 | //BI_BITFIELDS = 3, 110 | //BI_JPEG = 4, 111 | BMP = 0, 112 | PNG = 5, 113 | UNKNOWN = 255 114 | } 115 | #endregion 116 | 117 | #region PatBltTypes 118 | [Author("Franco, Gustavo")] 119 | internal enum PatBltTypes 120 | { 121 | SRCCOPY = 0x00CC0020, 122 | SRCPAINT = 0x00EE0086, 123 | SRCAND = 0x008800C6, 124 | SRCINVERT = 0x00660046, 125 | SRCERASE = 0x00440328, 126 | NOTSRCCOPY = 0x00330008, 127 | NOTSRCERASE = 0x001100A6, 128 | MERGECOPY = 0x00C000CA, 129 | MERGEPAINT = 0x00BB0226, 130 | PATCOPY = 0x00F00021, 131 | PATPAINT = 0x00FB0A09, 132 | PATINVERT = 0x005A0049, 133 | DSTINVERT = 0x00550009, 134 | BLACKNESS = 0x00000042, 135 | WHITENESS = 0x00FF0062 136 | } 137 | #endregion 138 | 139 | #region Icon OS Format 140 | [Author("Franco, Gustavo")] 141 | [Flags] 142 | public enum IconOutputFormat 143 | { 144 | None = 0, 145 | Vista = 1, 146 | WinXP = 2, 147 | WinXPUnpopular = 4, 148 | Win95 = 8, 149 | Win95Unpopular = 16, 150 | Win31 = 32, 151 | Win31Unpopular = 64, 152 | Win30 = 128, 153 | Win30Unpopular = 256, 154 | FromWinXP = WinXP | Vista, 155 | FromWin95 = Win95 | FromWinXP, 156 | FromWin31 = Win31 | FromWin95, 157 | FromWin30 = Win30 | FromWin31, 158 | All = FromWin31 | Win31Unpopular | Win95Unpopular | WinXPUnpopular 159 | } 160 | #endregion 161 | } 162 | -------------------------------------------------------------------------------- /Appacker/IconSwapper.cs: -------------------------------------------------------------------------------- 1 | using ChangeIcon; 2 | using System; 3 | using System.Drawing; 4 | using System.Drawing.IconLib; 5 | using System.IO; 6 | 7 | namespace Appacker 8 | { 9 | public static class IconSwapper 10 | { 11 | /// 12 | /// Replaces icon of the target exe with the new one 13 | /// 14 | /// Full path to the executable, the icon of which will be replaced 15 | /// Full path to *.exe, *.dll or image file that will be used as the source for new icon 16 | public static void ChangeIcon(string pathToTargetExe, string pathToFileWithIcon) 17 | { 18 | // Load the image based on file extension 19 | SingleIcon ico = GetIconFromFile(pathToFileWithIcon); 20 | 21 | // If icon is empty 22 | if (ico.Count == 0) 23 | return; 24 | 25 | InjectIcon(pathToTargetExe, ico); 26 | } 27 | 28 | /// 29 | /// Returns a Bitmap of the icon associated with exe/dll or loads image file 30 | /// 31 | /// Full path to *.exe, *.dll or image file that will be used as the source for new icon 32 | /// 33 | public static SingleIcon GetIconFromFile(string path) 34 | { 35 | MultiIcon mIco = new MultiIcon(); 36 | SingleIcon ico = mIco.Add("Icon1"); 37 | // Load the image based on file extension 38 | switch (Path.GetExtension(path).ToLowerInvariant()) 39 | { 40 | case ".jpg": 41 | case ".jpeg": 42 | case ".bmp": 43 | case ".png": 44 | case ".gif": 45 | case ".tiff": 46 | ico = ImageToIcon(path); 47 | break; 48 | case ".exe": 49 | case ".dll": 50 | case ".ico": 51 | try 52 | { 53 | mIco.Load(path); 54 | } 55 | // Aseprite's exe produces an exception when trying to get its icon. I don't want to deal with it right now, just ignore it, file will use the default icon 56 | catch (System.Drawing.IconLib.Exceptions.InvalidFileException e) 57 | { 58 | Console.Error.WriteLine(e.Message); 59 | } 60 | // Should never happen, just a failsafe 61 | catch (Exception e) 62 | { 63 | System.Windows.Forms.MessageBox.Show($"Unexpected error related to an icon, please report it on GitHub!\nLikely you can continue packing prosess despite this error.\n\nError message:\n\n\"{e.Message}\"", "Something went wrong!"); 64 | } 65 | 66 | // If icon pack has multiple icons, take the first one 67 | if (mIco.Count > 0) 68 | ico = mIco[0]; 69 | // If exe doesn't have any icon it will not load the 'default' icon 70 | // But .NET Icon class can actually extract this 'default exe' icon 71 | else if (ico.Count == 0) 72 | ico.CreateFrom(Icon.ExtractAssociatedIcon(path).ToBitmap(), IconOutputFormat.Vista); 73 | // Tip: you have to convert to Bitmap in order to get 16mil colors 74 | // if you load directly from icon it gets only 16 colors for some reason 75 | 76 | break; 77 | } 78 | return ico; 79 | } 80 | 81 | private static SingleIcon ImageToIcon(string imgPath) 82 | { 83 | Bitmap bmp = (Bitmap)Image.FromFile(imgPath); 84 | if (bmp.PixelFormat != System.Drawing.Imaging.PixelFormat.Format32bppArgb 85 | || bmp.Width > 256 86 | || bmp.Height > 256) 87 | bmp = FixIcon(bmp); 88 | 89 | MultiIcon mIco = new MultiIcon(); 90 | SingleIcon sIco = mIco.Add("Icon1"); 91 | sIco.CreateFrom(bmp, IconOutputFormat.Vista); 92 | return sIco; 93 | } 94 | 95 | private static void InjectIcon(string pathToTargetExe, SingleIcon icon) 96 | { 97 | // Save icon to a temp file 98 | string tempIcoPath = Path.GetTempFileName(); 99 | icon.Save(tempIcoPath); 100 | 101 | // Magically inject icon into the target exe 102 | IconInjector.InjectIcon(pathToTargetExe, tempIcoPath); 103 | 104 | // Delete temp ico file 105 | File.Delete(tempIcoPath); 106 | } 107 | 108 | private static Bitmap FixIcon(Bitmap orig) 109 | { 110 | float scale = Math.Min(256f / orig.Width, 256f / orig.Height); 111 | int cloneWidth = (int)(orig.Width * scale); 112 | int cloneHeight = (int)(orig.Height * scale); 113 | 114 | Bitmap clone = new Bitmap(cloneWidth, cloneHeight, 115 | System.Drawing.Imaging.PixelFormat.Format32bppArgb); 116 | 117 | using (Graphics g = Graphics.FromImage(clone)) 118 | g.DrawImage(orig, new Rectangle(0, 0, clone.Width, clone.Height)); 119 | 120 | orig.Dispose(); 121 | return clone; 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /IconLib/IconLib.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Debug 4 | AnyCPU 5 | 8.0.50727 6 | 2.0 7 | {CE53747F-D2E6-4E1E-9EF4-A0AE02671B1D} 8 | Library 9 | Properties 10 | IconLib 11 | IconLib 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | v2.0 21 | 22 | 23 | 24 | 25 | 2.0 26 | 27 | 28 | true 29 | full 30 | false 31 | bin\Debug\ 32 | DEBUG;TRACE 33 | prompt 34 | 4 35 | true 36 | 37 | 38 | pdbonly 39 | true 40 | bin\Release\ 41 | TRACE 42 | prompt 43 | 4 44 | true 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | True 84 | True 85 | Resource.resx 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | Designer 95 | ResXFileCodeGenerator 96 | Resource.Designer.cs 97 | 98 | 99 | 100 | 101 | 102 | 103 | 110 | -------------------------------------------------------------------------------- /Appacker/IniSettingsProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Globalization; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using IniParser; 9 | using IniParser.Model; 10 | 11 | namespace Appacker 12 | { 13 | internal static class IniSettingsProvider 14 | { 15 | [Flags] 16 | internal enum IniLocationFlags { Local = 1, AppData = 2 }; 17 | readonly private static string appDataFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Appacker"); 18 | readonly static string appDataPath = Path.Combine(appDataFolder, "Appacker.ini"); 19 | readonly static string localIniFileName = "Appacker.ini"; 20 | 21 | private static IniData data; 22 | private static FileIniDataParser parser = new FileIniDataParser(); 23 | private static IniLocationFlags iniLocation; 24 | 25 | internal static bool isLocalIniFilePresent => iniLocation.HasFlag(IniLocationFlags.Local); 26 | internal static bool isAppDataIniFilePresent => iniLocation.HasFlag(IniLocationFlags.AppData); 27 | 28 | static IniSettingsProvider () 29 | { 30 | if (File.Exists(appDataPath)) 31 | iniLocation |= IniLocationFlags.AppData; 32 | 33 | if (File.Exists(localIniFileName)) 34 | iniLocation |= IniLocationFlags.Local; 35 | 36 | if (iniLocation.HasFlag(IniLocationFlags.Local)) 37 | data = parser.ReadFile(localIniFileName); 38 | else if (iniLocation.HasFlag(IniLocationFlags.AppData)) 39 | data = parser.ReadFile(appDataPath); 40 | } 41 | 42 | public static Settings ReadIniSettings () 43 | { 44 | if (data != null) 45 | { 46 | Settings settings = new Settings(); 47 | 48 | settings.language = data["General"]["Language"]; 49 | 50 | bool.TryParse(data["AdvancedOptions"]["SelfRepack"], out settings.isRepackable); 51 | Enum.TryParse(data["AdvancedOptions"]["UnpackDirectory"], out settings.unpackDirectory); 52 | bool.TryParse(data["AdvancedOptions"]["OpenUnpackDirectory"], out settings.openUnpackDirectory); 53 | settings.launchArguments = data["AdvancedOptions"]["CmdArguments"]; 54 | settings.customFileDescription = data["AdvancedOptions"]["FileDescription"]; 55 | bool.TryParse(data["AdvancedOptions"]["WindowlessUnpacker"], out settings.isWindowless); 56 | bool.TryParse(data["AdvancedOptions"]["SplashScreenProgressBar"], out settings.isSplashProgressBarEnabled); 57 | 58 | int.TryParse(data["Window"]["PositionTop"], out settings.positionTop); 59 | int.TryParse(data["Window"]["PositionLeft"], out settings.positionLeft); 60 | int.TryParse(data["Window"]["Width"], out settings.width); 61 | int.TryParse(data["Window"]["Height"], out settings.height); 62 | 63 | return settings; 64 | } 65 | 66 | return null; 67 | } 68 | 69 | public static void SaveIniFile (Settings settings, IniLocationFlags location) 70 | { 71 | IniData data = new IniData(); 72 | 73 | data.Sections.AddSection("General"); 74 | data["General"].AddKey("Language", settings.language); 75 | 76 | data.Sections.AddSection("AdvancedOptions"); 77 | data["AdvancedOptions"].AddKey("SelfRepack", settings.isRepackable.ToString()); 78 | data["AdvancedOptions"].AddKey("UnpackDirectory", settings.unpackDirectory.ToString()); 79 | data["AdvancedOptions"].AddKey("OpenUnpackDirectory", settings.openUnpackDirectory.ToString()); 80 | data["AdvancedOptions"].AddKey("CmdArguments", settings.launchArguments); 81 | data["AdvancedOptions"].AddKey("FileDescription", settings.customFileDescription); 82 | data["AdvancedOptions"].AddKey("WindowlessUnpacker", settings.isWindowless.ToString()); 83 | data["AdvancedOptions"].AddKey("SplashScreenProgressBar", settings.isSplashProgressBarEnabled.ToString()); 84 | 85 | data.Sections.AddSection("Window"); 86 | data["Window"].AddKey("PositionTop", settings.positionTop.ToString()); 87 | data["Window"].AddKey("PositionLeft", settings.positionLeft.ToString()); 88 | data["Window"].AddKey("Width", settings.width.ToString()); 89 | data["Window"].AddKey("Height", settings.height.ToString()); 90 | 91 | if (location.HasFlag(IniLocationFlags.Local)) 92 | { 93 | parser.WriteFile(localIniFileName, data); 94 | iniLocation |= IniLocationFlags.Local; 95 | } 96 | else if (location.HasFlag(IniLocationFlags.AppData)) 97 | { 98 | if (!Directory.Exists(appDataFolder)) 99 | Directory.CreateDirectory(appDataFolder); 100 | 101 | parser.WriteFile(appDataPath, data); 102 | iniLocation |= IniLocationFlags.AppData; 103 | } 104 | } 105 | 106 | public static void DeleteIniFile (IniLocationFlags location) 107 | { 108 | if (location.HasFlag(IniLocationFlags.Local)) 109 | { 110 | if (File.Exists(localIniFileName)) 111 | File.Delete(localIniFileName); 112 | iniLocation &= ~IniLocationFlags.Local; 113 | } 114 | 115 | if (location.HasFlag(IniLocationFlags.AppData)) 116 | { 117 | if (File.Exists(appDataPath)) 118 | File.Delete(appDataPath); 119 | iniLocation &= ~IniLocationFlags.AppData; 120 | } 121 | } 122 | 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /ProgressBarSplash/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/BitmapEncoders/ImageEncoder.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.IO; 21 | using System.Text; 22 | using System.Collections.Generic; 23 | using System.Runtime.InteropServices; 24 | 25 | namespace System.Drawing.IconLib.BitmapEncoders 26 | { 27 | [Author("Franco, Gustavo")] 28 | internal abstract class ImageEncoder 29 | { 30 | #region Variables Declaration 31 | protected BITMAPINFOHEADER mHeader; 32 | protected RGBQUAD[] mColors; 33 | protected byte[] mXOR; 34 | protected byte[] mAND; 35 | #endregion 36 | 37 | #region Constructors 38 | protected ImageEncoder() 39 | { 40 | } 41 | #endregion 42 | 43 | #region Properties 44 | public unsafe virtual Icon Icon 45 | { 46 | get 47 | { 48 | MemoryStream ms = new MemoryStream(); 49 | 50 | // ICONDIR 51 | ICONDIR iconDir = ICONDIR.Initalizated; 52 | iconDir.idCount = 1; 53 | iconDir.Write(ms); 54 | 55 | // ICONDIRENTRY 56 | ICONDIRENTRY iconEntry = new ICONDIRENTRY(); 57 | iconEntry.bColorCount = (byte) mHeader.biClrUsed; 58 | iconEntry.bHeight = (byte) (mHeader.biHeight / 2); 59 | iconEntry.bReserved = 0; 60 | iconEntry.bWidth = (byte) mHeader.biWidth; 61 | iconEntry.dwBytesInRes = (uint) (sizeof(BITMAPINFOHEADER) + 62 | sizeof(RGBQUAD) * ColorsInPalette + 63 | mXOR.Length + mAND.Length); 64 | iconEntry.dwImageOffset = (uint) (sizeof(ICONDIR) + sizeof(ICONDIRENTRY)); 65 | iconEntry.wBitCount = mHeader.biBitCount; 66 | iconEntry.wPlanes = mHeader.biPlanes; 67 | iconEntry.Write(ms); 68 | 69 | // Image Info Header 70 | ms.Seek(iconEntry.dwImageOffset, SeekOrigin.Begin); 71 | mHeader.Write(ms); 72 | 73 | // Image Palette 74 | byte[] buffer = new byte[sizeof(RGBQUAD) * ColorsInPalette]; 75 | GCHandle handle = GCHandle.Alloc(mColors, GCHandleType.Pinned); 76 | Marshal.Copy(handle.AddrOfPinnedObject(), buffer, 0, buffer.Length); 77 | handle.Free(); 78 | ms.Write(buffer, 0, buffer.Length); 79 | 80 | // Image XOR Image 81 | ms.Write(mXOR, 0, mXOR.Length); 82 | 83 | // Image AND Image 84 | ms.Write(mAND, 0, mAND.Length); 85 | 86 | // Rewind the stream 87 | ms.Position = 0; 88 | Icon icon = new Icon(ms, iconEntry.bWidth, iconEntry.bHeight); 89 | ms.Dispose(); 90 | return icon; 91 | } 92 | } 93 | 94 | public virtual BITMAPINFOHEADER Header 95 | { 96 | get {return mHeader;} 97 | set {mHeader = value;} 98 | } 99 | 100 | public virtual RGBQUAD[] Colors 101 | { 102 | get {return mColors;} 103 | set {mColors = value;} 104 | } 105 | 106 | public virtual byte[] XOR 107 | { 108 | get {return mXOR;} 109 | set 110 | { 111 | mHeader.biSizeImage = (uint) value.Length; 112 | mXOR = value; 113 | } 114 | } 115 | 116 | public virtual byte[] AND 117 | { 118 | get {return mAND;} 119 | set {mAND = value;} 120 | } 121 | 122 | public unsafe virtual int ColorsInPalette 123 | { 124 | get 125 | { 126 | return (int) (mHeader.biClrUsed != 0 ? 127 | mHeader.biClrUsed : 128 | mHeader.biBitCount <=8 ? 129 | (uint) (1 << mHeader.biBitCount) : 0); 130 | } 131 | } 132 | 133 | public unsafe virtual int ImageSize 134 | { 135 | get{return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * ColorsInPalette + mXOR.Length + mAND.Length;} 136 | } 137 | 138 | public abstract IconImageFormat IconImageFormat 139 | { 140 | get; 141 | } 142 | #endregion 143 | 144 | #region Abstract Methods 145 | public abstract void Read(Stream stream, int resourceSize); 146 | public abstract void Write(Stream stream); 147 | #endregion 148 | 149 | #region Methods 150 | public void CopyFrom(ImageEncoder encoder) 151 | { 152 | this.mHeader = encoder.mHeader; 153 | this.mColors = encoder.mColors; 154 | this.mXOR = encoder.mXOR; 155 | this.mAND = encoder.mAND; 156 | } 157 | #endregion 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /Appacker/ToolsStorage.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Appacker { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class ToolsStorage { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal ToolsStorage() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Appacker.ToolsStorage", typeof(ToolsStorage).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Byte[]. 65 | /// 66 | internal static byte[] mfc80 { 67 | get { 68 | object obj = ResourceManager.GetObject("mfc80", resourceCulture); 69 | return ((byte[])(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Byte[]. 75 | /// 76 | internal static byte[] Microsoft_VC80_MFC { 77 | get { 78 | object obj = ResourceManager.GetObject("Microsoft_VC80_MFC", resourceCulture); 79 | return ((byte[])(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Byte[]. 85 | /// 86 | internal static byte[] Packer { 87 | get { 88 | object obj = ResourceManager.GetObject("Packer", resourceCulture); 89 | return ((byte[])(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Byte[]. 95 | /// 96 | internal static byte[] ProgressBarSplash { 97 | get { 98 | object obj = ResourceManager.GetObject("ProgressBarSplash", resourceCulture); 99 | return ((byte[])(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Byte[]. 105 | /// 106 | internal static byte[] Unpacker { 107 | get { 108 | object obj = ResourceManager.GetObject("Unpacker", resourceCulture); 109 | return ((byte[])(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Byte[]. 115 | /// 116 | internal static byte[] UnpackerWindowless { 117 | get { 118 | object obj = ResourceManager.GetObject("UnpackerWindowless", resourceCulture); 119 | return ((byte[])(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Byte[]. 125 | /// 126 | internal static byte[] VerInfoLib { 127 | get { 128 | object obj = ResourceManager.GetObject("VerInfoLib", resourceCulture); 129 | return ((byte[])(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// Looks up a localized resource of type System.Byte[]. 135 | /// 136 | internal static byte[] VerInfoLibDLL { 137 | get { 138 | object obj = ResourceManager.GetObject("VerInfoLibDLL", resourceCulture); 139 | return ((byte[])(obj)); 140 | } 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /ProgressBarSplash/ProgressBarSplash.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {302DAC96-8B41-466B-B86C-CB5DA71F0D1B} 8 | WinExe 9 | ProgressBarSplash 10 | ProgressBarSplash 11 | v4.7 12 | 512 13 | true 14 | 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | ..\packages\Costura.Fody.2.0.0\lib\net452\Costura.dll 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | ..\packages\XDMessaging.Lite.5.0.6\lib\net452\XDMessaging.Lite.dll 53 | 54 | 55 | 56 | 57 | Form 58 | 59 | 60 | LoadingForm.cs 61 | 62 | 63 | 64 | 65 | LoadingForm.cs 66 | 67 | 68 | LoadingForm.cs 69 | 70 | 71 | ResXFileCodeGenerator 72 | Resources.Designer.cs 73 | Designer 74 | 75 | 76 | True 77 | Resources.resx 78 | 79 | 80 | 81 | SettingsSingleFileGenerator 82 | Settings.Designer.cs 83 | 84 | 85 | True 86 | Settings.settings 87 | True 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | Designer 96 | 97 | 98 | 99 | 100 | 101 | 102 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/LibraryFormats/IconFormat.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.IO; 21 | using System.Text; 22 | using System.Collections.Generic; 23 | using System.Runtime.InteropServices; 24 | using System.Drawing.IconLib.Exceptions; 25 | 26 | namespace System.Drawing.IconLib.EncodingFormats 27 | { 28 | [Author("Franco, Gustavo")] 29 | internal class IconFormat : ILibraryFormat 30 | { 31 | #region Methods 32 | public bool IsRecognizedFormat(Stream stream) 33 | { 34 | stream.Position = 0; 35 | try 36 | { 37 | ICONDIR iconDir = new ICONDIR(stream); 38 | if (iconDir.idReserved != 0) 39 | return false; 40 | 41 | if (iconDir.idType != 1) 42 | return false; 43 | 44 | return true; 45 | 46 | } 47 | catch(Exception){} 48 | return false; 49 | } 50 | 51 | public unsafe MultiIcon Load(Stream stream) 52 | { 53 | stream.Position = 0; 54 | SingleIcon singleIcon = new SingleIcon("Untitled"); 55 | ICONDIR iconDir = new ICONDIR(stream); 56 | if (iconDir.idReserved != 0) 57 | throw new InvalidMultiIconFileException(); 58 | 59 | if (iconDir.idType != 1) 60 | throw new InvalidMultiIconFileException(); 61 | 62 | int entryOffset = sizeof(ICONDIR); 63 | 64 | // Add Icon Images one by one to the new entry created 65 | for(int i=0; i> 3; 130 | int BWSize = BWStride * entry.bHeight; 131 | bmpSize -= BWSize; 132 | 133 | // Lets find the value; 134 | byte[] bpp = {1, 4, 8, 16, 24, 32}; 135 | int j=0; 136 | while(j<=5) 137 | { 138 | stride = ((entry.bWidth * bpp[j] + 31) & ~31) >> 3; 139 | CLSSize = entry.bHeight * stride ; 140 | palette = bpp[j]<=8 ? ((int) (1 << bpp[j]) * 4) : 0; 141 | if (palette + CLSSize == bmpSize) 142 | { 143 | entry.wBitCount = bpp[j]; 144 | break; 145 | } 146 | j++; 147 | } 148 | } 149 | 150 | if (entry.wBitCount < 8 && entry.bColorCount == 0) 151 | entry.bColorCount = (byte) (1 << entry.wBitCount); 152 | if (entry.wPlanes == 0) 153 | entry.wPlanes = 1; 154 | 155 | return entry; 156 | } 157 | #endregion 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Resource.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\..\..\Resources\EmptyDll.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 123 | 124 | -------------------------------------------------------------------------------- /Appacker/AdvancedOptionsForm.cs: -------------------------------------------------------------------------------- 1 | using RavSoft; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.IO; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | using System.Windows.Forms; 12 | 13 | namespace Appacker 14 | { 15 | public partial class AdvancedOptionsForm : Form 16 | { 17 | MainForm mainForm = null; 18 | 19 | public AdvancedOptionsForm(MainForm mainForm) 20 | { 21 | InitializeComponent(); 22 | this.mainForm = mainForm; 23 | 24 | checkRepackable.Checked = mainForm.isRepackable; 25 | checkOpenUnpackFolder.Checked = mainForm.openUnpackDirectory; 26 | if (mainForm.unpackDirectory == MainForm.UnpackDirectory.Desktop) 27 | comboUnpackDir.SelectedIndex = 1; 28 | else if (mainForm.unpackDirectory == MainForm.UnpackDirectory.NextToPackedExe) 29 | comboUnpackDir.SelectedIndex = 2; 30 | else if (mainForm.unpackDirectory == MainForm.UnpackDirectory.AskAtLaunch) 31 | comboUnpackDir.SelectedIndex = 3; 32 | else 33 | comboUnpackDir.SelectedIndex = 0; 34 | 35 | txtArguments.Text = mainForm.launchArguments; 36 | txtFileDescription.Text = mainForm.customFileDescription; 37 | txtPassword.Text = mainForm.password; 38 | checkWindowless.Checked = mainForm.isWindowlessUnpacker; 39 | checkUnpackProgressBar.Checked = mainForm.isUnpackProgressBarEnabled; 40 | 41 | SetRepackDescription(); 42 | SetWindowlessDescription(); 43 | SetProgressBarDescription(); 44 | SetCueBanners(); 45 | UpdateSettingsFileDescriptions(); 46 | } 47 | 48 | private void SetRepackDescription() => labRepackableDescr.Text = checkRepackable.Checked ? Resources.Strings.repackOnDescr : Resources.Strings.repackOffDescr; 49 | private void SetWindowlessDescription() => labWindowlessDescription.Text = checkWindowless.Checked ? Resources.Strings.windowlessOnDescr : Resources.Strings.windowlessOffDescr; 50 | private void SetProgressBarDescription() => labProgressBarDescription.Text = checkUnpackProgressBar.Checked ? Resources.Strings.unpackProgressBarOnDescr : Resources.Strings.unpackProgressBarOffDescr; 51 | 52 | private void SetCueBanners () 53 | { 54 | CueProvider.SetCue(txtPassword, Resources.Strings.cuePassword); 55 | CueProvider.SetCue(txtFileDescription, Resources.Strings.cueFileDescription); 56 | CueProvider.SetCue(txtFileDescription, Resources.Strings.cueFileDescription); 57 | } 58 | 59 | private void UpdateSettingsFileDescriptions() 60 | { 61 | if (IniSettingsProvider.isLocalIniFilePresent) 62 | labIniDescription.Text = Resources.Strings.iniDescriptionLocal; 63 | else if (IniSettingsProvider.isAppDataIniFilePresent) 64 | labIniDescription.Text = Resources.Strings.iniDescriptionAppData; 65 | else 66 | labIniDescription.Text = Resources.Strings.iniDescriptionDefault; 67 | 68 | labAppDataIniDetected.Visible = linkAppDataIniDelete.Visible = IniSettingsProvider.isAppDataIniFilePresent; 69 | btnSaveIniAppData.Enabled = labAppDataIniDescription.Visible = !IniSettingsProvider.isAppDataIniFilePresent; 70 | labLocalIniDetected.Visible = linkLocalIniDelete.Visible = IniSettingsProvider.isLocalIniFilePresent; 71 | btnSaveLocalIni.Enabled = labLocalIniDescription.Visible = !IniSettingsProvider.isLocalIniFilePresent; 72 | } 73 | 74 | // Save options to the main form before closing 75 | private void AdvancedOptionsForm_FormClosing (object sender, FormClosingEventArgs e) => SaveSettings(); 76 | 77 | private void SaveSettings () 78 | { 79 | mainForm.isRepackable = checkRepackable.Checked; 80 | mainForm.openUnpackDirectory = checkOpenUnpackFolder.Checked; 81 | mainForm.unpackDirectory = comboUnpackDir.SelectedIndex == 1 82 | ? MainForm.UnpackDirectory.Desktop : comboUnpackDir.SelectedIndex == 2 83 | ? MainForm.UnpackDirectory.NextToPackedExe : comboUnpackDir.SelectedIndex == 3 84 | ? MainForm.UnpackDirectory.AskAtLaunch 85 | : MainForm.UnpackDirectory.Temp; 86 | mainForm.launchArguments = txtArguments.Text; 87 | mainForm.customFileDescription = txtFileDescription.Text; 88 | mainForm.password = txtPassword.Text; 89 | mainForm.isWindowlessUnpacker = checkWindowless.Checked; 90 | mainForm.isUnpackProgressBarEnabled = checkUnpackProgressBar.Checked; 91 | } 92 | 93 | private void checkRepackable_CheckedChanged(object sender, EventArgs e) => SetRepackDescription(); 94 | private void checkWindowless_CheckedChanged (object sender, EventArgs e) => SetWindowlessDescription(); 95 | private void checkUnpackProgressBar_CheckedChanged (object sender, EventArgs e) => SetProgressBarDescription(); 96 | 97 | private void btnSaveLocalIni_Click (object sender, EventArgs e) 98 | { 99 | SaveSettings(); 100 | mainForm.SaveLocalIniSettings(); 101 | UpdateSettingsFileDescriptions(); 102 | } 103 | 104 | private void btnSaveIniAppData_Click (object sender, EventArgs e) 105 | { 106 | SaveSettings(); 107 | mainForm.SaveAppDataIniSettings(); 108 | UpdateSettingsFileDescriptions(); 109 | } 110 | 111 | private void btnClose_Click (object sender, EventArgs e) => this.Close(); 112 | 113 | private void btnPassEye_Click (object sender, EventArgs e) 114 | { 115 | txtPassword.UseSystemPasswordChar = !txtPassword.UseSystemPasswordChar; 116 | SetCueBanners(); 117 | btnPassEye.Image = txtPassword.UseSystemPasswordChar ? Properties.Resources.eye_14 : Properties.Resources.eye_red_14; 118 | } 119 | 120 | private void linkAppDataIniDelete_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e) 121 | { 122 | IniSettingsProvider.DeleteIniFile(IniSettingsProvider.IniLocationFlags.AppData); 123 | UpdateSettingsFileDescriptions(); 124 | } 125 | 126 | private void linkLocalIniDelete_LinkClicked (object sender, LinkLabelLinkClickedEventArgs e) 127 | { 128 | IniSettingsProvider.DeleteIniFile(IniSettingsProvider.IniLocationFlags.Local); 129 | UpdateSettingsFileDescriptions(); 130 | } 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /IconLib/System/Drawing/IconLib/Win32.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006, Gustavo Franco 2 | // Email: gustavo_franco@hotmail.com 3 | // All rights reserved. 4 | 5 | // Redistribution and use in source and binary forms, with or without modification, 6 | // are permitted provided that the following conditions are met: 7 | 8 | // Redistributions of source code must retain the above copyright notice, 9 | // this list of conditions and the following disclaimer. 10 | // Redistributions in binary form must reproduce the above copyright notice, 11 | // this list of conditions and the following disclaimer in the documentation 12 | // and/or other materials provided with the distribution. 13 | 14 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY 15 | // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 16 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 17 | // PURPOSE. IT CAN BE DISTRIBUTED FREE OF CHARGE AS LONG AS THIS HEADER 18 | // REMAINS UNCHANGED. 19 | using System; 20 | using System.Text; 21 | using System.Collections.Generic; 22 | using System.Runtime.InteropServices; 23 | 24 | namespace System.Drawing.IconLib 25 | { 26 | [Author("Franco, Gustavo")] 27 | internal class Win32 28 | { 29 | #region DELEGATES 30 | public delegate Int32 EnumResTypeProc(IntPtr hModule, IntPtr lpszType, IntPtr lParam); 31 | public delegate bool EnumResNameProc(IntPtr hModule, IntPtr pType, IntPtr pName, IntPtr param); 32 | #endregion 33 | 34 | #region KERNEL32 35 | [DllImport("KERNEL32.DLL")] 36 | public unsafe static extern void CopyMemory(void* dest, void* src, int length); 37 | [DllImport("kernel32.dll", SetLastError=true)] 38 | public static extern IntPtr BeginUpdateResource(string pFileName, bool bDeleteExistingResources); 39 | [DllImport("kernel32.dll", SetLastError=true)] 40 | public static extern bool EndUpdateResource(IntPtr hUpdate, bool fDiscard); 41 | [DllImport("kernel32.dll", SetLastError=true)] 42 | public static extern bool UpdateResource(IntPtr hUpdate, uint lpType, ref string pName, ushort wLanguage, byte[] lpData, uint cbData); 43 | [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Ansi)] 44 | public static extern bool UpdateResource(IntPtr hUpdate, uint lpType, IntPtr pName, ushort wLanguage, byte[] lpData, uint cbData); 45 | [DllImport("kernel32.dll", SetLastError=true)] 46 | public unsafe static extern bool UpdateResource(IntPtr hUpdate, uint lpType, byte[] pName, ushort wLanguage, byte[] lpData, uint cbData); 47 | [DllImport("kernel32.dll", SetLastError=true)] 48 | public static extern bool UpdateResource(IntPtr hUpdate, uint lpType, uint lpName, ushort wLanguage, byte[] lpData, uint cbData); 49 | [DllImport("kernel32.dll", EntryPoint="RtlMoveMemory")] 50 | public unsafe static extern void CopyMemory(RGBQUAD* dest, byte* src, int cb); 51 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 52 | public static extern int SizeofResource(IntPtr hModule, IntPtr hResource); 53 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 54 | public static extern int FreeLibrary(IntPtr hModule); 55 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 56 | public static extern IntPtr LockResource(IntPtr hGlobalResource); 57 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 58 | public static extern IntPtr LoadResource(IntPtr hModule, IntPtr hResource); 59 | [DllImport("Kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] 60 | public static extern bool EnumResourceNames(IntPtr hModule, IntPtr pType, EnumResNameProc callback, IntPtr param); 61 | [DllImport("kernel32.dll", SetLastError=true)] 62 | public static extern bool EnumResourceTypes(IntPtr hModule, EnumResTypeProc callback, IntPtr lParam); 63 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 64 | public static extern IntPtr FindResource(IntPtr hModule, string resourceID, IntPtr type); 65 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 66 | public static extern IntPtr FindResource(IntPtr hModule, Int32 resourceID, IntPtr type); 67 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 68 | public static extern IntPtr FindResource(IntPtr hModule, IntPtr resourceID, IntPtr type); 69 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 70 | public static extern IntPtr FindResource(IntPtr hModule, IntPtr resourceID, string resourceName); 71 | [DllImport("kernel32.dll")] 72 | public static extern IntPtr LoadLibrary(string libraryName); 73 | [DllImport("kernel32.dll", CharSet=CharSet.Auto)] 74 | public static extern IntPtr LoadLibraryEx(string path, IntPtr hFile, LoadLibraryFlags flags); 75 | #endregion 76 | 77 | #region GDI32 78 | [DllImport("gdi32.dll")] 79 | public static extern bool MaskBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, 80 | int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, IntPtr hbmMask, int xMask, 81 | int yMask, uint dwRop); 82 | [DllImport("gdi32.dll")] 83 | public static extern int SetBkColor(IntPtr hDC, uint crColor); 84 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 85 | public static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, PatBltTypes dwRop); 86 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 87 | public static extern IntPtr CreateCompatibleDC(IntPtr hDC); 88 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 89 | public static extern IntPtr CreateDIBSection(IntPtr hdc, [In] ref BITMAPINFO pbmi, uint iUsage, out IntPtr ppvBits, IntPtr hSection, uint dwOffset); 90 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 91 | public static extern IntPtr DeleteDC(IntPtr hDC); 92 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 93 | public static extern bool DeleteObject(IntPtr hObject); 94 | [DllImport("gdi32.dll", CharSet=CharSet.Auto)] 95 | public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); 96 | [DllImport("gdi32.dll")] 97 | static public extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int Width, int Heigth); 98 | #endregion 99 | 100 | #region USER32 101 | [DllImport("user32.dll", CharSet=CharSet.Auto)] 102 | public static extern bool GetIconInfo(IntPtr hIcon, out ICONINFO piconinfo); 103 | [DllImport("user32.dll", CharSet=CharSet.Auto)] 104 | public static extern IntPtr GetDC(IntPtr hWnd); 105 | [DllImport("user32.dll", CharSet=CharSet.Auto)] 106 | public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC); 107 | #endregion 108 | 109 | #region MACROS 110 | public static bool IS_INTRESOURCE(IntPtr value) 111 | { 112 | if (((uint) value) > ushort.MaxValue) 113 | return false; 114 | return true; 115 | } 116 | 117 | public static bool IS_INTRESOURCE(string value) 118 | { 119 | int iResult; 120 | return int.TryParse(value, out iResult); 121 | } 122 | 123 | public static int MAKEINTRESOURCE(int resource) 124 | { 125 | return 0x0000FFFF & resource; 126 | } 127 | #endregion 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /Appacker/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Appacker.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Appacker.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap close_icon { 67 | get { 68 | object obj = ResourceManager.GetObject("close_icon", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap eye_14 { 77 | get { 78 | object obj = ResourceManager.GetObject("eye_14", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Bitmap. 85 | /// 86 | internal static System.Drawing.Bitmap eye_red_14 { 87 | get { 88 | object obj = ResourceManager.GetObject("eye_red_14", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Bitmap. 95 | /// 96 | internal static System.Drawing.Bitmap flag_great_britain_30 { 97 | get { 98 | object obj = ResourceManager.GetObject("flag_great_britain_30", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Drawing.Bitmap. 105 | /// 106 | internal static System.Drawing.Bitmap flag_russian_federation_30 { 107 | get { 108 | object obj = ResourceManager.GetObject("flag_russian_federation_30", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Drawing.Bitmap. 115 | /// 116 | internal static System.Drawing.Bitmap info_16 { 117 | get { 118 | object obj = ResourceManager.GetObject("info_16", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Drawing.Bitmap. 125 | /// 126 | internal static System.Drawing.Bitmap open_box_icon { 127 | get { 128 | object obj = ResourceManager.GetObject("open_box_icon", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// Looks up a localized resource of type System.Drawing.Bitmap. 135 | /// 136 | internal static System.Drawing.Bitmap password_16 { 137 | get { 138 | object obj = ResourceManager.GetObject("password_16", resourceCulture); 139 | return ((System.Drawing.Bitmap)(obj)); 140 | } 141 | } 142 | 143 | /// 144 | /// Looks up a localized resource of type System.Drawing.Bitmap. 145 | /// 146 | internal static System.Drawing.Bitmap red_warning_16 { 147 | get { 148 | object obj = ResourceManager.GetObject("red_warning_16", resourceCulture); 149 | return ((System.Drawing.Bitmap)(obj)); 150 | } 151 | } 152 | 153 | /// 154 | /// Looks up a localized resource of type System.Drawing.Bitmap. 155 | /// 156 | internal static System.Drawing.Bitmap tune_16 { 157 | get { 158 | object obj = ResourceManager.GetObject("tune_16", resourceCulture); 159 | return ((System.Drawing.Bitmap)(obj)); 160 | } 161 | } 162 | } 163 | } 164 | -------------------------------------------------------------------------------- /Appacker/AboutForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Appacker 2 | { 3 | partial class AboutForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutForm)); 32 | this.btnDismiss = new System.Windows.Forms.Button(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.linkIconsCredit = new System.Windows.Forms.LinkLabel(); 35 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 36 | this.label2 = new System.Windows.Forms.Label(); 37 | this.labVersion = new System.Windows.Forms.Label(); 38 | this.label6 = new System.Windows.Forms.Label(); 39 | this.label8 = new System.Windows.Forms.Label(); 40 | this.linkGithub = new System.Windows.Forms.LinkLabel(); 41 | this.label7 = new System.Windows.Forms.Label(); 42 | this.linkIconsCredit2 = new System.Windows.Forms.LinkLabel(); 43 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 44 | this.SuspendLayout(); 45 | // 46 | // btnDismiss 47 | // 48 | resources.ApplyResources(this.btnDismiss, "btnDismiss"); 49 | this.btnDismiss.Name = "btnDismiss"; 50 | this.btnDismiss.UseVisualStyleBackColor = true; 51 | this.btnDismiss.Click += new System.EventHandler(this.btnDismiss_Click); 52 | // 53 | // label1 54 | // 55 | resources.ApplyResources(this.label1, "label1"); 56 | this.label1.Name = "label1"; 57 | // 58 | // linkIconsCredit 59 | // 60 | resources.ApplyResources(this.linkIconsCredit, "linkIconsCredit"); 61 | this.linkIconsCredit.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 62 | this.linkIconsCredit.Name = "linkIconsCredit"; 63 | this.linkIconsCredit.TabStop = true; 64 | this.linkIconsCredit.VisitedLinkColor = System.Drawing.Color.Indigo; 65 | this.linkIconsCredit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkIconsCredit_LinkClicked); 66 | // 67 | // pictureBox1 68 | // 69 | resources.ApplyResources(this.pictureBox1, "pictureBox1"); 70 | this.pictureBox1.Image = global::Appacker.Properties.Resources.open_box_icon; 71 | this.pictureBox1.Name = "pictureBox1"; 72 | this.pictureBox1.TabStop = false; 73 | // 74 | // label2 75 | // 76 | resources.ApplyResources(this.label2, "label2"); 77 | this.label2.Name = "label2"; 78 | // 79 | // labVersion 80 | // 81 | resources.ApplyResources(this.labVersion, "labVersion"); 82 | this.labVersion.Name = "labVersion"; 83 | // 84 | // label6 85 | // 86 | resources.ApplyResources(this.label6, "label6"); 87 | this.label6.Name = "label6"; 88 | // 89 | // label8 90 | // 91 | resources.ApplyResources(this.label8, "label8"); 92 | this.label8.Name = "label8"; 93 | // 94 | // linkGithub 95 | // 96 | resources.ApplyResources(this.linkGithub, "linkGithub"); 97 | this.linkGithub.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 98 | this.linkGithub.Name = "linkGithub"; 99 | this.linkGithub.TabStop = true; 100 | this.linkGithub.VisitedLinkColor = System.Drawing.Color.Indigo; 101 | this.linkGithub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkGithub_LinkClicked); 102 | // 103 | // label7 104 | // 105 | resources.ApplyResources(this.label7, "label7"); 106 | this.label7.Name = "label7"; 107 | // 108 | // linkIconsCredit2 109 | // 110 | resources.ApplyResources(this.linkIconsCredit2, "linkIconsCredit2"); 111 | this.linkIconsCredit2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; 112 | this.linkIconsCredit2.Name = "linkIconsCredit2"; 113 | this.linkIconsCredit2.TabStop = true; 114 | this.linkIconsCredit2.VisitedLinkColor = System.Drawing.Color.Indigo; 115 | this.linkIconsCredit2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkIconsCredit2_LinkClicked); 116 | // 117 | // AboutForm 118 | // 119 | this.AcceptButton = this.btnDismiss; 120 | resources.ApplyResources(this, "$this"); 121 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 122 | this.Controls.Add(this.pictureBox1); 123 | this.Controls.Add(this.linkGithub); 124 | this.Controls.Add(this.linkIconsCredit2); 125 | this.Controls.Add(this.linkIconsCredit); 126 | this.Controls.Add(this.label2); 127 | this.Controls.Add(this.label8); 128 | this.Controls.Add(this.label6); 129 | this.Controls.Add(this.labVersion); 130 | this.Controls.Add(this.label7); 131 | this.Controls.Add(this.label1); 132 | this.Controls.Add(this.btnDismiss); 133 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 134 | this.MaximizeBox = false; 135 | this.MinimizeBox = false; 136 | this.Name = "AboutForm"; 137 | this.ShowInTaskbar = false; 138 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 139 | this.ResumeLayout(false); 140 | this.PerformLayout(); 141 | 142 | } 143 | 144 | #endregion 145 | 146 | private System.Windows.Forms.Button btnDismiss; 147 | private System.Windows.Forms.Label label1; 148 | private System.Windows.Forms.LinkLabel linkIconsCredit; 149 | private System.Windows.Forms.PictureBox pictureBox1; 150 | private System.Windows.Forms.Label label2; 151 | private System.Windows.Forms.Label labVersion; 152 | private System.Windows.Forms.Label label6; 153 | private System.Windows.Forms.Label label8; 154 | private System.Windows.Forms.LinkLabel linkGithub; 155 | private System.Windows.Forms.Label label7; 156 | private System.Windows.Forms.LinkLabel linkIconsCredit2; 157 | } 158 | } --------------------------------------------------------------------------------