8

入力を送信し、さまざまな aircrack-ng スイート ツールから出力を取得する必要があるプログラムを作成することを考えています。subprocess、envoy、sarge、pexpect など、必要な機能を提供する Python モジュールをいくつか知っています。特に私がPythonに慣れていないので、誰でも私が何を使うべきか、何を使わないべきかについてアドバイスできますか?

ありがとう

4

3 に答える 3

13

のメンテナーとして、sargeその目標はenvoy(よりも使いやすさの点でsubprocess) に広く似ており、(IMO)sargeに関してはより多くの機能があると言えます。

  • bash に似た構文のクロスプラットフォーム サポート (コマンド ラインでの&&, ||,の例)&
  • 出力ストリームのキャプチャsubprocessと非同期処理のサポートの向上
  • 特に、サブプロセスを使用するコンテキストでのスレッド + フォークなどの内部および周辺の問題に関する詳細なドキュメント
  • シェル インジェクション攻撃の防止のサポート

もちろん YMMV ですが、 docsを確認できます。かなり包括的です。

于 2012-06-14T11:32:00.387 に答える
4

期待する

2015 年、pexpect は Windows で動作しません。次のバージョンで「実験的」サポートを追加すると噂されていますが、これは長い間噂されていました (私は息を止めていません)。

pexpect を使用して多くのアプリケーションを作成して (そしてそれを愛して)、今では申し訳ありません。なぜなら、Python について私が気に入っていることの 1 つ (クロスプラットフォームであること) が、私のアプリケーションには当てはまらないからです。

Windows サポートを追加する予定がある場合は、当面は pexpect を避けてください。

特使

昨年はあまり活動がありませんでした。また、2012 年以降のコミットはほとんどありません (合計 12 件)。将来性はあまり期待できません。

内部的には、Windows パスと互換性のない方法で shlex を使用します (コマンドは、ディレクトリ セパレーターに '\' ではなく '/' を使用する必要があります)。回避策 (pathlib を使用する場合) は、パス オブジェクトをコマンドとして渡す前にas_posix()を呼び出すことです。この回答を参照してください。

内部ストリームへのアクセスを取得する (つまり、出力を解析してスクロールバーを更新したい) ことは可能ですが、文書化されていません。

サージ

すぐに使用できる Windows で動作し、pexpect と同様の機能を提供するはずの expect() メソッドがあります (スクロールバーを更新できます)。最近のアクティビティですが、gitlabbitbucketでホストされています(非常に紛らわしい)。

個人的な結論

将来の開発のためにpexpectから sargeに移行しています。pexpect と同様の機能セットを提供しているようで、Windows をサポートしています。

于 2015-09-11T11:29:15.447 に答える
2

subprocess - 標準ライブラリ モジュールなので、python のインストールで利用できます。しかし、APIが直感的ではないため、使いにくいという評判があります。

envoy - サブプロセスをラップするサードパーティ モジュールです。サブプロセスの代替として使いやすいように書かれています。特使 Kenneth Reitz の著者は、 Python for Humans哲学で有名です。

私は他の2つに精通していません。

于 2012-06-03T21:18:08.133 に答える