Private/Find-ZlibHeader.ps1

function Find-ZlibHeader {
    <#
    .SYNOPSIS
        Finds all zlib header positions in byte array.
    
    .DESCRIPTION
        Searches for zlib compression headers (78 9C, 78 DA, 78 01, 78 5E).
    
    .PARAMETER Data
        Byte array to search.
    
    .OUTPUTS
        System.Int32[]
    #>

    [CmdletBinding()]
    [OutputType([int[]])]
    param(
        [Parameter(Mandatory)]
        [byte[]]$Data
    )
    
    $offsets = [System.Collections.Generic.List[int]]::new()
    $validSecondBytes = @(0x9C, 0xDA, 0x01, 0x5E)
    
    for ($i = 0; $i -lt ($Data.Length - 1); $i++) {
        if ($Data[$i] -eq 0x78 -and $Data[$i + 1] -in $validSecondBytes) {
            $offsets.Add($i)
        }
    }
    
    return $offsets.ToArray()
}