-1

コードでは、私は使用します

#include <sys/types.h>

#include <sys/ptrace.h>

ptrace(PT_DENY_ATTACH, 0, 0, 0);

プロセスへのアタッチを拒否します。「ptrace()」の名前をあまり明白でない名前に変更する方法があるかどうか疑問に思っていました。ptrace.h を自分のヘッダー ファイルにコピーして、int ptrace を別のものに変更しようとしましたが、未定義のシンボル エラーで失敗しました。そして、関数への他の参照が見つかりません:\

これについて何かを事前に感謝します。

4

2 に答える 2

3

ptraceシステムコールです。コードでその関数の名前を変更した場合でもC、実際のptrace呼び出しを行う必要があるため、たとえばstrace出力 (すべてのパラメーターを含む) に表示されます。

マクロ トリックを使用すると、わずかに目立たgrepsなくなります (コードベースで見つけるには、1 つではなく 2 つ必要です)。だから私は本当にポイントがわかりません。(マクロトリックは、コンパイルされたコードに何も変更しません。)

を使用して実際の syscall を自分で実行してみることができますがsyscall、それは大変な作業であり、その時点まではまだ何も隠していませんstrace。gdbでそこを壊すのが少し難しくなります。

だからIMO:あなたがやろうとしていることは、努力する価値がありません.

于 2011-04-14T10:26:05.950 に答える
-1

ヘッダーで #define を使用して、新しいマクロを作成します。

#define MyTrace(a,b,c,d) ptrace(a,b,c,d)

于 2011-04-14T10:21:30.940 に答える