検出softiceを呼び出しint光沢防止3h
これは、世界で最もよく知られアンチデバッグトリック、それを使用するバックドアをsofticeています。 ウィンドウズのすべてのバージョンで動作して、それに基づいてint光沢防止3hを呼び出しレジスタを含む、以下の値:のeax = 04hとebp = 4243484bhます。 実際にはこれが" bchk "文字列です。 もしsofticeがアクティブなメモリ、レジスタのeaxが含まれ以外の値4 。 このトリックが頻繁に使用されたコードの圧縮とエンコーディングのさまざまなプログラム、およびことはよく知られ、そのおかげで広範囲に使用します。 よく使用されるときには、問題を起こすことがあり、より多くの経験を積んだクラッカーさえします。 .386 します。フラットモデル、 stdcall 地元のジャンプ ユニコード= 0 含めるw32.inc extrn setunhandledexceptionfilter :名proc 。データmessage3 message2 delayesp前です。コードのdb "を呼び出すことによって検出int光沢防止3h " 、 0のdb " softice見つかりません"という、 0のdb " softiceが見つかりません" 、 0 ddの0 ; espレジスタは、ここに保存されます。 ddの0 ; espレジスタは、アドレスを保存して、 ;前sehサービスです。 出発点: ;------------------------------------------------- ----------------------------------------------- -; s eh設定エラーの場合は ;------------------------------------------------- ------------------------------------------------ のmov [ delayesp ] 、 esp プッシュオフセット誤差 コールsetunhandledexceptionfilter [前のページ]のmov 、のeax ;------------------------------------------------- ------------------------------------------------ ;新しいアドレスを構造化例外処理( seh )は、ここを設定することを確認した場合、 ;エラーが発生した場合、プログラムは引き続きエラーからラベルが終了すると正しくします。 これは重要 ;たとえば、このプログラムは、割り込みの呼び出しが行われ正しくしている場合にのみsoftice ;がアクティブで、これは、プログラムのクラッシュの原因となるとエラーが発生した場合softiceではありませんアクティブにします。 ;最後に、前のsehサービスのアドレスは保存されます。 ;------------------------------------------------- ------------------------------------------------のeax 、 4のmov ebp 、 " bchk "整数光沢防止3hプッシュのeax ; "マジック"の値が見つかりました。かどうかをsofticeがアクティブ ;呼び出しint光沢防止3h中断;戻り値を保存する ;------------------------------------------------- ------------------------------------------------ ;サービスを設定する前seh ;------------------------------------------------- ------------------------------------------------ dwordのプッシュ[前のページ] ptrに変更 コールsetunhandledexceptionfilter ;------------------------------------------------- ------------------------------------------------ ; seh 、元のアドレスを設定するサービス ;-------------------------------------------------ポップのeax ------------------------------------------------設定cmpのeax 、 4 jnzジャンプを続ける: ;戻り値を元に戻す ;テストのeaxが変更されたかどうかを確認する;それが変更された場合は、 softiceがアクティブ;メモリ コールのmessageboxa 、 0 、オフセットmessage2 、 \オフセットmessage1 、 0 ;------------------------------------------------- ------------------------------------------------ ;場合、戻り値は4 softice見つかりませんでしたプログラムを出力すると、エラーメッセージが表示されます。 ;------------------------------------------------- ------------------------------------------------コールexitprocess 、 -1 ;プログラムを終了 ジャンプ: コールのmessageboxa 、 0 、オフセットmessage3 、 \オフセットmessage1 、 0 ;------------------------------------------------- ------------------------------------------------ ;メッセージを表示することsofticeが見つかりました。この時点で任意のコードをたどる場合があります。 ;------------------------------------------------- ------------------------------------------------コールexitprocess 、 -1 ;プログラムを終了 エラー: ; seh新しいサービスを開始した場合はエラーとなります。 のmov esp 、 [ delayesp ] オフセットを押し続けるret ;------------------------------------------------- ------------------------------------------------ ;エラーが発生した場合は、プログラム、 sehは、このプログラムでは、継続することを確認してから;ラベルにエラーが発生しました。 ;------------------------------------------------- ------------------------------------------------終了 エンドスタート ;プログラムの終わり これは、記事を追加したサムpetrone
|
|||
|