memory-safety

    0

    1答えて

    私はClang/llvmでControl-Flow Integrityを実装したいと考えています。 (前向きCFIが既に実装されていることを知っています) 私の問題は、コンパイラには何も実装していないことです。 私の実装では、まず、すべての呼び出し(内部=>ライブラリ呼び出しなし)のリストを取得し、関数の終了方法を変更する必要があります(retではなくpop + jmpなど)。 プラグインシステム

    2

    1答えて

    -Wp,-D_FORTIFY_SOURCE=2オプション(または=1)と-Ogの最適化レベルを使用できますか? を紹介するThe patchには、コメント/* Object size checking is only intended for -O[s123]. */が含まれています。 2004年です。そして、いつ-Ogキーが導入されたのかは分かりません(多分後で)。 どちらの最適化(最適化フラグ

    0

    2答えて

    私は、OSがプログラムが他のプログラムメモリにアクセスするのを防ぐために提供するシステムコールについて知っています。しかし、これは、OSが提供するシステムコールライブラリを使用した場合にのみ役立ちます。カーネルモードのCPUビットを設定し、特権命令を実行するアセンブリコードを自分で記述するとどうなりますか(メモリ内でOSのプログラムセグメントを変更しようとしましょう)。 OSはそれを防ぐことができ

    31

    7答えて

    私はCentOS 6.4 32ビットを使用しており、プログラムでバッファオーバーフローを引き起こしています。 GDB内で動作します。ここに出力があります: [[email protected] bufferoverflow]# gdb stack GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) Copyright (C) 2010

    5

    1答えて

    安全性が重要なプロジェクトでは、動的割り当てや割り当てられたメモリの解放はお勧めしません。プログラム実行の精緻化/初期化フェーズの間のみ可能です。 私は静的な割り当てだけを行うべきか、動的な割り当てが全体のプログラムに悪影響を及ぼさないといういくつかの正当な理由を実行するという点でSWを実装すると主張します。この問題?どのような方法や、プログラムの初期化/精緻化中にいくつかの(ヒープ)メモリを割り

    2

    1答えて

    プログラミング言語Rustを試してみると、コンパイラはスタック上の構造体のフィールドの移動を追跡できることを発見しました正確に(正確にはを知っていて、フィールドは移動しました)。 しかし、構造体の一部をBoxに入れると、コンパイラはのボックスのを参照した後に、発生するすべてのフィールドレベルの移動を判断できなくなります。箱の中の構造全体が移動したと仮定します。 struct OuterContai