検出softiceを呼び出しint光沢防止3h


  Share  
|


これは、世界で最もよく知られアンチデバッグトリック、それを使用するバックドアを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

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions