ネットを眺めていて以下のような質問を見つけた。
findstrでバイナリを検索したい - Microsoft Answers
実際PowerShellだとどうなるのかちょっとだけ考えてみた。
(ちょっとだけなので、とりあえずできるかどうかだけ)
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 | param( $FilePath, $FindHexString ) $hexFileString = -join(get-content $filepath -Encoding Byte | %{[Convert]::ToString($_,16).padleft(2,"0")}) for ($i = 0; $i + $FindHexString.Length -le $hexFileString.Length; $i += 2) { if($hexFileString.SubString($i,$FindHexString.Length) -eq $FindHexString) { return $true } } return $false |
ファイルのパスと検索文字列を受け取って、文字列が含まれているか判定している。
まずは以下で、
Get-Content $filepath -Encoding Byte |
あとはこれをバイト単位(即ち2文字ずつ)でずらしながら検索文字列で舐めてあげる。
細かく試していないのでループの仕方とかは自信がないが、とりあえず雰囲気として検索ができているのではないだろうか。
0 件のコメント:
コメントを投稿