├── Main.png
├── Inputs.png
├── README.pdf
├── Source
├── App.ico
├── App.config
├── Functions.cs
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── ApiKey.cs
├── Program.cs
├── Global.cs
├── Result.cs
├── FormExtendedInfo.cs
├── FormResponse.cs
├── Input.cs
├── TargetAnalyser.sln
├── FormOptions.cs
├── FormInputs.cs
├── FormAbout.cs
├── ApiKeys.cs
├── FormResponse.Designer.cs
├── FormOptions.Designer.cs
├── FormExtendedInfo.Designer.cs
├── Inputs.cs
├── Settings.cs
├── GzipWebClient.cs
├── FormInputs.Designer.cs
├── Output.cs
├── TargetAnalyser.csproj
├── FormAbout.Designer.cs
├── Analyser.cs
├── FormInputs.resx
├── FormOptions.resx
├── FormResponse.resx
├── FormExtendedInfo.resx
├── FormMain.resx
└── FormAbout.resx
├── Dependencies
├── CsvHelper
│ ├── Info.txt
│ └── CsvHelper.dll
├── woanware
│ ├── Network.dll
│ └── Utility.dll
└── ObjectListView
│ └── ObjectListView.dll
├── Help
├── History.pdf
└── History.md
├── configuration.pdf
├── .gitignore
├── README.md
├── configuration.md
└── Inputs
└── Inputs.xml
/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Main.png
--------------------------------------------------------------------------------
/Inputs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Inputs.png
--------------------------------------------------------------------------------
/README.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/README.pdf
--------------------------------------------------------------------------------
/Source/App.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Source/App.ico
--------------------------------------------------------------------------------
/Dependencies/CsvHelper/Info.txt:
--------------------------------------------------------------------------------
1 | URL: https://github.com/JoshClose/CsvHelper
2 | Version: 2.11
--------------------------------------------------------------------------------
/Help/History.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Help/History.pdf
--------------------------------------------------------------------------------
/configuration.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/configuration.pdf
--------------------------------------------------------------------------------
/Dependencies/woanware/Network.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Dependencies/woanware/Network.dll
--------------------------------------------------------------------------------
/Dependencies/woanware/Utility.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Dependencies/woanware/Utility.dll
--------------------------------------------------------------------------------
/Dependencies/CsvHelper/CsvHelper.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Dependencies/CsvHelper/CsvHelper.dll
--------------------------------------------------------------------------------
/Dependencies/ObjectListView/ObjectListView.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/woanware/TargetAnalyser/HEAD/Dependencies/ObjectListView/ObjectListView.dll
--------------------------------------------------------------------------------
/Source/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Source/Functions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | namespace TargetAnalyser
7 | {
8 | class Functions
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Source/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Source/ApiKey.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | ///
4 | ///
5 | ///
6 | public class ApiKey
7 | {
8 | #region Properties/Variables
9 | public string Name { get; set; } = string.Empty;
10 | public string Value { get; set; } = string.Empty;
11 | public string Marker { get; set; } = string.Empty;
12 | #endregion
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Source/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TargetAnalyser
5 | {
6 | static class Program
7 | {
8 | ///
9 | /// The main entry point for the application.
10 | ///
11 | [STAThread]
12 | static void Main(string[] args)
13 | {
14 | Application.EnableVisualStyles();
15 | Application.SetCompatibleTextRenderingDefault(false);
16 |
17 | Application.Run(new FormMain());
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Source/Global.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 |
4 | namespace TargetAnalyser
5 | {
6 | ///
7 | ///
8 | ///
9 | public class Global
10 | {
11 | ///
12 | ///
13 | ///
14 | public enum View
15 | {
16 | Full = 0,
17 | Condensed = 1
18 | }
19 |
20 | ///
21 | ///
22 | ///
23 | public enum OutputMode
24 | {
25 | Csv = 0,
26 | Xml = 1,
27 | Json = 2
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Source/Result.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | ///
4 | ///
5 | ///
6 | public class Result
7 | {
8 | #region Member Variables
9 | public string Source { get; set; } = string.Empty;
10 | public string Info { get; set; } = string.Empty;
11 | public string ExtendedInfo { get; set; } = string.Empty;
12 | public string FullUrl { get; set; } = string.Empty;
13 | public string Url { get; set; } = string.Empty;
14 | public string Response { get; set; } = string.Empty;
15 | public bool Identified { get; set; }
16 | public bool HasExtended { get; set; }
17 | #endregion
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Source/FormExtendedInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 |
3 | namespace TargetAnalyser
4 | {
5 | ///
6 | ///
7 | ///
8 | public partial class FormExtendedInfo : Form
9 | {
10 | #region Constructor
11 | ///
12 | ///
13 | ///
14 | ///
15 | public FormExtendedInfo(string info)
16 | {
17 | InitializeComponent();
18 |
19 | textExtendedInfo.Text = info;
20 | }
21 | #endregion
22 |
23 | #region Button Event Handlers
24 | ///
25 | ///
26 | ///
27 | ///
28 | ///
29 | private void butClose_Click(object sender, System.EventArgs e)
30 | {
31 | this.DialogResult = DialogResult.OK;
32 | }
33 | #endregion
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Source/FormResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TargetAnalyser
5 | {
6 | ///
7 | ///
8 | ///
9 | public partial class FormResponse : Form
10 | {
11 | #region Constructor
12 | ///
13 | ///
14 | ///
15 | ///
16 | public FormResponse(string response)
17 | {
18 | InitializeComponent();
19 |
20 | textResponse.Text = response;
21 | }
22 | #endregion
23 |
24 | #region Button Event Handlers
25 | ///
26 | ///
27 | ///
28 | ///
29 | ///
30 | private void butClose_Click(object sender, EventArgs e)
31 | {
32 | this.DialogResult = DialogResult.OK;
33 | }
34 | #endregion
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Source/Input.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using woanware;
3 |
4 | namespace TargetAnalyser
5 | {
6 | ///
7 | ///
8 | ///
9 | public class Input
10 | {
11 | #region Properties/Member Variables
12 | public string Name { get; set; }
13 | public bool Enabled { get; set; }
14 | public string Url { get; set; }
15 | public string FullUrl { get; set; }
16 | public List DataTypes { get; set; } = new List();
17 | public List Regexes { get; set; } = new List();
18 | public List Results { get; set; } = new List();
19 | public string MultipleMatchRegex { get; set; }
20 | public string LinkRegex { get; set; }
21 | public string HttpMethod { get; set; }
22 | public string HttpBody { get; set; }
23 | public List HttpHeaders { get; set; } = new List();
24 | public bool StripNewLines { get; set; }
25 | #endregion
26 | }
27 | }
--------------------------------------------------------------------------------
/Source/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 TargetAnalyser.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.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 |
--------------------------------------------------------------------------------
/Source/TargetAnalyser.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TargetAnalyser", "TargetAnalyser.csproj", "{B620E1DA-DF2A-41CB-9181-08FC5363E97C}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|x86 = Debug|x86
12 | Release|Any CPU = Release|Any CPU
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Debug|x86.ActiveCfg = Debug|x86
19 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Debug|x86.Build.0 = Debug|x86
20 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Release|Any CPU.ActiveCfg = Release|Any CPU
21 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Release|Any CPU.Build.0 = Release|Any CPU
22 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Release|x86.ActiveCfg = Release|x86
23 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}.Release|x86.Build.0 = Release|x86
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/Source/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("TargetAnalyser")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("woanware")]
12 | [assembly: AssemblyProduct("TargetAnalyser")]
13 | [assembly: AssemblyCopyright("Copyright © woanware 2016")]
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("92b73f09-7966-4cc7-adf7-ca7b41fd82b5")]
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")]
36 | [assembly: AssemblyFileVersion("1.0.0")]
37 |
--------------------------------------------------------------------------------
/Source/FormOptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TargetAnalyser
5 | {
6 | ///
7 | ///
8 | ///
9 | public partial class FormOptions : Form
10 | {
11 | #region Member Variables
12 | private Settings _settings;
13 | #endregion
14 |
15 | #region Constructor
16 | ///
17 | ///
18 | ///
19 | public FormOptions(Settings settings)
20 | {
21 | InitializeComponent();
22 | _settings = settings;
23 |
24 | //chkUrlVoidPassive.Checked = _settings.UrlVoidPassive;
25 | }
26 | #endregion
27 |
28 | #region Button Event Handlers
29 | ///
30 | ///
31 | ///
32 | ///
33 | ///
34 | private void btnOk_Click(object sender, EventArgs e)
35 | {
36 | this.DialogResult = System.Windows.Forms.DialogResult.OK;
37 | }
38 |
39 | ///
40 | ///
41 | ///
42 | ///
43 | ///
44 | private void btnCancel_Click(object sender, EventArgs e)
45 | {
46 | this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
47 | }
48 | #endregion
49 |
50 | #region Properties
51 | public Settings Settings
52 | {
53 | get { return _settings; }
54 | }
55 | #endregion
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Source/FormInputs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace TargetAnalyser
5 | {
6 | ///
7 | ///
8 | ///
9 | public partial class FormInputs : Form
10 | {
11 | public Inputs Inputs { get; private set; }
12 |
13 | #region Constructor
14 | ///
15 | ///
16 | ///
17 | public FormInputs(Inputs i)
18 | {
19 | InitializeComponent();
20 |
21 | this.Inputs = i;
22 |
23 | this.listProviders.BooleanCheckStateGetter = delegate(Object rowObject)
24 | {
25 | return ((Input)rowObject).Enabled;
26 | };
27 |
28 | this.olvcDataTypes.AspectGetter = delegate (Object rowObject)
29 | {
30 | return string.Join(", ", ((Input)rowObject).DataTypes);
31 | };
32 |
33 | this.listProviders.BooleanCheckStatePutter = delegate(Object rowObject, bool newValue)
34 | {
35 | ((Input)rowObject).Enabled = newValue;
36 | return newValue; // return the value that you want the control to use
37 | };
38 |
39 | LoadProviders();
40 | }
41 | #endregion
42 |
43 | #region Misc Methods
44 | ///
45 | ///
46 | ///
47 | private void LoadProviders()
48 | {
49 | listProviders.AddObjects(this.Inputs.Data);
50 | olvcInput.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
51 | olvcDataTypes.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
52 | }
53 | #endregion
54 |
55 | #region Button Event Handlers
56 | ///
57 | ///
58 | ///
59 | ///
60 | ///
61 | private void btnClose_Click(object sender, EventArgs e)
62 | {
63 | this.DialogResult = DialogResult.OK;
64 | }
65 | #endregion
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
2 | [Bb]in/
3 | [Oo]bj/
4 |
5 | # mstest test results
6 | TestResults
7 |
8 | ## Ignore Visual Studio temporary files, build results, and
9 | ## files generated by popular Visual Studio add-ons.
10 |
11 | # User-specific files
12 | *.suo
13 | *.user
14 | *.sln.docstates
15 |
16 | # Build results
17 | [Dd]ebug/
18 | [Rr]elease/
19 | x64/
20 | *_i.c
21 | *_p.c
22 | *.ilk
23 | *.meta
24 | *.obj
25 | *.pch
26 | *.pdb
27 | *.pgc
28 | *.pgd
29 | *.rsp
30 | *.sbr
31 | *.tlb
32 | *.tli
33 | *.tlh
34 | *.tmp
35 | *.log
36 | *.vspscc
37 | *.vssscc
38 | .builds
39 |
40 | # Visual C++ cache files
41 | ipch/
42 | *.aps
43 | *.ncb
44 | *.opensdf
45 | *.sdf
46 |
47 | # Visual Studio profiler
48 | *.psess
49 | *.vsp
50 | *.vspx
51 |
52 | # Guidance Automation Toolkit
53 | *.gpState
54 |
55 | # ReSharper is a .NET coding add-in
56 | _ReSharper*
57 |
58 | # NCrunch
59 | *.ncrunch*
60 | .*crunch*.local.xml
61 |
62 | # Installshield output folder
63 | [Ee]xpress
64 |
65 | # DocProject is a documentation generator add-in
66 | DocProject/buildhelp/
67 | DocProject/Help/*.HxT
68 | DocProject/Help/*.HxC
69 | DocProject/Help/*.hhc
70 | DocProject/Help/*.hhk
71 | DocProject/Help/*.hhp
72 | DocProject/Help/Html2
73 | DocProject/Help/html
74 |
75 | # Click-Once directory
76 | publish
77 |
78 | # Publish Web Output
79 | *.Publish.xml
80 |
81 | # NuGet Packages Directory
82 | packages
83 |
84 | # Windows Azure Build Output
85 | csx
86 | *.build.csdef
87 |
88 | # Windows Store app package directory
89 | AppPackages/
90 |
91 | # Others
92 | [Bb]in
93 | [Oo]bj
94 | sql
95 | TestResults
96 | [Tt]est[Rr]esult*
97 | *.Cache
98 | ClientBin
99 | [Ss]tyle[Cc]op.*
100 | ~$*
101 | *.dbmdl
102 | Generated_Code #added for RIA/Silverlight projects
103 |
104 | # Backup & report files from converting an old project file to a newer
105 | # Visual Studio version. Backup files are not needed, because we have git ;-)
106 | _UpgradeReport_Files/
107 | Backup*/
108 | UpgradeLog*.XML
109 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TargetAnalyser
2 |
3 | ## Info ##
4 |
5 | TargetAnalyser is basically a rip off of [Automater](http://www.tekdefense.com/automater/), which is a python script designed to perform URL/Domain, IP Address, and MD5 Hash OSINT tool aimed at making the analysis process easier for intrusion Analysts.
6 |
7 | The issue for me is that sometimes I want to look at the page that produced the output, so a UI provides an easy way to get all the info and yet still provide a quick method to open the page. I have also added a lot more OSINT.
8 |
9 | All of the input sources are controlled via the **Inputs.xml** file which is located in the application directory. An example of the configured inputs is shown in the **Inputs** screenshot below.
10 |
11 | The inputs use regular expressions to extract information from a HTTP response. There are various options that can be set for the input source; these options are detailed in the **configuration** document.
12 |
13 | ## Features ##
14 |
15 | - Easy to add new sources
16 | - Supports IP, Domain, URL and MD5 lookups
17 | - File input data supported
18 | - Trivially open the web page for the data
19 | - Can show the HTTP response to fix regular expression issues
20 | - Has 20 defined input sources (as of v1.0.0 release)
21 |
22 | ## API Keys
23 |
24 | Each of the **inputs** can use an API key defined in the **ApiKeys.xml** file, located in the application directory. There are two initial defined VirusTotal (VT) and Google SafeBrowsing (GSB), so to use the VT and GSB functionality you need to register with the services and set the API key in the file
25 |
26 | ## Third party libraries ##
27 |
28 | - [CommandLine](https://github.com/gsscoder/commandline): Used for command line parsing
29 | - [CsvHelper](https://github.com/JoshClose/CsvHelper): CSV export
30 | - [DNS](http://www.codeproject.com/Articles/23673/DNS-NET-Resolver-C): DNS lookups
31 | - [ObjectListView](http://objectlistview.sourceforge.net/cs/index.html) : Data viewing via lists
32 | - [VirusTotal.NET](https://github.com/woanware/VirusTotal.NET): Fork from https://github.com/Genbox/VirusTotal.NET
33 | - [Utility](http://www.woanware.co.uk): Misc functions (woanware)
34 |
35 | ## Third Party
36 |
37 | - [Icons8](https://icons8.com): Icons
38 |
39 | ## Requirements ##
40 |
41 | - Microsoft .NET Framework v4.6.1
42 | - Windows x64
43 |
44 | ## Screenshots
45 |
46 | 
47 |
48 | 
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Help/History.md:
--------------------------------------------------------------------------------
1 | # TargetAnalyser #
2 |
3 | ## History ##
4 |
5 | **v1.0.0**
6 |
7 | - Rewrote entire processing engine to use a user configurable XML input file (Inputs.xml)
8 | - Can show HTTP response for easier regex debugging
9 | - Can show extended information from source response e.g. MultipleMatchRegex matches
10 | - Removed file input functionality
11 | - Removed console functionality
12 | - Processing is now parallelised
13 | - Can reload the "Inputs.xml" and "ApiKeys.xml" config files whilst the application is loaded
14 | - Removed old dependencies
15 | - Made compatible with .Net v4.6.1
16 | - Made x64 only
17 | - Added update from web functionality
18 |
19 | **v0.0.10**
20 |
21 | - Modified so that the IP void checks display a generic not found message if the IP cannot be identified
22 | - Updated alienvault URL
23 |
24 | **v0.0.9**
25 |
26 | - Added the ability to make UrlVoid/IpVoid checks passive. Thanks MattN
27 | - Modified the UrlVoid processing to remove "www" sub domains as UrlVoid doesn't recognise them as the main domain. Thanks MattN
28 |
29 | **v0.0.8**
30 |
31 | - Added a 10s pause on the Virus Total checks when using an import file
32 | - Fixed bug where the CSV export didn’t do anything. Thanks MartinW
33 |
34 | **v0.0.7**
35 |
36 | - Added the ability to perform a scan from an import file so that lists of IPs, domains or hashes can be performed
37 | - Modified so that the system web proxy is used when performing requests. Thanks DanO
38 |
39 | **v0.0.6**
40 |
41 | - Added Google Diagnostics as an IP/domain provider
42 | - Modifed the robtek processing to stop duplicates
43 | - Added the Parent URL and URL columns to the results list view
44 |
45 | **v0.0.5**
46 |
47 | - Updated the robtex regex as they have modified the HTML
48 | - Added a spoof User-Agent since the Hurricane Electric queries were not working correctly
49 |
50 | **v0.0.4**
51 |
52 | - Modified to allow user selection of sources/providers
53 | - Modified to persist user settings
54 | - Modified to allow command line running
55 | - Improved code layout
56 | - Added ability to export to CSV, XML and JSON
57 |
58 | **v0.0.3**
59 |
60 | - Added status updates
61 | - Added HpHosts
62 | - Added Hurricane Electric
63 |
64 | **v0.0.2**
65 |
66 | - Added threadexpert MD5 lookup
67 | - Added VxVault MD5 lookup
68 | - Added MinotaurAnalysis MD5 lookup
69 | - Added VirusTotal MD5 lookup
70 | - Added BKN passive DNS lookup
71 | - Added VirusTotal passive DNS lookup
72 | - Added retry capability
73 |
74 | **v0.0.1**
75 |
76 | - Initial release
77 |
78 |
--------------------------------------------------------------------------------
/Source/FormAbout.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 |
3 | namespace TargetAnalyser
4 | {
5 | public partial class FormAbout : Form
6 | {
7 | #region Constructor
8 | ///
9 | ///
10 | ///
11 | public FormAbout()
12 | {
13 | InitializeComponent();
14 |
15 | lblApp.Text = Application.ProductName;
16 | lblVer.Text = "v" + Application.ProductVersion;
17 | }
18 | #endregion
19 |
20 | #region Link Event Handlers
21 | ///
22 | ///
23 | ///
24 | ///
25 | ///
26 | private void linkEmail_LinkClicked(object sender, System.EventArgs e)
27 | {
28 | System.Diagnostics.Process process = new System.Diagnostics.Process();
29 | process.StartInfo.RedirectStandardOutput = false;
30 | process.StartInfo.FileName = "mailto:" + linkEmail.Text;
31 | process.StartInfo.UseShellExecute = true;
32 | process.Start();
33 | }
34 |
35 | ///
36 | ///
37 | ///
38 | ///
39 | ///
40 | private void linkWeb_LinkClicked(object sender, System.EventArgs e)
41 | {
42 | System.Diagnostics.Process process = new System.Diagnostics.Process();
43 | process.StartInfo.RedirectStandardOutput = false;
44 | process.StartInfo.FileName = "http://" + linkWeb.Text;
45 | process.StartInfo.UseShellExecute = true;
46 | process.Start();
47 | }
48 |
49 | ///
50 | ///
51 | ///
52 | ///
53 | ///
54 | private void linkIcons8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
55 | {
56 | System.Diagnostics.Process process = new System.Diagnostics.Process();
57 | process.StartInfo.RedirectStandardOutput = false;
58 | process.StartInfo.FileName = "https://" + linkIcons8.Text;
59 | process.StartInfo.UseShellExecute = true;
60 | process.Start();
61 | }
62 | #endregion
63 |
64 | #region Button Event Handlers
65 | ///
66 | ///
67 | ///
68 | ///
69 | ///
70 | private void btnClose_Click(object sender, System.EventArgs e)
71 | {
72 | this.DialogResult = DialogResult.OK;
73 | }
74 | #endregion
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/Source/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 TargetAnalyser.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", "4.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("TargetAnalyser.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 |
--------------------------------------------------------------------------------
/configuration.md:
--------------------------------------------------------------------------------
1 | # Configuration
2 |
3 | This **configuration** document details the XML config files used to configure the inputs and API keys.
4 |
5 | ## Inputs.xml
6 |
7 | The following details the XML for the **Inputs.xml** file, which is located in the application directory.
8 |
9 | - **Name**: Name of the input e.g. VirusTotal (MD5)
10 | - **Url**: The URL of the main page for the input e.g. https://www.virustotal.com/vtapi/v2/file/report
11 | - **FullUrl**: The full URL used to retrieve the data from the source. Can include the **#DATA#** marker and also API key markers e.g.
12 |
13 | ```
14 | https://www.virustotal.com/vtapi/v2/file/report?resource=#DATA#&apikey=#VT_API_KEY#
15 | ```
16 |
17 | - **DataTypes**: A list of the supported data types that can be extracted from the input (MD5, IP, Domain, URL)
18 |
19 | ```
20 |
21 | MD5
22 | IP
23 |
24 | ```
25 |
26 | - **Regexes**: A list of regular expressions that are used to extract data from the page retrieved from the FullUrl location. Each regular expression should include a group e.g. \"response_code\":\s(.*?),
27 |
28 |
29 | ```
30 |
31 | \"response_code\":\s(.*?),
32 | \"scan_date\":\s"(.*?)",
33 | \"positives\":\s(.*?),
34 | \"total\":\s(.*?),
35 | \"result\":\s"(.*?)",
36 |
37 | ```
38 |
39 | - **Results**: A list of names/titles/values that relate one to one with the **Regexes** defined
40 |
41 | ```
42 |
43 | Response Code
44 | Scan Date
45 | Positives
46 | Total
47 | Result
48 |
49 | ```
50 |
51 | - **MultipleMatchRegex**: A single regular expression that can identify multiple values from a page. The first result is displayed, and the rest are stored as extended information
52 | - **LinkRegex**: A single regular expression used to extract a URL that provides an easy way to reference back to the page e.g.\"permalink\":\s"(.*?)",
53 | - **HttpMethod**: The HTTP method used for the request (GET, POST)
54 | - **HttpBody**: The HTTP body to be sent. Can include the **#DATA#** marker and also API key markers
55 | - **HttpHeaders**: A list of the HTTP headers to be sent with the request:
56 |
57 | ```
58 |
59 |
60 | Content-Type
61 | application/x-www-form-urlencoded
62 |
63 |
64 | ```
65 |
66 | - **StringNewLines**: This option removes new lines from the HTTP response, with the aim to aid the parsing. Defaults to false
67 |
68 | ```
69 | true
70 | ```
71 |
72 | ## API Keys
73 |
74 | The following details the XML for the **ApiKeys.xml** file, which is located in the application directory. The API keys file can contain as many API keys as is required.
75 |
76 | The application will transpose the matching **Marker** value that is located in the **FullUrl** and/or **HttpBody** properties within the Input.
77 |
78 | ```
79 |
80 |
81 |
82 | VT
83 | ABC1272djdjdjd
84 | #VT_API_KEY#
85 |
86 |
87 | GSB
88 | ABDBDBre3rewrewrewr
89 | #GSB_API_KEY#
90 |
91 |
92 |
93 | ```
94 |
95 |
--------------------------------------------------------------------------------
/Source/ApiKeys.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Xml.Serialization;
5 | using woanware;
6 |
7 | namespace TargetAnalyser
8 | {
9 | ///
10 | ///
11 | ///
12 | public class ApiKeys
13 | {
14 | #region Constants
15 | private const string FILENAME = "ApiKeys.xml";
16 | #endregion
17 |
18 | #region Properties/Variables
19 | public List Data = new List();
20 | #endregion
21 |
22 | #region Public Methods
23 | ///
24 | ///
25 | ///
26 | ///
27 | public string Load()
28 | {
29 | try
30 | {
31 | string path = GetPath();
32 |
33 | if (File.Exists(path) == false)
34 | {
35 | return string.Empty;
36 | }
37 |
38 | XmlSerializer serializer = new XmlSerializer(typeof(ApiKeys));
39 |
40 | FileInfo info = new FileInfo(path);
41 | using (FileStream stream = info.OpenRead())
42 | {
43 | ApiKeys ak = (ApiKeys)serializer.Deserialize(stream);
44 | this.Data = ak.Data;
45 | return string.Empty;
46 | }
47 | }
48 | catch (FileNotFoundException fileNotFoundEx)
49 | {
50 | return fileNotFoundEx.Message;
51 | }
52 | catch (UnauthorizedAccessException unauthAccessEx)
53 | {
54 | return unauthAccessEx.Message;
55 | }
56 | catch (IOException ioEx)
57 | {
58 | return ioEx.Message;
59 | }
60 | catch (Exception ex)
61 | {
62 | if (ex.InnerException != null)
63 | {
64 | return ex.InnerException.Message;
65 | }
66 |
67 | return ex.Message;
68 | }
69 | }
70 |
71 | ///
72 | ///
73 | ///
74 | ///
75 | public string Save()
76 | {
77 | try
78 | {
79 | XmlSerializer serializer = new XmlSerializer(typeof(ApiKeys));
80 | using (StreamWriter writer = new StreamWriter(GetPath(), false))
81 | {
82 | serializer.Serialize((TextWriter)writer, this);
83 | return string.Empty;
84 | }
85 | }
86 | catch (FileNotFoundException fileNotFoundEx)
87 | {
88 | return fileNotFoundEx.Message;
89 | }
90 | catch (UnauthorizedAccessException unauthAccessEx)
91 | {
92 | return unauthAccessEx.Message;
93 | }
94 | catch (IOException ioEx)
95 | {
96 | return ioEx.Message;
97 | }
98 | catch (Exception ex)
99 | {
100 | return ex.Message;
101 | }
102 | }
103 | #endregion
104 |
105 | #region Misc Methods
106 | ///
107 | ///
108 | ///
109 | ///
110 | private string GetPath()
111 | {
112 | return System.IO.Path.Combine(Misc.GetApplicationDirectory(), FILENAME);
113 | }
114 |
115 | ///
116 | ///
117 | ///
118 | public bool FileExists
119 | {
120 | get
121 | {
122 | return File.Exists(GetPath());
123 | }
124 | }
125 | #endregion
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/Source/FormResponse.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | partial class FormResponse
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(FormResponse));
32 | this.butClose = new System.Windows.Forms.Button();
33 | this.textResponse = new System.Windows.Forms.RichTextBox();
34 | this.SuspendLayout();
35 | //
36 | // butClose
37 | //
38 | this.butClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
39 | this.butClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
40 | this.butClose.Location = new System.Drawing.Point(641, 509);
41 | this.butClose.Name = "butClose";
42 | this.butClose.Size = new System.Drawing.Size(100, 35);
43 | this.butClose.TabIndex = 3;
44 | this.butClose.Text = "Close";
45 | this.butClose.UseVisualStyleBackColor = true;
46 | this.butClose.Click += new System.EventHandler(this.butClose_Click);
47 | //
48 | // textResponse
49 | //
50 | this.textResponse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
51 | | System.Windows.Forms.AnchorStyles.Left)
52 | | System.Windows.Forms.AnchorStyles.Right)));
53 | this.textResponse.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
54 | this.textResponse.Location = new System.Drawing.Point(13, 12);
55 | this.textResponse.Name = "textResponse";
56 | this.textResponse.ReadOnly = true;
57 | this.textResponse.Size = new System.Drawing.Size(727, 484);
58 | this.textResponse.TabIndex = 2;
59 | this.textResponse.Text = "";
60 | //
61 | // FormResponse
62 | //
63 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
65 | this.ClientSize = new System.Drawing.Size(756, 558);
66 | this.Controls.Add(this.butClose);
67 | this.Controls.Add(this.textResponse);
68 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
69 | this.MinimumSize = new System.Drawing.Size(300, 300);
70 | this.Name = "FormResponse";
71 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
72 | this.Text = "Response";
73 | this.ResumeLayout(false);
74 |
75 | }
76 |
77 | #endregion
78 |
79 | private System.Windows.Forms.Button butClose;
80 | private System.Windows.Forms.RichTextBox textResponse;
81 | }
82 | }
--------------------------------------------------------------------------------
/Source/FormOptions.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | partial class FormOptions
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(FormOptions));
32 | this.btnCancel = new System.Windows.Forms.Button();
33 | this.btnOk = new System.Windows.Forms.Button();
34 | this.SuspendLayout();
35 | //
36 | // btnCancel
37 | //
38 | this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
39 | this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
40 | this.btnCancel.Location = new System.Drawing.Point(178, 8);
41 | this.btnCancel.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
42 | this.btnCancel.Name = "btnCancel";
43 | this.btnCancel.Size = new System.Drawing.Size(100, 35);
44 | this.btnCancel.TabIndex = 7;
45 | this.btnCancel.Text = "Cancel";
46 | this.btnCancel.UseVisualStyleBackColor = true;
47 | this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
48 | //
49 | // btnOk
50 | //
51 | this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
52 | this.btnOk.Location = new System.Drawing.Point(65, 20);
53 | this.btnOk.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
54 | this.btnOk.Name = "btnOk";
55 | this.btnOk.Size = new System.Drawing.Size(100, 35);
56 | this.btnOk.TabIndex = 6;
57 | this.btnOk.Text = "OK";
58 | this.btnOk.UseVisualStyleBackColor = true;
59 | this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
60 | //
61 | // FormOptions
62 | //
63 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
65 | this.ClientSize = new System.Drawing.Size(298, 68);
66 | this.Controls.Add(this.btnCancel);
67 | this.Controls.Add(this.btnOk);
68 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F);
69 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
70 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
71 | this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
72 | this.MaximizeBox = false;
73 | this.MinimizeBox = false;
74 | this.Name = "FormOptions";
75 | this.ShowInTaskbar = false;
76 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
77 | this.Text = "Options";
78 | this.ResumeLayout(false);
79 |
80 | }
81 |
82 | #endregion
83 |
84 | private System.Windows.Forms.Button btnCancel;
85 | private System.Windows.Forms.Button btnOk;
86 | }
87 | }
--------------------------------------------------------------------------------
/Source/FormExtendedInfo.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | partial class FormExtendedInfo
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(FormExtendedInfo));
32 | this.textExtendedInfo = new System.Windows.Forms.RichTextBox();
33 | this.butClose = new System.Windows.Forms.Button();
34 | this.SuspendLayout();
35 | //
36 | // textExtendedInfo
37 | //
38 | this.textExtendedInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
39 | | System.Windows.Forms.AnchorStyles.Left)
40 | | System.Windows.Forms.AnchorStyles.Right)));
41 | this.textExtendedInfo.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
42 | this.textExtendedInfo.Location = new System.Drawing.Point(14, 12);
43 | this.textExtendedInfo.Name = "textExtendedInfo";
44 | this.textExtendedInfo.ReadOnly = true;
45 | this.textExtendedInfo.Size = new System.Drawing.Size(621, 408);
46 | this.textExtendedInfo.TabIndex = 0;
47 | this.textExtendedInfo.Text = "";
48 | //
49 | // butClose
50 | //
51 | this.butClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
52 | this.butClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
53 | this.butClose.Location = new System.Drawing.Point(535, 434);
54 | this.butClose.Name = "butClose";
55 | this.butClose.Size = new System.Drawing.Size(100, 35);
56 | this.butClose.TabIndex = 1;
57 | this.butClose.Text = "Close";
58 | this.butClose.UseVisualStyleBackColor = true;
59 | this.butClose.Click += new System.EventHandler(this.butClose_Click);
60 | //
61 | // FormExtendedInfo
62 | //
63 | this.AcceptButton = this.butClose;
64 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
65 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
66 | this.CancelButton = this.butClose;
67 | this.ClientSize = new System.Drawing.Size(650, 481);
68 | this.Controls.Add(this.butClose);
69 | this.Controls.Add(this.textExtendedInfo);
70 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
71 | this.MinimumSize = new System.Drawing.Size(400, 400);
72 | this.Name = "FormExtendedInfo";
73 | this.ShowInTaskbar = false;
74 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
75 | this.Text = "Extended Information";
76 | this.ResumeLayout(false);
77 |
78 | }
79 |
80 | #endregion
81 |
82 | private System.Windows.Forms.RichTextBox textExtendedInfo;
83 | private System.Windows.Forms.Button butClose;
84 | }
85 | }
--------------------------------------------------------------------------------
/Source/Inputs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Xml.Serialization;
5 | using woanware;
6 |
7 | namespace TargetAnalyser
8 | {
9 | ///
10 | ///
11 | ///
12 | public class Inputs
13 | {
14 | #region Constants
15 | private const string FILENAME = "Inputs.xml";
16 | #endregion
17 |
18 | #region Properties/Variables
19 | public int Version { get; set; } = 1;
20 | public List Data { get; set; } = new List();
21 | #endregion
22 |
23 | #region Public Methods
24 | ///
25 | ///
26 | ///
27 | ///
28 | public string Load()
29 | {
30 | return LoadFromFile(GetPath());
31 | }
32 |
33 | ///
34 | ///
35 | ///
36 | ///
37 | ///
38 | public string LoadFromFile(string path)
39 | {
40 | try
41 | {
42 | if (File.Exists(path) == false)
43 | {
44 | return string.Empty;
45 | }
46 |
47 | XmlSerializer serializer = new XmlSerializer(typeof(Inputs));
48 |
49 | FileInfo info = new FileInfo(path);
50 | using (FileStream stream = info.OpenRead())
51 | {
52 | Inputs i = (Inputs)serializer.Deserialize(stream);
53 | this.Version = i.Version;
54 | this.Data = i.Data;
55 | return string.Empty;
56 | }
57 | }
58 | catch (FileNotFoundException fileNotFoundEx)
59 | {
60 | return fileNotFoundEx.Message;
61 | }
62 | catch (UnauthorizedAccessException unauthAccessEx)
63 | {
64 | return unauthAccessEx.Message;
65 | }
66 | catch (IOException ioEx)
67 | {
68 | return ioEx.Message;
69 | }
70 | catch (Exception ex)
71 | {
72 | if (ex.InnerException != null)
73 | {
74 | return ex.InnerException.Message;
75 | }
76 |
77 | return ex.Message;
78 | }
79 | }
80 |
81 | ///
82 | ///
83 | ///
84 | ///
85 | public string Save()
86 | {
87 | try
88 | {
89 | XmlSerializer serializer = new XmlSerializer(typeof(Inputs));
90 | using (StreamWriter writer = new StreamWriter(GetPath(), false))
91 | {
92 | serializer.Serialize((TextWriter)writer, this);
93 | return string.Empty;
94 | }
95 | }
96 | catch (FileNotFoundException fileNotFoundEx)
97 | {
98 | return fileNotFoundEx.Message;
99 | }
100 | catch (UnauthorizedAccessException unauthAccessEx)
101 | {
102 | return unauthAccessEx.Message;
103 | }
104 | catch (IOException ioEx)
105 | {
106 | return ioEx.Message;
107 | }
108 | catch (Exception ex)
109 | {
110 | return ex.Message;
111 | }
112 | }
113 | #endregion
114 |
115 | #region Misc Methods
116 | ///
117 | ///
118 | ///
119 | ///
120 | private string GetPath()
121 | {
122 | return System.IO.Path.Combine(Misc.GetApplicationDirectory(), FILENAME);
123 | }
124 |
125 | ///
126 | ///
127 | ///
128 | public bool FileExists
129 | {
130 | get
131 | {
132 | //string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"woanware\" + Application.ProductName + @"\");
133 | return File.Exists(GetPath());
134 | }
135 | }
136 | #endregion
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/Source/Settings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.IO;
4 | using System.Windows.Forms;
5 | using System.Xml.Serialization;
6 | using woanware;
7 |
8 | namespace TargetAnalyser
9 | {
10 | ///
11 | /// Allows us to save/load the configuration file to/from XML
12 | ///
13 | public class Settings
14 | {
15 | #region Constants
16 | private const string FILENAME = "Settings.xml";
17 | #endregion
18 |
19 | #region Member Variables
20 | public Point FormLocation { get; set; }
21 | public Size FormSize { get; set; }
22 | public FormWindowState FormState { get; set; }
23 | public int Retries { get; set; } = 3;
24 | #endregion
25 |
26 | #region Public Methods
27 | ///
28 | ///
29 | ///
30 | ///
31 | public string Load()
32 | {
33 | try
34 | {
35 | string path = GetPath();
36 |
37 | if (File.Exists(path) == false)
38 | {
39 | return string.Empty;
40 | }
41 |
42 | XmlSerializer serializer = new XmlSerializer(typeof(Settings));
43 |
44 | FileInfo info = new FileInfo(path);
45 | using (FileStream stream = info.OpenRead())
46 | {
47 | Settings settings = (Settings)serializer.Deserialize(stream);
48 | FormLocation = settings.FormLocation;
49 | FormSize = settings.FormSize;
50 | FormState = settings.FormState;
51 | return string.Empty;
52 | }
53 | }
54 | catch (FileNotFoundException fileNotFoundEx)
55 | {
56 | return fileNotFoundEx.Message;
57 | }
58 | catch (UnauthorizedAccessException unauthAccessEx)
59 | {
60 | return unauthAccessEx.Message;
61 | }
62 | catch (IOException ioEx)
63 | {
64 | return ioEx.Message;
65 | }
66 | catch (Exception ex)
67 | {
68 | return ex.Message;
69 | }
70 | }
71 |
72 | ///
73 | ///
74 | ///
75 | ///
76 | public string Save()
77 | {
78 | try
79 | {
80 | if (System.IO.Directory.Exists(Misc.GetUserDataDirectory()) == false)
81 | {
82 | IO.CreateDirectory(Misc.GetUserDataDirectory());
83 | }
84 |
85 | XmlSerializer serializer = new XmlSerializer(typeof(Settings));
86 | using (StreamWriter writer = new StreamWriter(GetPath(), false))
87 | {
88 | serializer.Serialize((TextWriter)writer, this);
89 | return string.Empty;
90 | }
91 | }
92 | catch (FileNotFoundException fileNotFoundEx)
93 | {
94 | return fileNotFoundEx.Message;
95 | }
96 | catch (UnauthorizedAccessException unauthAccessEx)
97 | {
98 | return unauthAccessEx.Message;
99 | }
100 | catch (IOException ioEx)
101 | {
102 | return ioEx.Message;
103 | }
104 | catch (Exception ex)
105 | {
106 | return ex.Message;
107 | }
108 | }
109 | #endregion
110 |
111 | #region Misc Methods
112 | ///
113 | ///
114 | ///
115 | ///
116 | private string GetPath()
117 | {
118 | return System.IO.Path.Combine(Misc.GetUserDataDirectory(), FILENAME);
119 | }
120 |
121 | ///
122 | ///
123 | ///
124 | public bool FileExists
125 | {
126 | get
127 | {
128 | //string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"woanware\" + Application.ProductName + @"\");
129 | return File.Exists(GetPath());
130 | }
131 | }
132 | #endregion
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/Source/GzipWebClient.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Net;
4 | using woanware;
5 |
6 | namespace TargetAnalyser
7 | {
8 | ///
9 | ///
10 | ///
11 | public class WebClientResult
12 | {
13 | public string Response { get; set; }
14 | public bool IsError { get; set; }
15 |
16 | ///
17 | ///
18 | ///
19 | ///
20 | ///
21 | public WebClientResult(string response,
22 | bool isError)
23 | {
24 | Response = response;
25 | IsError = isError;
26 | }
27 | }
28 |
29 | ///
30 | ///
31 | ///
32 | public class GZipWebClient : WebClient
33 | {
34 | ///
35 | ///
36 | ///
37 | ///
38 | ///
39 | protected override WebRequest GetWebRequest(Uri address)
40 | {
41 | HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
42 | request.AutomaticDecompression = DecompressionMethods.GZip |
43 | DecompressionMethods.Deflate;
44 | request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36";
45 |
46 | IWebProxy defaultProxy = WebRequest.GetSystemWebProxy();
47 | Uri uriProxy = defaultProxy.GetProxy(address);
48 | if (uriProxy.AbsoluteUri != string.Empty)
49 | {
50 | request.Proxy = defaultProxy;
51 | }
52 | return request;
53 | }
54 |
55 | ///
56 | ///
57 | ///
58 | ///
59 | ///
60 | ///
61 | public WebClientResult Download(string url, int retries, List httpHeaders)
62 | {
63 | string lastException = string.Empty;
64 | int counter = 0;
65 | while (true)
66 | {
67 | try
68 | {
69 | foreach (var nv in httpHeaders)
70 | {
71 | this.Headers[nv.Name] = nv.Value;
72 | }
73 |
74 | string response = DownloadString(url);
75 |
76 | return new WebClientResult(response, false);
77 | }
78 | catch (WebException webEx)
79 | {
80 | counter++;
81 | if (webEx.Response == null)
82 | {
83 | if (webEx.InnerException == null)
84 | {
85 | lastException = webEx.Message;
86 | }
87 | else
88 | {
89 | lastException = webEx.InnerException.Message;
90 | }
91 | }
92 | else
93 | {
94 | lastException = ((HttpWebResponse)webEx.Response).StatusCode.ToString();
95 | if (((HttpWebResponse)webEx.Response).StatusCode == HttpStatusCode.NotFound)
96 | {
97 | return new WebClientResult(lastException, true);
98 | }
99 | }
100 | }
101 | catch (Exception ex)
102 | {
103 | counter++;
104 | lastException = ex.Message;
105 | }
106 |
107 | if (counter == retries)
108 | {
109 | break;
110 | }
111 | }
112 |
113 | return new WebClientResult(lastException, true);
114 | }
115 |
116 | ///
117 | ///
118 | ///
119 | ///
120 | ///
121 | ///
122 | public WebClientResult Post(string url, int retries, List httpHeaders, string body)
123 | {
124 | string lastException = string.Empty;
125 | int counter = 0;
126 | while (true)
127 | {
128 | try
129 | {
130 | foreach (var nv in httpHeaders)
131 | {
132 | this.Headers[nv.Name] = nv.Value;
133 | }
134 |
135 | string response = UploadString(url, body);
136 | return new WebClientResult(response, false);
137 | }
138 | catch (WebException webEx)
139 | {
140 | counter++;
141 | lastException = ((HttpWebResponse)webEx.Response).StatusCode.ToString();
142 |
143 | if (((HttpWebResponse)webEx.Response).StatusCode == HttpStatusCode.NotFound)
144 | {
145 | return new WebClientResult(lastException, true);
146 | }
147 | }
148 | catch (Exception ex)
149 | {
150 | counter++;
151 | lastException = ex.Message;
152 | }
153 |
154 | if (counter == retries)
155 | {
156 | break;
157 | }
158 | }
159 |
160 | return new WebClientResult(lastException, true);
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/Source/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 |
--------------------------------------------------------------------------------
/Source/FormInputs.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | partial class FormInputs
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(FormInputs));
32 | this.listProviders = new BrightIdeasSoftware.ObjectListView();
33 | this.olvcInput = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
34 | this.olvcDataTypes = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
35 | this.btnClose = new System.Windows.Forms.Button();
36 | ((System.ComponentModel.ISupportInitialize)(this.listProviders)).BeginInit();
37 | this.SuspendLayout();
38 | //
39 | // listProviders
40 | //
41 | this.listProviders.AllColumns.Add(this.olvcInput);
42 | this.listProviders.AllColumns.Add(this.olvcDataTypes);
43 | this.listProviders.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
44 | | System.Windows.Forms.AnchorStyles.Left)
45 | | System.Windows.Forms.AnchorStyles.Right)));
46 | this.listProviders.CellEditUseWholeCell = false;
47 | this.listProviders.CheckBoxes = true;
48 | this.listProviders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
49 | this.olvcInput,
50 | this.olvcDataTypes});
51 | this.listProviders.Cursor = System.Windows.Forms.Cursors.Default;
52 | this.listProviders.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F);
53 | this.listProviders.FullRowSelect = true;
54 | this.listProviders.HideSelection = false;
55 | this.listProviders.Location = new System.Drawing.Point(13, 12);
56 | this.listProviders.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
57 | this.listProviders.MultiSelect = false;
58 | this.listProviders.Name = "listProviders";
59 | this.listProviders.ShowGroups = false;
60 | this.listProviders.Size = new System.Drawing.Size(393, 397);
61 | this.listProviders.TabIndex = 3;
62 | this.listProviders.UseCompatibleStateImageBehavior = false;
63 | this.listProviders.View = System.Windows.Forms.View.Details;
64 | //
65 | // olvcInput
66 | //
67 | this.olvcInput.AspectName = "Name";
68 | this.olvcInput.Text = "Input";
69 | this.olvcInput.Width = 133;
70 | //
71 | // olvcDataTypes
72 | //
73 | this.olvcDataTypes.Text = "Data Types";
74 | //
75 | // btnClose
76 | //
77 | this.btnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
78 | this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
79 | this.btnClose.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F);
80 | this.btnClose.Location = new System.Drawing.Point(307, 421);
81 | this.btnClose.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
82 | this.btnClose.Name = "btnClose";
83 | this.btnClose.Size = new System.Drawing.Size(100, 35);
84 | this.btnClose.TabIndex = 5;
85 | this.btnClose.Text = "Close";
86 | this.btnClose.UseVisualStyleBackColor = true;
87 | this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
88 | //
89 | // FormInputs
90 | //
91 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
92 | this.CancelButton = this.btnClose;
93 | this.ClientSize = new System.Drawing.Size(421, 470);
94 | this.Controls.Add(this.btnClose);
95 | this.Controls.Add(this.listProviders);
96 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F);
97 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
98 | this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
99 | this.MaximizeBox = false;
100 | this.MinimumSize = new System.Drawing.Size(300, 300);
101 | this.Name = "FormInputs";
102 | this.ShowInTaskbar = false;
103 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
104 | this.Text = "Inputs";
105 | ((System.ComponentModel.ISupportInitialize)(this.listProviders)).EndInit();
106 | this.ResumeLayout(false);
107 |
108 | }
109 |
110 | #endregion
111 |
112 | private BrightIdeasSoftware.ObjectListView listProviders;
113 | private System.Windows.Forms.Button btnClose;
114 | private BrightIdeasSoftware.OLVColumn olvcInput;
115 | private BrightIdeasSoftware.OLVColumn olvcDataTypes;
116 | }
117 | }
--------------------------------------------------------------------------------
/Source/Output.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Web.Script.Serialization;
7 | using System.Xml.Serialization;
8 | using CsvHelper.Configuration;
9 | using woanware;
10 |
11 | namespace TargetAnalyser
12 | {
13 | ///
14 | /// Object used for clean XML serialisation
15 | ///
16 | [XmlRoot("Data")]
17 | public class Results
18 | {
19 | ///
20 | ///
21 | ///
22 | [XmlElement("Result")]
23 | public List Items { get; set; }
24 |
25 | ///
26 | ///
27 | ///
28 | public Results()
29 | {
30 | Items = new List();
31 | }
32 | }
33 |
34 | ///
35 | ///
36 | ///
37 | public static class Output
38 | {
39 | ///
40 | ///
41 | ///
42 | ///
43 | public static string Process(List results,
44 | Global.OutputMode outputMode,
45 | string file,
46 | bool outputHeaders)
47 | {
48 | //Func, Global.OutputMode, string, string> outputResults = delegate(List a, Global.OutputMode b, string c)
49 | //{
50 | // try
51 | // {
52 | // switch (outputMode)
53 | // {
54 | // case Global.OutputMode.Csv:
55 | // return string.Empty;
56 | // case Global.OutputMode.Json:
57 | // StringBuilder json = new StringBuilder();
58 | // JavaScriptSerializer serializer = new JavaScriptSerializer();
59 | // serializer.Serialize(results, json);
60 |
61 | // string ret = IO.WriteTextToFile(json.ToString(), file, false);
62 | // if (ret.Length > 0)
63 | // {
64 | // return ret;
65 | // }
66 |
67 | // return string.Empty;
68 | // case Global.OutputMode.Xml:
69 |
70 | // Results tempResults = new Results();
71 | // tempResults.Items.AddRange(results);
72 |
73 | // XmlSerializer serializerXml = new XmlSerializer(typeof(Results));
74 | // using (FileStream fs = new FileStream(file, FileMode.Create))
75 | // {
76 | // serializerXml.Serialize(fs, tempResults);
77 | // }
78 |
79 | // return string.Empty;
80 | // }
81 |
82 | // return string.Empty;
83 | // }
84 | // catch (Exception ex)
85 | // {
86 | // return ex.Message;
87 | // }
88 |
89 | //};
90 |
91 | Task task = Task.Factory.StartNew(() =>
92 | {
93 | try
94 | {
95 | switch (outputMode)
96 | {
97 | case Global.OutputMode.Csv:
98 | CsvConfiguration csvConfiguration = new CsvConfiguration();
99 | csvConfiguration.Delimiter = "\t";
100 |
101 | using (FileStream fileStream = new FileStream(file, FileMode.Append, FileAccess.Write))
102 | using (StreamWriter streamWriter = new StreamWriter(fileStream))
103 | using (CsvHelper.CsvWriter csvWriter = new CsvHelper.CsvWriter(streamWriter, csvConfiguration))
104 | {
105 | if (outputHeaders == true)
106 | {
107 | csvWriter.WriteField("Source");
108 | csvWriter.WriteField("Info");
109 | csvWriter.WriteField("ParentUrl");
110 | csvWriter.WriteField("Url");
111 | csvWriter.NextRecord();
112 | }
113 |
114 | foreach (var result in results)
115 | {
116 | csvWriter.WriteField(result.Source);
117 | csvWriter.WriteField(result.Info);
118 | csvWriter.WriteField(result.FullUrl);
119 | csvWriter.WriteField(result.Url);
120 | csvWriter.NextRecord();
121 | }
122 | }
123 |
124 | return string.Empty;
125 | case Global.OutputMode.Json:
126 | StringBuilder json = new StringBuilder();
127 | JavaScriptSerializer serializer = new JavaScriptSerializer();
128 | serializer.Serialize(results, json);
129 |
130 | string ret = IO.WriteTextToFile(json.ToString(), file, false);
131 | if (ret.Length > 0)
132 | {
133 | return ret;
134 | }
135 |
136 | return string.Empty;
137 | case Global.OutputMode.Xml:
138 |
139 | Results tempResults = new Results();
140 | tempResults.Items.AddRange(results);
141 |
142 | XmlSerializer serializerXml = new XmlSerializer(typeof(Results));
143 | using (FileStream fs = new FileStream(file, FileMode.Create))
144 | {
145 | serializerXml.Serialize(fs, tempResults);
146 | }
147 |
148 | return string.Empty;
149 | }
150 |
151 | return string.Empty;
152 | }
153 | catch (Exception ex)
154 | {
155 | return ex.Message;
156 | }
157 |
158 | });
159 |
160 | return task.Result;
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/Source/TargetAnalyser.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {B620E1DA-DF2A-41CB-9181-08FC5363E97C}
8 | WinExe
9 | Properties
10 | TargetAnalyser
11 | TargetAnalyser
12 | v4.6.1
13 | 512
14 |
15 | publish\
16 | true
17 | Disk
18 | false
19 | Foreground
20 | 7
21 | Days
22 | false
23 | false
24 | true
25 | 0
26 | 1.0.0.%2a
27 | false
28 | false
29 | true
30 |
31 |
32 | x64
33 | true
34 | full
35 | false
36 | bin\Debug\
37 | DEBUG;TRACE
38 | prompt
39 | 4
40 | false
41 |
42 |
43 | x64
44 | pdbonly
45 | true
46 | bin\Release\
47 | TRACE
48 | prompt
49 | 4
50 | false
51 |
52 |
53 | App.ico
54 |
55 |
56 | x86
57 | bin\x86\Debug\
58 | false
59 |
60 |
61 | x86
62 | bin\x86\Release\
63 | false
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | ..\Dependencies\CsvHelper\CsvHelper.dll
72 |
73 |
74 | ..\Dependencies\ObjectListView\ObjectListView.dll
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | ..\Dependencies\woanware\Utility.dll
86 |
87 |
88 |
89 |
90 |
91 | Form
92 |
93 |
94 | FormAbout.cs
95 |
96 |
97 | Form
98 |
99 |
100 | FormExtendedInfo.cs
101 |
102 |
103 | Form
104 |
105 |
106 | FormMain.cs
107 |
108 |
109 | Form
110 |
111 |
112 | FormOptions.cs
113 |
114 |
115 | Form
116 |
117 |
118 | FormInputs.cs
119 |
120 |
121 | Form
122 |
123 |
124 | FormResponse.cs
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 | FormAbout.cs
140 |
141 |
142 | FormExtendedInfo.cs
143 |
144 |
145 | FormMain.cs
146 |
147 |
148 | FormOptions.cs
149 |
150 |
151 | FormInputs.cs
152 |
153 |
154 | FormResponse.cs
155 |
156 |
157 | ResXFileCodeGenerator
158 | Resources.Designer.cs
159 | Designer
160 |
161 |
162 | True
163 | Resources.resx
164 | True
165 |
166 |
167 | SettingsSingleFileGenerator
168 | Settings.Designer.cs
169 |
170 |
171 | True
172 | Settings.settings
173 | True
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 | False
182 | Microsoft .NET Framework 4.6.1 %28x86 and x64%29
183 | true
184 |
185 |
186 | False
187 | .NET Framework 3.5 SP1
188 | false
189 |
190 |
191 |
192 |
193 |
194 |
195 |
202 |
--------------------------------------------------------------------------------
/Source/FormAbout.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace TargetAnalyser
2 | {
3 | partial class FormAbout
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(FormAbout));
32 | this.pictureBox2 = new System.Windows.Forms.PictureBox();
33 | this.linkEmail = new System.Windows.Forms.LinkLabel();
34 | this.linkWeb = new System.Windows.Forms.LinkLabel();
35 | this.btnClose = new System.Windows.Forms.Button();
36 | this.lblVer = new System.Windows.Forms.Label();
37 | this.lblApp = new System.Windows.Forms.Label();
38 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
39 | this.linkIcons8 = new System.Windows.Forms.LinkLabel();
40 | this.labelIconsBy = new System.Windows.Forms.Label();
41 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
42 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
43 | this.SuspendLayout();
44 | //
45 | // pictureBox2
46 | //
47 | this.pictureBox2.BackColor = System.Drawing.Color.White;
48 | this.pictureBox2.Dock = System.Windows.Forms.DockStyle.Top;
49 | this.pictureBox2.Location = new System.Drawing.Point(0, 0);
50 | this.pictureBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
51 | this.pictureBox2.Name = "pictureBox2";
52 | this.pictureBox2.Size = new System.Drawing.Size(543, 137);
53 | this.pictureBox2.TabIndex = 26;
54 | this.pictureBox2.TabStop = false;
55 | //
56 | // linkEmail
57 | //
58 | this.linkEmail.AutoSize = true;
59 | this.linkEmail.Location = new System.Drawing.Point(187, 174);
60 | this.linkEmail.Name = "linkEmail";
61 | this.linkEmail.Size = new System.Drawing.Size(169, 20);
62 | this.linkEmail.TabIndex = 25;
63 | this.linkEmail.TabStop = true;
64 | this.linkEmail.Text = "markwoan@gmail.com";
65 | this.linkEmail.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkEmail_LinkClicked);
66 | //
67 | // linkWeb
68 | //
69 | this.linkWeb.AutoSize = true;
70 | this.linkWeb.Location = new System.Drawing.Point(187, 154);
71 | this.linkWeb.Name = "linkWeb";
72 | this.linkWeb.Size = new System.Drawing.Size(163, 20);
73 | this.linkWeb.TabIndex = 24;
74 | this.linkWeb.TabStop = true;
75 | this.linkWeb.Text = "github.com/woanware";
76 | this.linkWeb.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkWeb_LinkClicked);
77 | //
78 | // btnClose
79 | //
80 | this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
81 | this.btnClose.Location = new System.Drawing.Point(422, 257);
82 | this.btnClose.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
83 | this.btnClose.Name = "btnClose";
84 | this.btnClose.Size = new System.Drawing.Size(108, 32);
85 | this.btnClose.TabIndex = 23;
86 | this.btnClose.Text = "Close";
87 | this.btnClose.UseVisualStyleBackColor = true;
88 | this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
89 | //
90 | // lblVer
91 | //
92 | this.lblVer.AutoSize = true;
93 | this.lblVer.BackColor = System.Drawing.Color.White;
94 | this.lblVer.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
95 | this.lblVer.Location = new System.Drawing.Point(446, 58);
96 | this.lblVer.Name = "lblVer";
97 | this.lblVer.Size = new System.Drawing.Size(81, 25);
98 | this.lblVer.TabIndex = 29;
99 | this.lblVer.Text = "v1.0.0";
100 | //
101 | // lblApp
102 | //
103 | this.lblApp.AutoSize = true;
104 | this.lblApp.BackColor = System.Drawing.Color.White;
105 | this.lblApp.Font = new System.Drawing.Font("Verdana", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
106 | this.lblApp.Location = new System.Drawing.Point(117, 44);
107 | this.lblApp.Name = "lblApp";
108 | this.lblApp.Size = new System.Drawing.Size(328, 44);
109 | this.lblApp.TabIndex = 28;
110 | this.lblApp.Text = "TargetAnalyser";
111 | //
112 | // pictureBox1
113 | //
114 | this.pictureBox1.BackColor = System.Drawing.Color.White;
115 | this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
116 | this.pictureBox1.Location = new System.Drawing.Point(13, 23);
117 | this.pictureBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
118 | this.pictureBox1.Name = "pictureBox1";
119 | this.pictureBox1.Size = new System.Drawing.Size(111, 91);
120 | this.pictureBox1.TabIndex = 27;
121 | this.pictureBox1.TabStop = false;
122 | //
123 | // linkIcons8
124 | //
125 | this.linkIcons8.AutoSize = true;
126 | this.linkIcons8.Location = new System.Drawing.Point(258, 227);
127 | this.linkIcons8.Name = "linkIcons8";
128 | this.linkIcons8.Size = new System.Drawing.Size(89, 20);
129 | this.linkIcons8.TabIndex = 30;
130 | this.linkIcons8.TabStop = true;
131 | this.linkIcons8.Text = "icons8.com";
132 | this.linkIcons8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkIcons8_LinkClicked);
133 | //
134 | // labelIconsBy
135 | //
136 | this.labelIconsBy.AutoSize = true;
137 | this.labelIconsBy.Location = new System.Drawing.Point(187, 227);
138 | this.labelIconsBy.Name = "labelIconsBy";
139 | this.labelIconsBy.Size = new System.Drawing.Size(68, 20);
140 | this.labelIconsBy.TabIndex = 31;
141 | this.labelIconsBy.Text = "Icons by";
142 | //
143 | // FormAbout
144 | //
145 | this.AcceptButton = this.btnClose;
146 | this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
147 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
148 | this.CancelButton = this.btnClose;
149 | this.ClientSize = new System.Drawing.Size(543, 299);
150 | this.Controls.Add(this.labelIconsBy);
151 | this.Controls.Add(this.linkIcons8);
152 | this.Controls.Add(this.lblVer);
153 | this.Controls.Add(this.lblApp);
154 | this.Controls.Add(this.pictureBox1);
155 | this.Controls.Add(this.pictureBox2);
156 | this.Controls.Add(this.linkEmail);
157 | this.Controls.Add(this.linkWeb);
158 | this.Controls.Add(this.btnClose);
159 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
160 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
161 | this.MaximizeBox = false;
162 | this.MinimizeBox = false;
163 | this.Name = "FormAbout";
164 | this.ShowInTaskbar = false;
165 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
166 | this.Text = "About";
167 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
168 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
169 | this.ResumeLayout(false);
170 | this.PerformLayout();
171 |
172 | }
173 |
174 | #endregion
175 |
176 | private System.Windows.Forms.PictureBox pictureBox2;
177 | private System.Windows.Forms.LinkLabel linkEmail;
178 | private System.Windows.Forms.LinkLabel linkWeb;
179 | private System.Windows.Forms.Button btnClose;
180 | private System.Windows.Forms.Label lblVer;
181 | private System.Windows.Forms.Label lblApp;
182 | private System.Windows.Forms.PictureBox pictureBox1;
183 | private System.Windows.Forms.LinkLabel linkIcons8;
184 | private System.Windows.Forms.Label labelIconsBy;
185 | }
186 | }
--------------------------------------------------------------------------------
/Source/Analyser.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Net;
4 | using System.Text.RegularExpressions;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 |
8 | namespace TargetAnalyser
9 | {
10 | ///
11 | ///
12 | ///
13 | public class Analyser
14 | {
15 | public delegate void ResultEvent(List results);
16 |
17 | public event woanware.Events.MessageEvent Message;
18 | public event ResultEvent ResultsIdentified;
19 | public event woanware.Events.DefaultEvent Complete;
20 |
21 | private CountdownEvent cde;
22 | public Inputs Inputs { get; set; }
23 | public ApiKeys ApiKeys { get; set; }
24 | private int _retries;
25 | public string OutputFile { get; private set; }
26 |
27 | ///
28 | ///
29 | ///
30 | ///
31 | ///
32 | public Analyser(int retries)
33 | {
34 | _retries = retries;
35 | }
36 |
37 | ///
38 | ///
39 | ///
40 | ///
41 | ///
42 | ///
43 | ///
44 | public void Analyse(string[] dataTypes,
45 | string data)
46 | {
47 | (new Thread(() =>
48 | {
49 | cde = new CountdownEvent(this.Inputs.Data.Count);
50 | Parallel.ForEach(this.Inputs.Data, item => Analyse(dataTypes, item, data));
51 | cde.Wait();
52 |
53 | OnComplete();
54 |
55 | })).Start();
56 | }
57 |
58 | ///
59 | ///
60 | ///
61 | ///
62 | ///
63 | ///
64 | private void Analyse(string[] dataTypes, Input input, string data)
65 | {
66 | try
67 | {
68 | if (input.Enabled == false)
69 | {
70 | return;
71 | }
72 |
73 | foreach (var d in input.DataTypes)
74 | foreach (var dt in dataTypes)
75 | {
76 | if (d.ToLower() != dt.ToLower())
77 | {
78 | continue;
79 | }
80 |
81 | // DNS is a special case since it needs to use the .Net
82 | // DNS system objects rather than the WebClient
83 | if (input.Name.ToLower() == "dns")
84 | {
85 | PerformDns(input, data);
86 | continue;
87 | }
88 |
89 | PerformAnalysis(input, data);
90 | }
91 | }
92 | finally
93 | {
94 | this.cde.Signal();
95 | }
96 |
97 | }
98 |
99 | ///
100 | ///
101 | ///
102 | ///
103 | ///
104 | private void PerformAnalysis(Input i, string data)
105 | {
106 | var tempUrl = i.FullUrl;
107 | string response = string.Empty;
108 | try
109 | {
110 | OnMessage("Analysing via " + i.Name);
111 |
112 | if (tempUrl.Contains("#DATA#"))
113 | {
114 | tempUrl = tempUrl.Replace("#DATA#", data);
115 | }
116 |
117 | foreach (var ak in this.ApiKeys.Data)
118 | {
119 | if (tempUrl.Contains(ak.Marker))
120 | {
121 | tempUrl = tempUrl.Replace(ak.Marker, ak.Value);
122 | }
123 | }
124 |
125 | string httpBody = i.HttpBody;
126 | if (httpBody.Contains("#DATA#"))
127 | {
128 | httpBody = httpBody.Replace("#DATA#", data);
129 | }
130 |
131 | foreach (var ak in this.ApiKeys.Data)
132 | {
133 | if (httpBody.Contains(ak.Marker))
134 | {
135 | httpBody = httpBody.Replace(ak.Marker, ak.Value);
136 | }
137 | }
138 |
139 | GZipWebClient wc = new GZipWebClient();
140 | WebClientResult wcr = null;
141 | if (i.HttpMethod == "POST")
142 | {
143 | wcr = wc.Post(tempUrl, _retries, i.HttpHeaders, httpBody);
144 | }
145 | else
146 | {
147 | wcr = wc.Download(tempUrl, _retries, i.HttpHeaders);
148 | }
149 |
150 | if (wcr.IsError == true)
151 | {
152 | SendDefaultResult(i.Name,
153 | i.Url,
154 | tempUrl,
155 | wcr.Response,
156 | "Error: " + wcr.Response);
157 | return;
158 | }
159 |
160 | response = wcr.Response;
161 | if (i.StripNewLines == true)
162 | {
163 | response = wcr.Response.Replace("\n", "");
164 | response = response.Replace("\r", "");
165 | }
166 |
167 | Result result = ProcessResults(i, response, i.Url, tempUrl);
168 | if (result == null)
169 | {
170 | SendDefaultResult(i.Name, i.Url, tempUrl, response, "Not Found");
171 | return;
172 | }
173 |
174 | List results = new List() { result };
175 | OnResultIdentified(results);
176 | return;
177 | }
178 | catch (Exception ex)
179 | {
180 | SendDefaultResult(i.Name, i.Url, tempUrl, response, "Error: " + ex.Message);
181 | }
182 | }
183 |
184 | ///
185 | ///
186 | ///
187 | ///
188 | ///
189 | ///
190 | ///
191 | private Result ProcessResults(Input i, string response, string url, string fullUrl)
192 | {
193 | bool hasMatches = false;
194 | List temp = new List();
195 | Regex reg;
196 |
197 | Result result = new Result();
198 | result.Source = i.Name;
199 | result.Identified = true;
200 | result.Url = url;
201 | result.FullUrl = fullUrl;
202 | result.Response = response;
203 |
204 | if (i.MultipleMatchRegex.Length > 0)
205 | {
206 | reg = new Regex(i.MultipleMatchRegex);
207 | MatchCollection mc = reg.Matches(response);
208 | if (mc.Count == 0)
209 | {
210 | return null;
211 | }
212 |
213 | hasMatches = true;
214 |
215 | bool first = true;
216 | List tempExtended = new List();
217 | string[] groupNames = reg.GetGroupNames();
218 | foreach (Match m in mc)
219 | {
220 | temp = new List();
221 | foreach (string gn in groupNames)
222 | {
223 | if (gn == "0")
224 | {
225 | continue;
226 | }
227 |
228 | temp.Add(gn + ": " + ScrubHtml(m.Groups[gn].Value.Trim()));
229 | }
230 |
231 | tempExtended.Add(string.Join(", ", temp));
232 |
233 | if (first == true)
234 | {
235 | result.Info = string.Join(", ", temp);
236 | first = false;
237 | }
238 | }
239 |
240 | result.ExtendedInfo = string.Join(Environment.NewLine, tempExtended);
241 | result.HasExtended = true;
242 | }
243 | else
244 | {
245 | for (int index = 0; index < i.Regexes.Count; index++)
246 | {
247 | reg = new Regex(i.Regexes[index]);
248 |
249 | Match m = reg.Match(response);
250 | if (m.Success == true)
251 | {
252 | if (i.Results[index].Length == 0)
253 | {
254 | temp.Add("Found");
255 | }
256 | else
257 | {
258 | temp.Add(i.Results[index] + ": " + m.Groups[1].Value);
259 | }
260 |
261 | hasMatches = true;
262 | }
263 | }
264 |
265 | result.Info = string.Join(", ", temp);
266 | result.ExtendedInfo = string.Join(", ", temp);
267 | }
268 |
269 | if (hasMatches == false)
270 | {
271 | return null;
272 | }
273 |
274 | if (i.LinkRegex.Length > 0)
275 | {
276 | reg = new Regex(i.LinkRegex);
277 | Match m = reg.Match(response);
278 | if (m.Success == true)
279 | {
280 | result.Url = m.Groups[1].Value;
281 | }
282 | else
283 | {
284 | result.Url = url;
285 | }
286 | }
287 |
288 | return result;
289 | }
290 |
291 | ///
292 | ///
293 | ///
294 | ///
295 | ///
296 | private void PerformDns(Input i, string data)
297 | {
298 | try
299 | {
300 | OnMessage("Analysing via " + i.Name);
301 |
302 | var hostName = Dns.GetHostEntry(data).HostName;
303 | if (hostName.Length == 0)
304 | {
305 | SendDefaultResult(i.Name, "N/A", "N/A", "", "Not Found");
306 | return;
307 | }
308 |
309 | Result result = new Result();
310 | result.Source = i.Name;
311 | result.Identified = true;
312 | result.Info = hostName;
313 | result.FullUrl = "N/A";
314 | result.Url = "N/A";
315 |
316 | List results = new List() { result };
317 | OnResultIdentified(results);
318 | return;
319 | }
320 | catch (Exception ex)
321 | {
322 | SendDefaultResult(i.Name, "N/A", "N/A", "", "Error: " + ex.Message);
323 | }
324 | }
325 |
326 | #region Misc Methods
327 | ///
328 | ///
329 | ///
330 | ///
331 | ///
332 | private string ScrubHtml(string value)
333 | {
334 | var step1 = Regex.Replace(value, @"<[^>]+>| ", "").Trim();
335 | var step2 = Regex.Replace(step1, @"\s{2,}", " ");
336 | return step2;
337 | }
338 |
339 | ///
340 | ///
341 | ///
342 | ///
343 | ///
344 | ///
345 | ///
346 | private void SendDefaultResult(string source,
347 | string url,
348 | string fullUrl,
349 | string response,
350 | string message)
351 | {
352 | Result result = new Result();
353 | result.Source = source;
354 | result.Info = message;
355 | result.FullUrl = fullUrl;
356 | result.Url = url;
357 | result.Response = response;
358 |
359 | OnResultIdentified(new List { result });
360 | }
361 | #endregion
362 |
363 | #region Event Handler Methods
364 | ///
365 | ///
366 | ///
367 | ///
368 | private void OnResultIdentified(List result)
369 | {
370 | ResultsIdentified?.Invoke(result);
371 | }
372 |
373 | ///
374 | ///
375 | ///
376 | ///
377 | private void OnMessage(string message)
378 | {
379 | Message?.Invoke(message);
380 | }
381 |
382 | ///
383 | ///
384 | ///
385 | private void OnComplete()
386 | {
387 | Complete?.Invoke();
388 | }
389 | #endregion
390 | }
391 | }
392 |
--------------------------------------------------------------------------------
/Source/FormInputs.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
124 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
125 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
126 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
127 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
128 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
129 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
130 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
131 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
132 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
133 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
134 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
135 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
136 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
137 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
138 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
139 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
140 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
141 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
142 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
143 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
144 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
145 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
146 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
147 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
149 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
150 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
151 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
152 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
153 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
154 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
155 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
156 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
157 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
158 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
159 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
160 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
161 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
162 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
163 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
164 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
165 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
166 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
167 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
168 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
169 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
171 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
174 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
175 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
176 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
177 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
178 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
179 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
180 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
181 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
182 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
183 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
184 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
185 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
186 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
187 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
188 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
189 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
190 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
191 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
192 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
193 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
194 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
195 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
196 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
197 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
198 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
199 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
200 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
201 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
202 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
203 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
204 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
205 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
206 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
207 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
208 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
212 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
213 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
214 |
215 |
216 |
--------------------------------------------------------------------------------
/Source/FormOptions.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
124 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
125 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
126 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
127 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
128 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
129 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
130 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
131 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
132 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
133 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
134 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
135 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
136 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
137 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
138 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
139 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
140 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
141 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
142 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
143 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
144 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
145 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
146 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
147 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
149 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
150 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
151 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
152 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
153 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
154 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
155 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
156 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
157 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
158 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
159 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
160 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
161 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
162 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
163 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
164 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
165 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
166 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
167 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
168 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
169 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
171 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
174 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
175 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
176 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
177 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
178 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
179 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
180 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
181 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
182 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
183 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
184 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
185 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
186 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
187 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
188 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
189 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
190 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
191 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
192 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
193 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
194 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
195 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
196 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
197 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
198 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
199 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
200 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
201 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
202 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
203 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
204 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
205 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
206 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
207 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
208 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
212 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
213 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
214 |
215 |
216 |
--------------------------------------------------------------------------------
/Source/FormResponse.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
124 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
125 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
126 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
127 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
128 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
129 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
130 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
131 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
132 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
133 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
134 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
135 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
136 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
137 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
138 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
139 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
140 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
141 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
142 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
143 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
144 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
145 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
146 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
147 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
149 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
150 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
151 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
152 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
153 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
154 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
155 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
156 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
157 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
158 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
159 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
160 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
161 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
162 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
163 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
164 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
165 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
166 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
167 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
168 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
169 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
171 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
174 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
175 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
176 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
177 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
178 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
179 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
180 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
181 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
182 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
183 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
184 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
185 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
186 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
187 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
188 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
189 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
190 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
191 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
192 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
193 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
194 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
195 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
196 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
197 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
198 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
199 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
200 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
201 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
202 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
203 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
204 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
205 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
206 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
207 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
208 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
212 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
213 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
214 |
215 |
216 |
--------------------------------------------------------------------------------
/Source/FormExtendedInfo.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
124 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
125 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
126 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
127 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
128 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
129 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
130 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
131 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
132 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
133 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
134 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
135 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
136 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
137 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
138 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
139 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
140 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
141 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
142 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
143 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
144 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
145 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
146 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
147 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
149 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
150 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
151 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
152 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
153 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
154 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
155 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
156 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
157 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
158 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
159 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
160 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
161 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
162 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
163 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
164 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
165 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
166 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
167 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
168 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
169 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
171 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
174 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
175 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
176 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
177 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
178 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
179 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
180 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
181 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
182 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
183 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
184 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
185 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
186 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
187 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
188 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
189 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
190 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
191 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
192 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
193 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
194 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
195 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
196 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
197 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
198 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
199 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
200 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
201 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
202 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
203 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
204 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
205 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
206 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
207 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
208 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
212 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
213 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
214 |
215 |
216 |
--------------------------------------------------------------------------------
/Source/FormMain.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 109, 17
122 |
123 |
124 | 217, 17
125 |
126 |
127 |
128 |
129 | iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
130 | YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAEKSURBVFhH7ZexCoJQGIV9pN6gZitpMmjqEZqKrtVQ1NIj
131 | 9AANjZrWltADNLXU0tBc4NRkHlIIu6ap3B/CDw7odD7k/vdepYK/QWZGyX+kQWH6vs6Mtv8qHmW4PShs
132 | 7ZJJQKCzOLpy13qQSEBAW17c0epKIxEIzK07jcS7AIlEWOAniWpPr9T6ZjlLGppxCgsklsD4qGPLaU7t
133 | W9q0ZraDsrBAIgkI8OzzzFcJEQJIpIQoAYQrIV7ApBHglgNxi5BTDiCgTjbeGO68kUqX+DGMKAfYiLKm
134 | NrDOvK8YW54X0VuxgHLAP4wElYPP41hgOQgESMoBBF5XMoJyAAGMM0k5IL+Wk/+YFKRDkp7o9M3KHEnP
135 | KwAAAABJRU5ErkJggg==
136 |
137 |
138 |
139 | 315, 17
140 |
141 |
142 | 17, 17
143 |
144 |
145 |
146 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
147 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
149 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
150 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
151 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
152 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
153 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
154 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
155 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
156 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
157 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
158 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
159 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
160 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
161 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
162 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
163 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
164 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
165 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
166 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
167 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
168 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
169 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
171 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
174 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
175 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
176 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
177 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
178 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
179 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
180 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
181 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
182 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
183 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
184 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
185 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
186 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
187 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
188 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
189 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
190 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
191 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
192 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
193 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
194 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
195 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
196 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
197 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
198 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
199 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
200 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
201 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
202 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
203 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
204 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
205 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
206 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
207 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
208 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
212 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
213 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
214 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
215 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
216 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
217 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
218 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
219 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
220 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
221 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
222 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
223 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
224 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
225 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
226 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
227 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
228 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
229 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
230 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
231 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
232 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
233 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
234 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
235 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
236 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
237 |
238 |
239 |
--------------------------------------------------------------------------------
/Source/FormAbout.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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
124 | YQUAAAOpSURBVHhe7ZzfkdMwEMZdAiVQwpVACXQAHUAHpCN4xrnJdcCDE+CBGUqADu68kTaXOGt5pVha
125 | Of5+M9+MJ9aftb61HDuKGwAAAAAAAAAAAAAApvjx+8/zufzHoBQwwJjiBnw/PDSPhy/Ndr9rtt0/p36b
126 | PqN9a6OoAe3+cz/Yz+M6GvLJl14HxQxo99/kQZfUffW17p8iBkxmviCqswaiDNj+fN8Pjp+7jwO1a9ru
127 | nd8rQ/P6cHBV6vuYuiakxEOk1suB2gAX9NkAnSkUfNttxDoaUd0xUuNJrZcLtQFt9yQGTaJ9Y4TqTSm1
128 | 3Rz1cqE2QAr4pP5UHqPt/st1NAq0K5ZnZaiXi1kMoEEe4xYDQu1K5Vk56uVCbUCOU35Kqe3mqJcLtQG4
129 | COdBbQBBwVOW8LTitsNB01fJlGmI6ux+vfWtyKTEQ6TWy0GUAangRmycIgYQMY8iqOxaKGYAQVkdmo5o
130 | 31oynylqAOGuCRs/7/YDfhRtbybn/HukuAHgEhhgDAwwBgYYAwOMgQHGwABjYIAxizbg8fCxv4O+XF+0
131 | 3X/we5fBIg3Y/X3jB1t+pEH7qMwSiDLAPUu3X01Ajy6uB32onS99TS3HQagNcEEPD9KpZPBu2pHjGIrK
132 | DqnlOBi1AaGso32l0GW/kxRXLcfBqA2QAj6p4GqC0OPsKwlxieVYBY+DmcUAGpRSxBggxSWVY5U8DkZt
133 | QC2nbiiOoaS4ajkORm0ALsJ5UBtAUPCUJTwNuO3yQYeymBXK5lqOg4gyoBboJitkAu27yxux2qAphjPZ
134 | 6Umcdmpm0QbcAzDAGBhgDAwwBgYYAwOMgQHGwABjVmMALQqu8R0VqzBg8g8iR0Ns3lFR1AD3JPMyA3Ov
135 | Yqj9HRVFDLBaxbCEv0ZFGeCepcevJgg9uXzV+CoGJqZ/mtev+1Cob7vkNUFtQOoPGbf+gMLE9p/r77Fz
136 | ozZg6vn7GLrsd0ptR6oX0+9QoTjmRm2AFOhJ/Wk7Bv/qpFKgHbE8S6gX1e9QgTjmZhYD6GDHiBmIUDtS
137 | eZZU7xYDQnHMjdqA2CmAiZkKUtuR6sX0O1QojrlRG4CLcB7UBhA0CJQdfHq77fHBZzTZqMm6mP7d/5Hj
138 | pyGqU+XX0FuwWsVwdzdit0JTDGewU/5VDLW/o6KoAVZQVoemo2MyFM58ZhUGEO6aUN87KlZjQK3AAGNg
139 | gDEwwJihAZCTH578SJ1DMMBcfnjyI3UO4VoIAAAAAAAAAAAAAAAAEk3zAmoR+xcKX89QAAAAAElFTkSu
140 | QmCC
141 |
142 |
143 |
144 |
145 | AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAE
146 | AAAAAAAAAAAAAAAAAAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
147 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
148 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz2Xb18+f29fPn9vXz5/b18+f29fPn9vX
149 | z5/b18+f29fPn9vXz5/b18+f29fPn////wH///8B////Af///wHb18+f////Af///wH///8B////Af//
150 | /wH///8B////Af///wHXvwAJ07sASdS7AB3///8B////Af///wH///8B29fPn////wHUuwCN1LsAHdS7
151 | AHXTuwDn1LsAJdS8AFXUvABR07sAkdS8AP/TuwDj////Af///wH///8B////AdvXz5////8B1LwAi9S7
152 | AB3UuwB107wA59S7ACXUuwBZ1LwAVdO7AI/UvAD/07wA4////wH///8B////Af///wHb18+f////Af//
153 | /wH///8B////Af///wH///8B////Af///wHXvwAJ07wAS9S8ACH///8B////Af///wH///8B29fPn///
154 | /wH///8B////Af///wH///8B////Ad+/AAXUvAA907sAEf///wH///8B////Af///wH///8B////AdvX
155 | z5////8B07sA3dS8ADn///8B////Af///wHUvAA91LwA/9S7AJPUuwCJ1LsAif///wH///8B////Af//
156 | /wHb18+f////AdS7ADnVugAN////Af///wH///8B07sAEdS8AJPTvAA91LwAJdS7ACX///8B////Af//
157 | /wH///8B29fPn////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
158 | /wH///8B////AdvXz5////8B1LwAOdW6AA3UvABh1LwA99O7AK3///8B1LwAOdW6AA3UuwAd1LsAHf//
159 | /wH///8B////Af///wHb18+f////AdO7ANvUvAA507sAn9S8AP/UvAD3////AdO7ANvUvAA51LsAi9S7
160 | AIv///8B////Af///wH///8B29fPn////wH///8B////AdS7AC3UvACf1LwAYf///wH///8B////Af//
161 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
162 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
163 | /wH///8B////Af///wH///8B////AQAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
164 | //8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAA
165 | AAAAAAAA////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
166 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
167 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
168 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
169 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
170 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
171 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
172 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
173 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B39/PEdvX
174 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B29fPQdvX
175 | z0Hb189B29fPQdvXz0Hb189B29fPQdvXz0Hb189B////Af///wH///8B////Af///wH///8B////Af//
176 | /wHb189B3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zY
177 | z//c2M//3NjP/9zYz//c2M//3NjP/9zYz//c2M//3NjP/9zYz/////8B////Af///wH///8B////Af//
178 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
179 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
180 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af//
181 | /wH///8B////Af///wH///8B////Af///wH///8B////Ade/ACHTuwCB1LwAodS7AHH///8B////Af//
182 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B378AEdO7AEH///8B////Af//
183 | /wHUvACh07sA8dS7ALHXvwAh////Af///wHXvwAh178AIf///wHfvwAR07sA8dS8AP/UvAD/1LwA/9S8
184 | AKH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHUvADh1LwA/9S7
185 | AHH///8B1boAMdS8AP/UvAD/1LwA/9S7AHH///8B1boAMdS8AP/UvAD/178AIdO7AEHUvAD/1LwA/9S8
186 | AP/UvAD/07sA8f///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
187 | AOHUvAD/1LsAcf///wHVugAx1LwA/9S8AP/UvAD/1LsAcf///wHVugAx1LwA/9S8AP/XvwAh07sAQdS8
188 | AP/UvAD/1LwA/9S8AP/TvADv////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
189 | /wH///8B378AEde+AD////8B////Af///wHUvACh07wA79O8AK/XvwAh////Af///wHVugAx1boAMf//
190 | /wHfvwAR07wA79S8AP/UvAD/1LwA/9S8AKH///8B////Af///wH///8B////Af///wH///8B////AdvX
191 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
192 | /wH///8B////Af///wHXvwAh1b0Af9O8AK/TvABv378AEf///wH///8B////Af///wH///8B////Af//
193 | /wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
194 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
195 | /wH///8B////Af///wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af//
196 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
197 | /wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af//
198 | /wH///8B////Af///wH///8B////Ad+/ABHVvQBh1LwAkdO7AEH///8B////Af///wH///8B////Af//
199 | /wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8AJHTuwDx1rwAUf//
200 | /wH///8B////Af///wH///8B////Af///wH///8B1b0AYdS8AP/UvAD/1LwA/9+/ABHfvwAR1LwA0dS8
201 | ANHfvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B07sA8dS8
202 | AP/UvACR////Af///wH///8B////Af///wH///8B////Af///wHUvACR1LwA/9S8AP/UvAD/07sAQdO7
203 | AEHUvAD/1LwA/9O7AEH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af//
204 | /wHWvABR1LsAj9W6ADH///8B////Af///wH///8B////Af///wH///8B////AdO7AEHUvAD/1LwA/9O8
205 | AO////8B////AdS8AJHUuwCP////Af///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzY
206 | z/////8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Ad+/
207 | ABHXvgA/////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
208 | /wHb189B3NjP/////wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
209 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
210 | /wH///8B////AdvXz0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
211 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
212 | /wH///8B////Af///wH///8B29fPQdzYz/////8B////Af///wH///8B////Af///wH///8B1b0AYdS8
213 | AOHUvAD/07sAwdW6ADH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
214 | /wH///8B////Af///wH///8B////Af///wHb189B3NjP/////wH///8B1rwAUdS8AJHVugAx////Ade/
215 | ACHUvAD/1LwA/9S8AP/UvAD/07sAwf///wH///8B1rwAUdS8AJHVugAx////Af///wHUuwBx1LsAcf//
216 | /wH///8B////Af///wH///8B////Af///wH///8B////AdvXz0Hc2M//////Af///wHTuwDx1LwA/9S8
217 | AJH///8B07sAQdS8AP/UvAD/1LwA/9S8AP/UvAD/////Af///wHTuwDx1LwA/9S8AJH///8B07sAQdS8
218 | AP/UvAD/07sAQf///wH///8B////Af///wH///8B////Af///wH///8B29fPQdzYz/////8B////AdS8
219 | AJHTvADv1rwAUf///wHTuwBB1LwA/9S8AP/UvAD/1LwA/9S8AN////8B////AdS8AJHTvADv1rwAUf//
220 | /wHfvwAR1LwA39S8AN/fvwAR////Af///wH///8B////Af///wH///8B////Af///wHb189B3NjP////
221 | /wH///8B////Af///wH///8B////Af///wHUuwCx1LwA/9S8AP/UvAD/1b0AYf///wH///8B////Af//
222 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////AdvX
223 | z0Hc2M//////Af///wH///8B////Af///wH///8B////Af///wHTuwBB174AP9e/ACH///8B////Af//
224 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
225 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
226 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
227 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
228 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
229 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
230 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
231 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
232 | /wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af//
233 | /wH///8B////Af///wH///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
234 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
235 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
236 |
237 |
238 |
--------------------------------------------------------------------------------
/Inputs/Inputs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 |
6 | VirusTotal (MD5)
7 | true
8 | https://www.virustotal.com/vtapi/v2/file/report
9 | https://www.virustotal.com/vtapi/v2/file/report?resource=#DATA#&apikey=#VT_API_KEY#
10 |
11 | MD5
12 |
13 |
14 | \"response_code\":\s(.*?),
15 | \"scan_date\":\s"(.*?)",
16 | \"positives\":\s(.*?),
17 | \"total\":\s(.*?),
18 | \"result\":\s"(.*?)",
19 |
20 |
21 | Response Code
22 | Scan Date
23 | Positives
24 | Total
25 | Result
26 |
27 |
28 | \"permalink\":\s"(.*?)",
29 | GET
30 |
31 |
32 | false
33 |
34 |
35 | VirusTotal (IP)
36 | true
37 | https://www.virustotal.com/vtapi/v2/ip-address/report
38 | https://www.virustotal.com/vtapi/v2/ip-address/report?ip=#DATA#&apikey=#VT_API_KEY#
39 |
40 | IP
41 |
42 |
43 | \"asn\":\s"(.*?)",
44 | \"country\":\s"(.*?)",
45 | \"owner\":\s(.*?),
46 | \"last_resolved\":\s"(.*?)",
47 | \"date\":\s"(.*?)",
48 | \"url\":\s"(.*?)",
49 |
50 |
51 | ASN
52 | Country
53 | Owner
54 | Last Resolved
55 | Date
56 | URL
57 |
58 |
59 | \"permalink\":\s"(.*?)",
60 | GET
61 |
62 |
63 | false
64 |
65 |
66 | VirusTotal (DNS)
67 | true
68 | https://www.virustotal.com/vtapi/v2/domain/report
69 | https://www.virustotal.com/vtapi/v2/domain/report?domains=#DATA#&apikey=#VT_API_KEY#
70 |
71 | Domain
72 |
73 |
74 | \"response_code\":\s(.*?),
75 | \"scan_date\":\s"(.*?)"
76 | \"positives\":\s(.*?),
77 | \"total\":\s(.*?),
78 | \"last_resolved\":\s"(.*?)",
79 |
80 |
81 | Response Code
82 | Scan Date
83 | Positives
84 | Total
85 | Last Resolved
86 |
87 |
88 |
89 | GET
90 |
91 |
92 | false
93 |
94 |
95 | VirusTotal (URL)
96 | true
97 | https://www.virustotal.com/vtapi/v2/url/report
98 | https://www.virustotal.com/vtapi/v2/url/report?resource=#DATA#&apikey=#VT_API_KEY#
99 |
100 | Domain
101 |
102 |
103 | \"response_code\":\s(.*?),
104 | \"scan_date\":\s"(.*?)",
105 | \"positives\":\s(.*?),
106 | \"total\":\s(.*?),
107 |
108 |
109 | Response Code
110 | Scan Date
111 | Positives
112 | Total
113 |
114 |
115 | \"permalink\":\s"(.*?)",
116 | GET
117 |
118 |
119 | false
120 |
121 |
122 | Fortiguard
123 | true
124 | https://www.fortiguard.com
125 | https://www.fortiguard.com/iprep?data=#DATA#
126 |
127 | IP
128 | Domain
129 |
130 |
131 | Category:\s(.*?)<
132 |
133 |
134 | Category
135 |
136 |
137 |
138 | GET
139 |
140 |
141 | false
142 |
143 |
144 | IP Void
145 | true
146 | http://www.ipvoid.com/ip-blacklist-check/
147 | http://www.ipvoid.com/ip-blacklist-check/
148 |
149 | IP
150 |
151 |
152 | Blacklist Status<\/td><td><span\sclass=\"label\slabel-.*?\">(.*?)</span>
153 | ISP<\/td><td>(.*?)<\/td>
154 | Country\sCode<\/td><td><img src=\".*?\salt=\"Flag\"\s\/>(.*?)<\/td>
155 |
156 |
157 | Blacklist Status
158 | ISP
159 | Country
160 |
161 |
162 |
163 | POST
164 | ip=#DATA#
165 |
166 |
167 | Content-Type
168 | application/x-www-form-urlencoded
169 |
170 |
171 | false
172 |
173 |
174 | ThreatExpert
175 | true
176 | http://www.threatexpert.com
177 | http://www.threatexpert.com/report.aspx?md5=#DATA#
178 |
179 | MD5
180 |
181 |
182 | content=\"ThreatExpert Report:(.*?)\">
183 | Submission received:(.*?)<\/li>
184 |
185 |
186 | Threat
187 | Submission Received
188 |
189 |
190 |
191 | GET
192 |
193 |
194 | false
195 |
196 |
197 | VxVault
198 | true
199 | http://vxvault.net
200 | http://vxvault.net/ViriList.php?MD5=#DATA#
201 |
202 | MD5
203 |
204 |
205 | ViriFiche\.php\?ID=\d*
206 |
207 |
208 |
209 |
210 |
211 |
212 | GET
213 |
214 |
215 | false
216 |
217 |
218 | unshorten
219 | true
220 | https://unshorten.me
221 | https://unshorten.me/s/#DATA#
222 |
223 | URL
224 |
225 |
226 | \b(http:\/\/.*|https:\/\/.*)
227 |
228 |
229 | URL
230 |
231 |
232 |
233 | GET
234 |
235 |
236 | false
237 |
238 |
239 | URL Void
240 | true
241 | http://www.urlvoid.com
242 | http://www.urlvoid.com/scan/#DATA#
243 |
244 | URL
245 |
246 |
247 | Safety Reputation<\/td><td><span\sclass=\"label\slabel-.*?">(\d+\/\d+)</span>
248 | Analysis\sDate<\/td><td>(.*?)<\/td>
249 | Server\sLocation<\/td><td><img\ssrc=".*?"\salt="Flag"\s\/>([\s\w]*)<\/td>
250 | Domain\s1st\sRegistered<\/td><td>(.*?)<\/td>
251 |
252 |
253 | Blacklist Status
254 | Analysis Date
255 | Server Location
256 | Domain 1st Registered
257 |
258 |
259 |
260 | GET
261 |
262 |
263 | true
264 |
265 |
266 | malc0de
267 | true
268 | https://malc0de.com
269 | https://malc0de.com/database/index.php?search=#DATA#
270 |
271 | IP
272 | MD5
273 | Domain
274 |
275 |
276 | www.virustotal.com/latest-scan/
277 |
278 |
279 |
280 |
281 |
282 |
283 | GET
284 |
285 |
286 | false
287 |
288 |
289 | freegeoip.net
290 | true
291 | https://freegeoip.net
292 | https://freegeoip.net/json/#DATA#
293 |
294 | IP
295 |
296 |
297 | "country_code":"(.*?)"
298 | "country_name":"(.*?)"
299 | "region_code":"(.*?)"
300 | "region_name":"(.*?)"
301 | "city":"(.*?)"
302 | "zip_code":"(.*?)"
303 | "time_zone":"(.*?)"
304 | "latitude":"(.*?)"
305 | "longitude":"(.*?)"
306 |
307 |
308 | Country Code
309 | Country Name
310 | Region Code
311 | Region Name
312 | City
313 | Post Code
314 | Timezone
315 | Latitude
316 | Longitude
317 |
318 |
319 |
320 | GET
321 |
322 |
323 | false
324 |
325 |
326 | SANS
327 | true
328 | https://isc.sans.edu/api/#ip
329 | https://isc.sans.edu/api/ip/#DATA#
330 |
331 | IP
332 |
333 |
334 | <count>(\d+)<\/count>
335 | <attacks>(\d+)<\/attacks>
336 |
337 |
338 | Total Blocked Packets
339 | Total Unique Dest IP's
340 |
341 |
342 |
343 | GET
344 |
345 |
346 | false
347 |
348 |
349 | DNS
350 | true
351 | N/A
352 | N/A
353 |
354 | IP
355 |
356 |
357 |
358 |
359 |
360 | GET
361 |
362 |
363 | false
364 |
365 |
366 | MalwareDomainList
367 | true
368 | https://www.malwaredomainlist.com
369 | https://www.malwaredomainlist.com/mdl.php?search=#DATA#&colsearch=All&quantity=50
370 |
371 | IP
372 |
373 |
374 | <td><nobr>(\d\d\d\d\/\d\d\/\d\d_\d\d:\d\d)<\/nobr><\/td><td>.*<\/td><td>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b<\/td><td>.*?<\/td><td>.*?<\/td><td>.*?<\/td>
375 | <td><nobr>\d\d\d\d\/\d\d\/\d\d_\d\d:\d\d<\/nobr><\/td><td>.*<\/td><td>\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b<\/td><td>.*?<\/td><td>(.*?)<\/td><td>.*?<\/td>
376 |
377 |
378 | Date
379 | Malware
380 |
381 |
382 |
383 | GET
384 |
385 |
386 | false
387 |
388 |
389 | www.bfk.de
390 | true
391 | http://www.bfk.de/bfk_dnslogger_en.html
392 | http://www.bfk.de/bfk_dnslogger_en.html?query=#DATA#
393 |
394 | Domain
395 | IP
396 |
397 |
398 |
399 | <tr><td><tt><a href.*?>(?<Domain>.*?)<\/a><\/tt><\/td><td><tt>(?<Type>.*?)<\/tt><\/td><td><tt><a href.*?>(?<IP>.*?)<\/a><\/tt><\/td><\/tr>
400 |
401 | GET
402 |
403 |
404 | false
405 |
406 |
407 | AlienVault
408 | true
409 | https://www.alienvault.com/open-threat-exchange/dashboard#/my/reputation-monitor
410 | https://www.alienvault.com/apps/api/threat/ip/#DATA#?format=json
411 |
412 | IP
413 |
414 |
415 | "reputation_score":(\d),
416 | "activity_types":\[(.*?)\],
417 | "country_name":"(.*?)"},
418 | "org_name":"(.*?)",
419 |
420 |
421 | Reputation Score
422 | Activity Types
423 | Country Name
424 | Org Name
425 |
426 |
427 |
428 | GET
429 |
430 |
431 | false
432 |
433 |
434 | Reputation Authority
435 | true
436 | http://www.reputationauthority.org
437 | http://www.reputationauthority.org/lookup.php?ip=#DATA#&ipvalid=&Submit.x=10&Submit.y=13&Submit=Search
438 |
439 | IP
440 |
441 |
442 | >(\d{1,2}\/\d{1,3})
443 |
444 |
445 | Reputation Score
446 |
447 |
448 |
449 | GET
450 |
451 |
452 | false
453 |
454 |
455 | HpHosts
456 | true
457 | https://hosts-file.net
458 | https://hosts-file.net/?s=#DATA#
459 |
460 | Domain
461 |
462 |
463 | This\ssite\sis\scurrently\slisted
464 |
465 |
466 |
467 |
468 |
469 |
470 | GET
471 |
472 |
473 | false
474 |
475 |
476 | Google Safe Browsing
477 | true
478 | https://www.google.com/transparencyreport/safebrowsing/diagnostic/
479 | https://safebrowsing.googleapis.com/v4/threatMatches:find?key=#GSB_API_KEY#
480 |
481 | IP
482 | Domain
483 |
484 |
485 | "threatType": "(.*?)"
486 |
487 |
488 | Threat Type
489 |
490 |
491 |
492 | POST
493 | {
494 | "client": {
495 | "clientId": "woanware",
496 | "clientVersion": "1.0.0"
497 | },
498 | "threatInfo": {
499 | "threatTypes": ["THREAT_TYPE_UNSPECIFIED","MALWARE", "SOCIAL_ENGINEERING", "UNWANTED_SOFTWARE", "POTENTIALLY_HARMFUL_APPLICATION"],
500 | "platformTypes": ["ANY_PLATFORM"],
501 | "threatEntryTypes": ["URL"],
502 | "threatEntries": [{"url": "#DATA#"}]
503 | }}
504 |
505 |
506 |
507 | Content-Type
508 | application/json
509 |
510 |
511 | false
512 |
513 |
514 |
--------------------------------------------------------------------------------