2011-07-29 3 views
0

は、私は、各C exeファイル内のデバッグシェル(Linuxの的環境)を作成する必要があり、次のように私の解決策は次のとおりです。ELFシンボルとc文法コマンドパーサーを使用してインスタントシェルを作成する成熟したソリューションはありますか?

  1. 、EXEファイルからエルフのシンボルを読む メモリ内のシンボル - >アドレステーブルを構築します。
  2. ユーザー入力を受け入れるためにreadlineを呼び出すスレッドを実行します。何かが関数呼び出しのように です。
  3. leacc & yaccを使用して関数名とargリストを解析します。
  4. シンボルテーブル内の関数のアドレスを検索します。
  5. args listを使用して関数を呼び出します。
  6. 書き込まれたすべての関数をシェルコマンドとして即座に入力できます。

これは新鮮なアイデアではないと私の質問です:すでに成熟したコードが実装されていますか? ご協力いただきありがとうございます!

+0

私はLinuxでプログラムしますが、Windowsは決して考えられません – Acewind

+0

私はそのようなことは聞いたことがありませんが、それは興味深い考えです。あなた自身でそれを探索しなければならないかもしれません。 [またはいくつかのコードを投稿してください!] –

+0

にknizz:プロジェクトはgdbなしで展開されるので、gdbの "call"コマンドと同じように使いやすいものにすることができます。 – Acewind

答えて

1

VxWorksで作業していれば、探しているものがWindShellであることがわかります。私はLinuxに同様のシェルを移植しました。ソースは、 https://sourceforge.net/projects/zprj/

注:WindShellから移植されているため、市販の製品では使用しないでください。商用分野でシェルを使いたい場合は、LEX/YACCで開発しなければなりません。

+0

ちょっと、私は新しいcshellを開発しました。さらに多くの機能がlexとbisonとここで話題になりました。誰でも自分のメールアドレスをここにコメントすることができるので、あなたにソースを送ることができます。 100%オープン、無料です。 – Hao

関連する問題