From 31712d00ee03d0998032dc25f614448e691e8c68 Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Mon, 15 Apr 2024 18:37:39 +0900 Subject: [PATCH] some fixes --- .../Catswords.DataType.Client.csproj | 7 +- .../Helper/ExifTagExtractor.cs | 44 ++++++++ .../Helper/LinkExtractor.cs | 4 +- .../Helper/PeOrganizationExtractor.cs | 103 ++++++++++++++++++ Catswords.DataType.Client/Model/ExifTag.cs | 9 ++ .../Properties/Resources.Designer.cs | 10 ++ .../Properties/Resources.resx | 3 + .../Resources/tags_icon-icons.com_73382.png | Bin 0 -> 10762 bytes Catswords.DataType.Client/UserControl1.cs | 32 ++++-- 9 files changed, 199 insertions(+), 13 deletions(-) create mode 100644 Catswords.DataType.Client/Helper/ExifTagExtractor.cs create mode 100644 Catswords.DataType.Client/Helper/PeOrganizationExtractor.cs create mode 100644 Catswords.DataType.Client/Model/ExifTag.cs create mode 100644 Catswords.DataType.Client/Resources/tags_icon-icons.com_73382.png diff --git a/Catswords.DataType.Client/Catswords.DataType.Client.csproj b/Catswords.DataType.Client/Catswords.DataType.Client.csproj index 98630ef..f6237ba 100644 --- a/Catswords.DataType.Client/Catswords.DataType.Client.csproj +++ b/Catswords.DataType.Client/Catswords.DataType.Client.csproj @@ -108,13 +108,15 @@ - + + + @@ -194,5 +196,8 @@ + + + \ No newline at end of file diff --git a/Catswords.DataType.Client/Helper/ExifTagExtractor.cs b/Catswords.DataType.Client/Helper/ExifTagExtractor.cs new file mode 100644 index 0000000..53df60f --- /dev/null +++ b/Catswords.DataType.Client/Helper/ExifTagExtractor.cs @@ -0,0 +1,44 @@ +using Catswords.DataType.Client.Model; +using MetadataExtractor; +using System; +using System.Collections.Generic; + +namespace Catswords.DataType.Client.Helper +{ + class ExifTagExtractor + { + private string FilePath; + + public ExifTagExtractor(string filePath) + { + FilePath = filePath; + } + + public List GetTags() + { + List tags = new List(); + + try { + IEnumerable directories = ImageMetadataReader.ReadMetadata(FilePath); + foreach (var directory in directories) + { + foreach (var tag in directory.Tags) + { + tags.Add(new ExifTag + { + Section = directory.Name, + Name = tag.Name, + Description = tag.Description.ToString() + }); + } + } + } + catch + { + // nothing + } + + return tags; + } + } +} diff --git a/Catswords.DataType.Client/Helper/LinkExtractor.cs b/Catswords.DataType.Client/Helper/LinkExtractor.cs index 556690d..fca4347 100644 --- a/Catswords.DataType.Client/Helper/LinkExtractor.cs +++ b/Catswords.DataType.Client/Helper/LinkExtractor.cs @@ -73,7 +73,7 @@ namespace Catswords.DataType.Client.Helper } } - public string[] GetStrings() + public List GetStrings() { List results = new List(); @@ -111,7 +111,7 @@ namespace Catswords.DataType.Client.Helper MessageBox.Show($"An error occurred: {ex.Message}"); } - return results.ToArray(); + return results; } } } diff --git a/Catswords.DataType.Client/Helper/PeOrganizationExtractor.cs b/Catswords.DataType.Client/Helper/PeOrganizationExtractor.cs new file mode 100644 index 0000000..5e29c4c --- /dev/null +++ b/Catswords.DataType.Client/Helper/PeOrganizationExtractor.cs @@ -0,0 +1,103 @@ +using System; +using System.Diagnostics; +using System.Reflection; +using System.Security.Cryptography.X509Certificates; + +namespace Catswords.DataType.Client.Helper +{ + class PeOrganizationExtractor + { + private string FilePath; + + public PeOrganizationExtractor(string filePath) + { + FilePath = filePath; + } + + public string GetString() + { + // 회사 정보 추출 + string[] companies = new string[] { GetCompanyInfo(), GetProductName(), GetCopyrightInfo(), GetOrganization() }; + foreach (string company in companies) + { + if (company != null && !company.Equals(string.Empty)) + { + return company; + } + } + + return "Unknown"; + } + + private string GetOrganization() + { + string organization = string.Empty; + + // 서명된 파일인 경우 인증서 정보 추출 + X509Certificate2 certificate = GetCertificateInfo(); + if (certificate != null) + { + // Subject 필드에서 O (Organization) 값을 찾아 회사 정보 추출 + string[] fields = certificate.Subject.Split(','); + + foreach (string field in fields) + { + string[] keyValue = field.Trim().Split('='); + + if (keyValue.Length == 2 && keyValue[0].Trim().Equals("O", StringComparison.OrdinalIgnoreCase)) + { + organization = keyValue[1].Trim(); + } + } + } + + return organization; + } + + private string GetCompanyInfo() + { + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(FilePath); + return versionInfo.CompanyName; + } + + private string GetProductName() + { + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(FilePath); + return versionInfo.ProductName; + } + + private string GetCopyrightInfo() + { + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(FilePath); + return versionInfo.LegalCopyright; + } + + private X509Certificate2 GetCertificateInfo() + { + // GetCertificateInfo 구현 + try + { + // 파일에 디지털 서명이 있는지 확인 + Assembly assembly = Assembly.LoadFile(FilePath); + X509Certificate2 certificate = new X509Certificate2(assembly.Location); + + // 서명이 유효한지 확인 (옵션) + X509Chain chain = new X509Chain(); + chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; // 여러 인증서를 사용하는 경우 인증서 연쇄를 무시할 수 있습니다. + + if (chain.Build(certificate)) + { + return certificate; + } + else + { + return null; + } + } + catch + { + return null; + } + } + } +} diff --git a/Catswords.DataType.Client/Model/ExifTag.cs b/Catswords.DataType.Client/Model/ExifTag.cs new file mode 100644 index 0000000..81ecf07 --- /dev/null +++ b/Catswords.DataType.Client/Model/ExifTag.cs @@ -0,0 +1,9 @@ +namespace Catswords.DataType.Client.Model +{ + class ExifTag + { + public string Section { get; set; } + public string Name { get; set; } + public string Description { get; set; } + } +} diff --git a/Catswords.DataType.Client/Properties/Resources.Designer.cs b/Catswords.DataType.Client/Properties/Resources.Designer.cs index c9e490d..535621c 100644 --- a/Catswords.DataType.Client/Properties/Resources.Designer.cs +++ b/Catswords.DataType.Client/Properties/Resources.Designer.cs @@ -139,5 +139,15 @@ namespace Catswords.DataType.Client.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap tags_icon_icons_com_73382 { + get { + object obj = ResourceManager.GetObject("tags_icon_icons_com_73382", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/Catswords.DataType.Client/Properties/Resources.resx b/Catswords.DataType.Client/Properties/Resources.resx index b437a14..ff48454 100644 --- a/Catswords.DataType.Client/Properties/Resources.resx +++ b/Catswords.DataType.Client/Properties/Resources.resx @@ -139,6 +139,9 @@ ..\Resources\office_18907.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\tags_icon-icons.com_73382.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\2333410-android-os-smartphone_85588.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/Catswords.DataType.Client/Resources/tags_icon-icons.com_73382.png b/Catswords.DataType.Client/Resources/tags_icon-icons.com_73382.png new file mode 100644 index 0000000000000000000000000000000000000000..b97b21fdab165f0c0d7704f5e74b4cdfbf7365f3 GIT binary patch literal 10762 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 nWw0gp|KeAN=(muOi`*YFo10%G8pL literal 0 HcmV?d00001 diff --git a/Catswords.DataType.Client/UserControl1.cs b/Catswords.DataType.Client/UserControl1.cs index e30ad4b..ef4a7f4 100644 --- a/Catswords.DataType.Client/UserControl1.cs +++ b/Catswords.DataType.Client/UserControl1.cs @@ -1,11 +1,8 @@ using Catswords.DataType.Client.Helper; using Catswords.DataType.Client.Model; using System; -using System.ComponentModel.Design; using System.Diagnostics; -using System.Drawing; using System.IO; -using System.Linq; using System.Windows.Forms; namespace Catswords.DataType.Client @@ -29,6 +26,7 @@ namespace Catswords.DataType.Client imageList.Images.Add(Properties.Resources._2333410_android_os_smartphone_85588); imageList.Images.Add(Properties.Resources.office_18907); imageList.Images.Add(Properties.Resources.link_symbol_icon_icons_com_56927); + imageList.Images.Add(Properties.Resources.tags_icon_icons_com_73382); // set image list listView1.SmallImageList = imageList; @@ -77,8 +75,11 @@ namespace Catswords.DataType.Client // Get data from timeline FetchFromTimeline(); - // Get links from file binary + // Get links from file ExtractLink(); + + // Get EXIF tags from file + ExtractExif(); } private void FetchFromFileExtensionDB() @@ -107,10 +108,11 @@ namespace Catswords.DataType.Client string imphash = ImpHash.Calculate(filePath); search.Fetch(imphash); - string companyInfo = FileCompany.Read(filePath); - search.Fetch(companyInfo); + string organization = (new PeOrganizationExtractor(filePath)).GetString(); + search.Fetch(organization); + listView1.Items.Add(new ListViewItem(new string[] { DateTime.Now.ToString(), "This file are distributed by " + organization }, 4)); - textBox1.Text = "ImpHash=" + imphash + "; CompanyInfo=" + companyInfo; + textBox1.Text = "ImpHash=" + imphash + "; Organization=" + organization; } catch (Exception ex) { @@ -190,10 +192,20 @@ namespace Catswords.DataType.Client private void ExtractLink() { var extractor = new LinkExtractor(filePath); - string[] links = extractor.GetStrings(); - foreach (string link in links) + var strings = extractor.GetStrings(); + foreach (string str in strings) { - listView1.Items.Add(new ListViewItem(new string[] { DateTime.Now.ToString(), link }, 4)); + listView1.Items.Add(new ListViewItem(new string[] { DateTime.Now.ToString(), str }, 4)); + } + } + + private void ExtractExif() + { + var extractor = new ExifTagExtractor(filePath); + var tags = extractor.GetTags(); + foreach (ExifTag tag in tags) + { + listView1.Items.Add(new ListViewItem(new string[] { DateTime.Now.ToString(), $"{tag.Name} ({tag.Section}): {tag.Description}" }, 5)); } }