dlsym

    0

    1答えて

    私は動的ライブラリから関数シンボルを取得しようとしていますが、新しい関数ポインタを使用してライブラリ関数funcitonで関数を置き換える必要があります。 C++ファイル。 私は、 { void *temp = dlsym(<FLAGS>,<FUNC_NAME>); *reinterpret_cast<void**>(&real_mal) = temp; void *p = NULL; p

    0

    3答えて

    C++で書かれたさまざまなモジュールで構成されるアプリケーションがあります。 モジュールの1つは、SunGrid Engineで分散タスクを処理するためのモジュールです。 グリッドジョブの送信と監視のためにDRMAA APIを使用します。クライアントがグリッドをサポートしていない場合、ローカルマシンを使用する必要があります。 APIの共有オブジェクトlibdrmaa.soはコンパイル時にリンクされ

    1

    2答えて

    私はLD_PRELOADを使用してPyDict_New関数をインターセプトしようとしています。私はthis recipeがpythonインタプリタのgetpidで動作することを確認しましたが、代わりにadapted it to use PyDict_Newがありますが、期待通りに機能しません。私は辞書を明確に割り当てていますが、この関数を使用する必要がありますが、オーバーライドは呼び出されていませ

    0

    1答えて

    私は本当にここで質問をする必要はありません。しかし、私はsome of the other postsを見てきましたが、このようなソリューションは動作していないようです。おそらく私の構文の誤解。 私は古いコードを改良しています。質問内の関数は、ロードされたモジュールを循環して関数を実行します。このコードは、私がx86を使用していたときにはうまく動作しましたが、64ビットへの飛躍はすべてを苦境に巻き

    6

    2答えて

    を生成可能変数を/home/dumindara/random/sotest/a.outに変更します。 a.outは、関数mallocを持ち、dlsymを内部的に呼び出します。 lsを実行してもこの問題は発生しません。ほとんどのプロセスでこのエラーが発生します。なぜこれが起こり、私はそれを機能させるために何ができるのですか?

    8

    4答えて

    私は現在、いくつかのシステムコールと低レベル関数、例えばmmap、brk、sbrkの使用状況を追跡する必要があるプロジェクトに取り組んでいます。これまでは関数の介在を使用していました。置き換えようとしている関数(例:mmap)と同じ名前のラッパー関数を作成し、LD_PRELOAD環境変数を設定してプログラムにロードします。私はdlsymでロードするポインタを通して実際の関数を呼び出します。 残念な

    1

    2答えて

    私はC++フレームワークを書く際に問題があります。ユーザーは、フレームワークのBaseClassによって派生したクラスを含む共有ライブラリを作成し、インスタンスの派生クラスを返すためにextern "C" createInstance()メソッドを実装することで、その作業をフレームワークに公開できます。したがって、フレームワークは、dlsym()を使用して共有ライブラリを介してcreateInst

    15

    5答えて

    共有ライブラリを使用するアプリケーションがあります。これらのライブラリはコンパイル時にリンクされています。 実行時に、ローダは共有オブジェクトがLD_LIBRARY_PATHにあることを期待していますが、アプリケーション全体がクラッシュして「共有ライブラリをロードできません」というエラーでクラッシュすることを期待しています。クライアントがライブラリを持っているという保証はありません私はアプリケーシ