2009-08-11 7 views
0

プログラムがコンパイルされてビルドされてから変更されているかどうかを知るための方法はありますか? ビルド後に.exeが変更されないようにしたいと思います。あなたが知っている変更された.exe(ビルド)を検出します

+0

誰が検出を行うのですか?実行可能ファイル自体または外部プロセス?後者の場合は、変更されていない実行可能ファイルに対してMD5チェックサムなどを提供することができます。 –

+0

MikeD、あなたはあなたの意図を詳述できますか?それは改ざんやビルドプロセスの一部を防ぐことですか?あなたはビルドプロセスへのアクセス権を持つ誰もが「信用できますか? – Adriaan

答えて

0

場合でも..あなたが持っていた知っている人など、防止、

ので

が、それは予防することはできません。これexeファイルを修正するよりも、ビルド時にコンピュータの時刻を変更します。..

+1

であり、したがってセキュリティのコーナーストーンの原則です。あなたは何かを保護することはできません、それは価値があるよりも取得するためにはコストがかかるだけです。 – Chad

+0

私はひび割れが非常に簡単であることを意味する、私は予防が必要な場合、これは一つではないと思う。 – ufukgun

1

秘密鍵を使用してEXEに署名し、公開鍵を使用してその署名をチェックすることができます。私は約20年の間にEXEファイル形式で作業していませんが、このような署名を保存できるスペースがあります。もちろん、チェックしているファイルの部分は、署名そのものを除外する必要があります。

しかし、あなたがEXEをクラックさせないようにしようとするなら、あなたは幸運です。クラッカーは署名を検証するコードに単純にパッチを当てます。

+0

マイクロソフトはhttp://msdn.microsoft.com/en-us/library/8s9b9yaz%でコード署名ツールを持っている28VS.80%29.aspxこれは助けになるかもしれません。 – Adriaan

0

プログラムは、プログラムをビルドしてから変更されているかどうかを知ることはできますか?

はい。残りのプログラムのチェックサムは、分離されたリソース文字列に格納することができます。

プログラムが作成されてから悪意を持って変更されたかどうかをプログラムが知ることは可能ですか?

いいえチェックサム、またはそれを実行して比較する機能さえも変更できます。

0

あなたはTamper Aware and Self Healing Codeについて話していますか?

記事は ハードウェア障害や不正 パッチを検出する実証します。実行可能ファイルにパッチを適用して を埋め込み、予想されるハッシュ値 .textセクションを埋め込みます。 許可されていないバイナリパッチャなどの悪意のあるコードの影響を修復するプロセスを示しています( )。この記事で紹介されている のアイデアは、実行可能ファイル がディスク上かメモリ内にパッチされているかどうかを問わず、同じように動作します。 ただし、自己修復はメモリ で発生します。

0

ほとんどの一般的なコンパイラには、PEヘッダーの「チェックサム」フィールドを入力するスイッチがあります。また、空白のままにして独自のカスタム値を指定することもできます。とにかく、これはそのようなデータを保存するための「標準的な」場所です。

残念ながら、バイナリを改ざんするのを止める本当の方法はありません。これは、exe自体の内部にチェックを入れて検出する必要があります。その時点で、パッチを適用することができます。

この問題の解決策の1つは、特定の機能を暗号化し、既知のデータのチェックサムをキー(たとえば、別の機能のチェックサム)として使用することです。次に、関数を残すと、その関数を再暗号化します。明らかに、これを処理するためにあなた自身のプロローグ/エピローグコードを用意する必要があります。あなたのプログラムが多量にマルチスレッド化されている場合、これは本当に適切ではありませんが、シングルスレッドであるか軽度にしかスレッド化されていない(関数へのアクセスを制御し、すべてのエントリポイントを制御することができます)意志。

これは、単に.text/.data /を暗号化するほとんどの「パッカー」の上のステップです。rdata/etcセクションを開き、すべてを実行時に解読します。これらは非常に簡単に「ダンプする」ことができます。プログラムを実行し、スレッドをすべて停止してからメモリにファイルをダンプするだけです。この攻撃は、例えば最も攻撃的なパッカーの1人であるテミダに対して作用する。そこから、IATを再構築し、いくつかの再配置などを修正する必要があります。

もちろん、攻撃者はデバッガを使用して暗号化されていないコードをダンプしてexeをアンパックすることは可能です明らかに何も絶対確実ではありません。

関連する問題