
クラシックな "tree" コマンドをPython3でリメイクし、ユーザーが指定したキーワードや正規表現をファイル内で検索し、一致するものを強調表示する機能を追加したものです。
古典的な "tree" コマンドを Python3 で再実装したスタンドアロンツールで、ユーザーが指定したキーワードや正規表現をファイル内で検索し、一致するファイルをハイライト表示する機能を追加しています。主な目的は次の2つです:
例1:/var/www に対して、password = something のような文字列に一致する正規表現を実行

例2:正規表現の代わりにカンマ区切りのキーワードを使用:

免責事項:Windows 10 Pro でのみテスト済み。
python3 eviltree.py -r C:\xampp -k password,passwd,admin -i -v -q
python3 eviltree.py -r /var/www -x ".{0,3}passw.{0,3}[=]{1}.{0,18}" -i -v -q -L 3
python3 eviltree.py -r / -x ".{0,3}passw.{0,3}[=]{1}.{0,18}" -i -v -q -A -f -L 3
注目すべき機能:
-x 検索は、ファイル内で一致したすべてのパターンのユニークなリストを返します。-v(--verbose)と組み合わせる場合は注意が必要です。具体的に指定し、一致する文字数の長さを制限するようにしてください。-b を指定すると、バイナリファイル内のキーワードや正規表現も検索できます。-k(キーワード)や -x(正規表現)の値を指定しない場合、このツールは従来の "tree" コマンドとして使用できます。これは、マシン上で制限付きシェルを取得した後に、色付き出力の "tree" を使ってディレクトリを見回したい場合に便利です。eviltree.py 内のリスト変数 filetype_blacklist を使用すると、コンテンツ検索から特定のファイル拡張子を除外できます。デフォルトでは次の拡張子が除外されています:gz, zip, tar, rar, 7z, bz2, xz, deb, img, iso, vmdk, dll, ovf, ova。-i(--interesting-only)オプションは非常に便利です。このオプションを指定すると、キーワードや正規表現に一致するコンテンツを持つファイルのみがリスト表示され、出力長が大幅に短縮されます:
-x ".{0,3}passw.{0,3}[=]{1}.{0,18}"-k passw,db_,admin,account,user,token