パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

ARM/XScale/PPCにNULL-pointer脆弱性、家庭のルータにも影響」記事へのコメント

  • by monaka (4489) on 2007年06月26日 18時40分 (#1180359)
    量産の組込み機器で,remapして貴重なRAM割り当てて…なんて,するの?

    // そもそもSVCで動いていると想定した時点でやりたい放題じゃんとも思うID
    --
    from もなか
    • by undefined (8004) on 2007年06月27日 19時40分 (#1181075)
      1. ROMよりもRAMの方が高速な場合が多いので、速度を気にするなら起動時に全部RAMに移してたりします。

      2. ページ単位のアクセスだけでメモリマップできない Flash ROM (NAND Flash にはできないのが多い)の場合はRAMに展開するしかありません。

      親コメント
      • 組込み開発の一般論として言わんとすることは判るのですが.
        それって,ARM/XScale/PPCの0番地付近で一般的に見かけるケースですか?

        DigiのNS93xxのように,0番地にRAMを置く気満々なアーキテクチャも無くはないですけれど,
        ああいうのはARMの中でも極めて少数派だと思うのですよ.そうでもないのかなぁ.
        --
        from もなか
        親コメント
        • 例えば、Intelの IXP425 は、物理アドレスの0番地からSDRAM専用領域になってますね。
          ブート時だけ外部バス領域が0番地にかぶさります。

          SamsungのS3C2410 (ARM9系) は、0番地にNOR Flash を置くこともできますが、NAND Flash を使う場合は
          リセット時に内蔵SRAMが0番地にマッピングされます。(Flashの最初のページが内蔵SRAMにコピーされる)

          多数派ではないかもしれませんが、0番地にROMが無いシステム構成は、それほどめずらしくないのではないかと思います。
          親コメント
          • IXP425は確かDigiのと同じ仕組みですね.Samsungは知りませんでした.

            > それほどめずらしくない

            それでもやはり,ARM/XScaleを俯瞰すると,珍しい部類ではないかしら.(←主観です.)
            でも,ARM7系のremapの利用率次第では,様相はがらりと変わってきますね.
            私は,使わないと思っているけれども,定量評価をしたわけでもないし.

            --
            from もなか
            親コメント
    • リセット時はROMエリアを、リードでROM、ライトでRAMにアクセスするようにして、
      ブートコードでROM→RAMコピーをした後にROMを切り離すという実装はよくある実装じゃない?

              volatile long *ptr;
              for( ptr = ( volatile long *)0; ptr < ROM_SIZE; ptr++){
                      *ptr = *ptr;
              }
              // ここでROM切り離し。

      最近はROMもマイコンに内蔵だからこういう実装は少ないのかな。
      親コメント
      • 最近は見ないですねぇ.
        特に省ピン品のARM7系では,外部メモリが実質使えなかったりしますし.
        #1180635 で示唆した通り,ARM/XScale系ではremap(or HIVECS)を使うのが定石でしょうね.

        しかし,ARM/XScaleのいずれも,割り込みや例外の要因毎にダラダラとベクタが並ぶタイプではありません.
        ベクタをRAMに置きたがる積極的な理由はないはずなのですよ.
        間接ジャンプ1個追加しても占有メモリへの影響は誤差範囲なのです.
        --
        from もなか
        親コメント
    • PDFには『ファームウェアのアップデートで書換えられる』とか書いてるみたい(Preventionのすぐ前とか)なので、そういうルータ(等)の話みたいです。
      • ファームのアップデート時に,NULL-pointer脆弱性を使って攻撃する手段…? 思い浮かばないなぁ….

        まあ,CPU例外ハンドラを実行時にユーザ定義できるようなRTOSでは,ベクタをRAMにremapするなんていう実装も,考えられなくもないですけれどねぇ.
        そういう実装なら,実行時にNULL-pointer脆弱性を持つかもしれないですねぇ.
        (ふつうRAMエリアへの間接ジャンプにするとは思いますけれど.身近な例だとGame Boy Advanceとかね)

        --
        from もなか
        親コメント

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

処理中...