ctffind という exe プログラムにデータをフィードするスクリプトを作成しました。exe プログラムは、ログファイルにキャプチャしようとしている画面に大量のデータを出力します。
今使っているのはこちら
my $logout = logfile
open STDOUT, '>>', "$logout";
open my $PIPE1, '|-', '/opt/ctf/ctffind3_mp.exe' or die $!;
画面に表示されたすべてをログファイルに出力します。
ファイルが期待どおりに表示される場合more $logfile
、長さは約 5000 行で、文字列「最終値」を含む約 50 行あります。私の次のステップでgrep "final values" logfile
は、ログファイルがバイナリファイルであると考え、機能しない代わりに次のように返します。
Binary file logfile matches
ログファイルが適切にエンコードされるように設定するにはどうすればよいですか? ctffind.exe も実行中にバイナリ ファイルを生成していますが、これは問題の一部ですか?