悪意のあるコードからシェルコードを抽出したマルウェア(Blackhole Exploit)の動作を学んでいます。バイト文字列の検索以外のすべてを理解しました。誰かがこれについて私を助けることができますか?このシェルコード(ほとんどの悪意のあるシェルコード)がこの特定の文字列を検索するのはなぜですか?検索コードは次のようになります。
mov eax, 0C330408BH;
inc esi
cmp dword ptr [esi], eax
jne //back to top//
悪意のあるコードからシェルコードを抽出したマルウェア(Blackhole Exploit)の動作を学んでいます。バイト文字列の検索以外のすべてを理解しました。誰かがこれについて私を助けることができますか?このシェルコード(ほとんどの悪意のあるシェルコード)がこの特定の文字列を検索するのはなぜですか?検索コードは次のようになります。
mov eax, 0C330408BH;
inc esi
cmp dword ptr [esi], eax
jne //back to top//
Igorの回答に加えて、この記事http://skypher.com/index.php/2010/11/17/bypassing-eaf/を読むことをお勧めします。このコードは、システムDLL内の特定の命令を探して、それらを使用してメモリ内の任意の場所との間でデータを読み書きします。したがって、このコードを使用するには、(address-0x30)をeaxに配置し、上記のシーケンスを呼び出します。
マジックバイトを取得し、それらをリトルエンディアン形式に変換して逆アセンブルすると、次のようになります。
8B 40 30 mov eax, [eax+30h]
C3 retn
したがって、シェルコードはこの一連の命令を検索しています。100%確信はありませんが、メモリ内のkernel32イメージを見つけるために使用されていると思います(このシーケンスは通常そこで発生するため)。