2

OS X Lion の下で作業している私は、最近、コード インジェクションを使用して、プロセスごとにシステム コールを挿入する作業を行いました。

私はその過程で多くのことを学びましたが、少なくとも研究目的では、 などの特定のシステム関数へのすべてのpwrite呼び出しを「単に」挿入することが可能であれば、より理にかなっているように見えます。

すべてのプロセスから特定のシステム コール (例: ) を呼び出すたびに、OS の代わりにコードを呼び出すことはできますか?pwrite

もしそうなら、どのプロセスが呼び出しを行ったかを知ることができますか?

編集:私の質問の性質上、誰も私がマルウェアの作成者だと思わないように、私が今ここにいる理由を説明し、私が尋ねていることを尋ねます。

私は、クローズドソース ソフトウェアの大きくて複雑な部分を正常に動作させようとしています。ベンダーが修正するのを待ちませんか?2 年前、彼らは別の政党を非難し始めましたが、その政党はすぐに反論しました。この状況はばかげており、このソフトウェアは、創造的かつ技術的に高度な努力に対して 1 時間あたり数百ドルを請求する映画やビデオ制作の人々によって使用されており、無駄であってはならないため、どちらの当事者の支援もなしに克服することを試みる価値があります。ツールと格闘する彼らの時間。

これまでの私の取り組みの問題点は、問題の原因を見つけるためにコード インジェクションと介入を使用する必要があることです(これは、上記で「調査」と呼んでいるものです)。問題の原因を見つけたら、解決策はインジェクションと介入、または動的ライブラリの置換、またはあいまいな低レベル システムのチューニング、または誰が何を知っているかである可能性もあります。私が分析しているソフトウェアは無秩序に広がっており、他のフレームワーク、ライブラリ、およびバックグラウンド タスクを利用しています。その一部は OS X の一部であり、一部は問題のソフトウェア パッケージの一部です。コンポーネントごとのコード インジェクションとインターポーズは少しおかしくなっています。そのため、システム コールの最後で何が起こっているかをスパイしたいので、たとえば次のように確認できます。pwriteコールの発信とコールの詳細。

この説明が役に立ち、誰かが私を正しい方向に向けてくれることを願っています. ありがとう!

4

1 に答える 1

0

DTrace を参照してください: http://en.wikipedia.org/wiki/DTraceこれは現在 OS X の一部です。介在するには、いくつかのアプローチがあると思いますが、その多くはおそらくゲートキーパー/コード署名によって妨害されるでしょう。それが心配でない場合は、otool を使用してアプリのリンクを編集し、そのライブラリの変更されたバージョンを読み込むことができる場合があります。コード インジェクションについては、過去に入力コンポーネントを使ってハッキングした人がいると思いますが、それがまだ機能するかどうかはわかりません。本当に答えではないと思います。

于 2012-07-31T23:16:31.567 に答える