Detect HTTP traffic in Packages.
All checks were successful
🚀 Pack skyscraper8 / make-zip (push) Successful in 2m31s

This commit is contained in:
feyris-tan 2025-11-04 16:36:00 +01:00
parent c03d4238bf
commit 5745cf0421
2 changed files with 24 additions and 2 deletions

View File

@ -1,4 +1,6 @@
using log4net;
using skyscraper5.Mpeg2; using skyscraper5.Mpeg2;
using skyscraper5.Skyscraper;
using skyscraper5.Skyscraper.IO; using skyscraper5.Skyscraper.IO;
using skyscraper5.Skyscraper.Scraper; using skyscraper5.Skyscraper.Scraper;
using skyscraper5.Skyscraper.Scraper.Storage.InMemory; using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
@ -8,6 +10,7 @@ namespace skyscraper8.GSE;
public class Pts2Bbf2 : IBbframeDeencapsulator public class Pts2Bbf2 : IBbframeDeencapsulator
{ {
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name);
private readonly FileInfo _fi; private readonly FileInfo _fi;
private readonly DirectoryInfo outputDir; private readonly DirectoryInfo outputDir;
@ -45,8 +48,15 @@ public class Pts2Bbf2 : IBbframeDeencapsulator
return; 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); 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<byte> readOnlySpan = new ReadOnlySpan<byte>(bbframe, 11, bbframe.Length - 11); ReadOnlySpan<byte> readOnlySpan = new ReadOnlySpan<byte>(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);
}
} }
} }

View File

@ -86,5 +86,17 @@ namespace skyscraper5.Skyscraper
return result; 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;
}
} }
} }