From 5745cf0421583de1158167f34c41bb2869fbc60d Mon Sep 17 00:00:00 2001 From: feyris-tan Date: Tue, 4 Nov 2025 16:36:00 +0100 Subject: [PATCH] Detect HTTP traffic in Packages. --- skyscraper8/GS/POC/Pts2Bbf2.cs | 14 ++++++++++++-- skyscraper8/Skyscraper/IpPacketFinder.cs | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/skyscraper8/GS/POC/Pts2Bbf2.cs b/skyscraper8/GS/POC/Pts2Bbf2.cs index e3b113f..3d40ced 100644 --- a/skyscraper8/GS/POC/Pts2Bbf2.cs +++ b/skyscraper8/GS/POC/Pts2Bbf2.cs @@ -1,4 +1,6 @@ +using log4net; using skyscraper5.Mpeg2; +using skyscraper5.Skyscraper; using skyscraper5.Skyscraper.IO; using skyscraper5.Skyscraper.Scraper; using skyscraper5.Skyscraper.Scraper.Storage.InMemory; @@ -8,6 +10,7 @@ namespace skyscraper8.GSE; public class Pts2Bbf2 : IBbframeDeencapsulator { + private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name); private readonly FileInfo _fi; private readonly DirectoryInfo outputDir; @@ -45,8 +48,15 @@ public class Pts2Bbf2 : IBbframeDeencapsulator return; string fname = String.Format("Frame{0:D8}_TSGS{1}_MIS{2:D3}_SYNC{3:D3}.ts", ++frameNo,bbHeader.TsGs,bbHeader.SisMis ? bbHeader.Matype2 : 0,bbHeader.SyncByte); - fname = Path.Combine(outputDir.FullName, fname); + + string outfname = Path.Combine(outputDir.FullName, fname); ReadOnlySpan readOnlySpan = new ReadOnlySpan(bbframe, 11, bbframe.Length - 11); - File.WriteAllBytes(fname, readOnlySpan.ToArray()); + byte[] buffer = readOnlySpan.ToArray(); + File.WriteAllBytes(outfname, buffer); + + if (IpPacketFinder.TestForHttpContents(buffer)) + { + logger.InfoFormat("Found unencrypted HTTP traffic in {0}", fname); + } } } \ No newline at end of file diff --git a/skyscraper8/Skyscraper/IpPacketFinder.cs b/skyscraper8/Skyscraper/IpPacketFinder.cs index ea64f8d..65a02cb 100644 --- a/skyscraper8/Skyscraper/IpPacketFinder.cs +++ b/skyscraper8/Skyscraper/IpPacketFinder.cs @@ -86,5 +86,17 @@ namespace skyscraper5.Skyscraper return result; } + + public static bool TestForHttpContents(byte[] buffer) + { + for (int i = 0; i < buffer.Length - 5; i++) + if (buffer[i] == 0x48) + if (buffer[i + 1] == 0x54) + if (buffer[i + 2] == 0x54) + if (buffer[i + 3] == 0x50) + if (buffer[i + 4] == 0x2f) + return true; + return false; + } } }