タグ

ブックマーク / ntddk.github.io (2)

  • BareCloud

    2014/09/18 第2回 システム系論文輪読会 発表資料

  • マルウェア解析におけるRecord and Replayの設計 | 一生あとで読んでろ

    実マシンでは,ecx*word=6バイトが1回で書き換わるが,QEMUの動的バイナリ変換では2バイトずつ3回で書き換わる.そのため,1回目の書き換えで0xeb 0x01 0xa5すなわちjmp +01になってしまい,qemu_foundにジャンプしてしまう. その他には,ページ境界を越えてブロックの変換が行われた場合にページフォルトが発生してしまうことも考えられるし,ブロック境界でのみ割り込みが行われる,CPUサイクルの消費が著しいといった実マシンとの相違点もある. さらに問題なのが,フラグの遅延評価だ.例えば,cmpとjzの組み合わせなどの条件分岐は,EFLAGSを更新する.だが,QEMUにおいてはcmpが実行される段階でEFLAGSの計算は行われない.実際に計算されるのはjzの実行時,それも分岐を決定するためのZFのみが計算される.この設計はエミュレーションの高速化に寄与しているが,も

    マルウェア解析におけるRecord and Replayの設計 | 一生あとで読んでろ
    yumu19
    yumu19 2015/02/26
    これ元論文も紹介記事もすごいな、なるほど。
  • 1