2

出所不明の文書化されていない実行可能ファイルを取得します。コマンドラインから /?, -h, --help を試しても何も得られません。実行可能ファイルの内部を調べて、実行可能ファイルがコマンド ライン オプションをサポートしているかどうかを確認することはできますか? もしかしてリバースエンジニアリング?これを行う最良の方法は何ですか?

私は Windows の実行可能ファイルについて話しているのですが、別の OS ではどのようなアプローチが必要になるかを知りたいと思っています。

4

3 に答える 3

3

Linux では、ステップ 1 が実行strings your_fileされ、ファイル内のすべての印刷可能な文字列がダンプされます。したがって、「使用法」の説明を含め、すべての定数文字が表示されます。

次のステップはltrace、ファイルで実行することです。これは、プログラムが行うすべての関数呼び出しを示しています。含まれている場合getopt(またはおなじみの場合)、それは入力パラメーターを処理していることの確かな兆候です。実際、関数の 3 番目のパラメーターであるため、プログラムが期待している引数を正確に確認できるはずですgetopt

于 2010-02-26T11:14:36.123 に答える
2

Windows の場合、 Windows 実行可能ファイルの逆コンパイルに関するこの質問を見ることができます。少なくともオプションを見つけるのは比較的簡単なはずです (実際に何をするかは別の話です)。

于 2010-02-26T11:17:40.013 に答える
1

.NET 実行可能ファイルの場合は、Reflectorを使用してみてください。これにより、MSIL コードが同等の C# コードに変換され、理解しやすくなります。残念ながら、プライベート変数とローカル変数の名前は失われます。これらは MSIL に格納されていないためです。

于 2010-02-26T11:10:57.633 に答える