You can use the PowerShell function below along with Get-Content to see a hexdump of the file contents, i.e., Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
. It takes about 23 seconds to dump a 222 KB file and, if desired, the output can be redirected to a text file to make examining the dump easier.
$encodingAutoCompleter = { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters) $availableEncodings = ([System.Text.Encoding]::GetEncodings() | Select Name, CodePage, DisplayName) + @( [PSCustomObject] @{ CodePage = '20127'; Name = 'ascii'; DisplayName = 'US-ASCII' }, [PSCustomObject] @{ CodePage = '1200'; Name = 'unicode'; DisplayName = 'Unicode' } ) $availableEncodings | ?{ $_.Name.StartsWith($wordToComplete) } | %{ New-Object System.Management.Automation.CompletionResult -ArgumentList $_.Name, $_.Name, 'ParameterValue', "$($_.DisplayName). Code Page $($_.CodePage)." }}function Format-BufferText([byte[]] $buffer, [System.Text.Encoding] $displayEncoding, [switch] $useControlPictures){ $bufferChars = $displayEncoding.GetChars($buffer); $bufferText = (($bufferChars | %{ if ([char]::IsControl($_) -eq $true) { if ($useControlPictures -eq $false) { '.' } else { [char] ($_.ToInt16([cultureinfo]::InvariantCulture) + 0x2400) } } else { "$_" } }) -join "") $bufferText}<# .Synopsis Displays binary data as a hexadecimal dump. .Description Displays binary data as a hexadecimal dump. Options are available to suppress displaying text and to display control characters as Unicode Control Pictures instead of dots. .Parameter Bytes The bytes to be displayed. .Parameter Encoding The name of the text encoding to use. The default is ascii. .Parameter NoTextDisplay If specified the text display sidebar will be suppressed; otherwise, the display text sidebar will be present. .Parameter UseControlPictures If specified control characters will be displayed as Unicode Control pictures; otherwise, dots are used to represent control characters. .Example Format-HexDump -Encoding unicode $bytes .Example Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump -Encoding unicode .Example 0..255 | Format-HexDump -NoTextDisplay#>function Format-HexDump{ [CmdletBinding()] param ( [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [byte[]] $Bytes, [ValidateScript({ if (([System.Text.Encoding]::GetEncodings().Name + @('unicode', 'ascii')) -icontains $_) { return $true } else { Throw "Encoding must be one of the following: $([System.Text.Encoding]::GetEncodings().Name -join ', '), unicode, or ascii." } })] [Parameter(ValueFromPipeline = $false)] [string] $Encoding = "ASCII", [Parameter()] [switch] $NoTextDisplay, [Parameter()] [switch] $UseControlPictures ) BEGIN { $displayEncoding = [System.Text.Encoding]::GetEncoding($Encoding) $counter = 0 $hexRow = "" [byte[]] $buffer = @() } PROCESS { foreach ($byte in $Bytes) { $buffer += $byte $hexValue = $byte.ToString("X2") if ($counter % 16 -eq 0) { $buffer = @($byte) $hexRow = "$($counter.ToString("X8")): $($hexValue) " } elseif ($counter % 16 -eq 15) { if ($NoTextDisplay -eq $true) { $hexRow += "$($hexValue)" $hexRow } else { $bufferText = Format-BufferText $buffer $displayEncoding $UseControlPictures $hexRow += "$($hexValue) $($bufferText)" $hexRow } } else { $hexRow += "$($hexValue) " } $counter++ } } END { $counter-- if ($counter % 16 -ne 15) { $hexRow += "" * (((16 - $counter % 16) * 3) - 1) if ($NoTextDisplay -eq $false) { $bufferText = Format-BufferText $buffer $displayEncoding $UseControlPictures $hexRow += "$($bufferText)" } $hexRow } }}Register-ArgumentCompleter -CommandName Format-HexDump -ParameterName Encoding -ScriptBlock $encodingAutoCompleter
Output looks like this:
00000000: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................00000010: 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ................00000020: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./00000030: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 0123456789:;<=>?00000040: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F @ABCDEFGHIJKLMNO00000050: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_00000060: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F `abcdefghijklmno00000070: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F pqrstuvwxyz{|}~.00000080: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F ????????????????00000090: 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F ????????????????000000A0: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF ????????????????000000B0: B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF ????????????????000000C0: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF ????????????????000000D0: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF ????????????????000000E0: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF ????????????????000000F0: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF ????????????????