[解決済み] 正規のコードに0x90(NOP)シーケンスが含まれる場合
質問
背景を教えてください。 私は、IPパケット、特にパケットのペイロード/データを検査して、それがバッファ(スタック)オーバーフローに使用できるかどうかを検出するために、Pythonスクリプトを書きました。NOPスレッドは、命令ポインタが最終的に悪用コードにぶつかるようにスタックを埋めるために使用されると私は理解していますが、これは0x90の繰り返しを探すことで簡単に検出することができます。SQL slammerの場合、NOPコマンドの数が8個と少ないので、最小限の8個で済むかもしれません。
さて、質問ですが、NOPスレは正規のコードでよく使われるのでしょうか?もし答えがイエスなら、いくつかの特定のケースがあるのでしょうか(つまり、これらのケースを探して、潜在的に無害なパケットを除外することができます)、それともこのアプローチは悪意のあるコードを識別するために実用的ではないのでしょうか?
どのように解決するのか?
例えば、x86のある種の反復では、ジャンプは 行き先 は4バイト、8バイト、あるいは16バイトの境界にアラインされています。
コンパイラによっては、可能な限り "long NOPs" を使おうとするものもあります -- 1 バイト以上のスペースを取り、形式的には何かを行うかもしれませんが、プロセッサの状態には影響を及ぼさない単一の命令です。
一部
x86アーキテクチャの繰り返しでは、この方が高速です。 例えば
66 90
は2バイトのNOPであり
8d 74 26 00
は4バイトのNOPです(厳密には
lea 0(%esi,%eiz,1),%esi
の値をコピーしているだけです。
%esi
を自分自身に置き換えるので、何の効果もない)。しかし、これらはすべてのケースで使えるわけではなく、いくつかのx86で最も高速なシーケンスは、気が滅入るほどしばしば本当に
遅い
があります。 現在のマイクロ最適化ガイドラインは読んでいませんが、もしIntelとAMDが、文字列を
90
が長いNOPを実行する最速の方法であり、コンパイラもそれに合わせるようにしたのです。
関連
-
[解決済み] セキュリティ透過的な方法Xによるセキュリティクリティカルな方法Yへのアクセスの試みは失敗しました。
-
[解決済み] ClientとUser-Agentの違い
-
Linuxセキュリティの基礎
-
[解決済み] 後で平文を取り出すためのユーザーパスワードの保管について、倫理的にどのように取り組むべきでしょうか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] Webサイトに "remember me "を実装するのに最適な方法は何ですか?[クローズド]
-
[解決済み] HTTPS(HTTP + SSL)において、クエリストリングパラメーターは安全ですか? [重複している]。
-
[解決済み] reCaptchaはクラックされましたか?[クローズド]
-
[解決済み] ベストプラクティス。パスワードのソルティングとペパリング?
-
[解決済み] HTTP基本認証で使用されるBase64エンコーディングの目的、理由を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】攻撃者はinspect要素を有害に使用することができるか?
-
[解決済み] Jenkins Scriptlerプラグインの置き換え?
-
[解決済み] CloudflareでオリジンIPアドレスの公開を防ぐには?
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み] ハッシュ化アルゴリズムと暗号化アルゴリズムの根本的な違い
-
[解決済み] ブラウザの「パスワードの保存」機能を無効にする
-
[解決済み】Dockerとパスワードの保護
-
[解決済み] SSOはCASかOAuthか?
-
[解決済み] HTTP_REFERERはどのような場合に空になるのでしょうか?
-
[解決済み] HTTP基本認証で使用されるBase64エンコーディングの目的、理由を教えてください。