Open kazuminn opened 1 year ago
linuxのbashとかなら、ソフトウェア側からの何かを提供する形になってるのを聞いたことがありますが、windowsは何もわからない。
$ ./target/release/hayabusa csv-timeline -f ../hayabusa-sample-evtx/YamatoSecurity/Sysmon/Sysmon-27-BlockExeWrite_AbusingCertutil.evtx help
みたいに、helpを足すと、ほかのオプションも見れるなども、良いかもしれない。
The following issues are managed for completions
@kazuminn ありがとうございます!
hayabusa.exe c<TAB>
を押した時にc
がcsv-timeline
にタブ補完できたら、凄く楽になるので、コマンドのタブ補完を導入したいのですが、以前Dさんが調べた時に、bash, powershell, command prompt等々それぞれの環境に対応する必要がありそうで、大変そうだったので、一旦放置していると思います。
オプションも結構多いので、オプションを忘れた場合は、hayabusa.exe csv-timeline -f file.exe <TAB>
を押した時に、ヘルプメニューが出てきたら、便利だと思いますが、実装が難しいのでは?
今はユーザがhayabusa.exe csv-timeline
でヘルプメニューを出してから、コマンドを打てば、途中でオプションを忘れた場合は上を見ればあるので、オプションのタブ補完は優先度低いと思います。
bash, powershell, command prompt等々それぞれの環境に対応する必要がありそうで、大変そうだったので、一旦放置していると思います。
clap_completeクレートを使えば、bash, zsh, fish, poweshell, elvish に対応可能なので、実装してみます。
@YamatoSecurity bashで動作を確認できましたが、ユーザー側に設定してもらう必要があります。
ユーザー側で auto-completeサブコマンドを実行すると、シェルスクリプトを吐いてくれて そのスクリプトをshellごとの補完システムに合わせて登録すると動きます。
そこが若干面倒なのが、懸念点です。
@kazuminn なるほど、自動的に追加できたら良いと思ったけど、すでに追加されている可能性があるので、ちょっと危ないですね。それを完璧に検知して上書きできなかったら、シェルプロフィールが壊れてしまうので、少し手間がかかるのが残念だけど、仕方なく手動で追加して貰うのが一番無難そうですね。
Hayabusaのscan wizardのようにユーザがどのシェルを使っているか聞いて、それに対応するスクリプトを出力するようにできますか? 例:
? Which shell are you using? ›
❯ 1. Bash
2. Fish
3. Zsh
4. PowerShell
@YamatoSecurity scan wizard対応できると思います。やってみます。 :muscle:
こちらの別のライブラリを使うと、自動的にintegrateしてくれるかもしれないので、調査してみます。
こちらの別のライブラリを使うと、自動的にintegrateしてくれるかもしれないので、調査してみます。
こちら、自動的にintegrateするものではなく、手動で登録するものでした。 また、ただのclap_completeのラッパーでした。なので、zshも動かないものです。 扱いづらいです。
なので、最初のclap_completeで実装してみます。
$ ./target/release/hayabusa csv-timeline -f ../hayabusa-sample-evtx/YamatoSecurity/Sysmon/Sysmon-27-BlockExeWrite_AbusingCertutil.evtx
の状態からusageみたいなものを(他のオプションなど)を表示することが可能なら、便利かもしれない。
今は、
$ ./target/release/hayabusa csv-timeline
とすると、表示できるがこの状態になるように、消さないといけない。
補完もできると、嬉しいかもしれない。