2012-04-18 10 views
4

ネイティブコードで暗号化機能を実行する方が安全かどうかと思います。 Javaを使用すると、GCがメモリを再ソートし、暗号化/復号化の直後にキーをゼロにしても、メモリの浅いコピーがメモリに残ります。Android NDKネイティブコードtrue native?

多分これは愚かな質問ですが、私は何の情報も見つけられませんでした。 ネイティブコードはまだサンドボックス化されており、VM内で実行されているため、GC/VM /システムはメモリを再ソートして、浅いコピーを残すことができますか?スタックとヒープは静的であるか、移動できますか? AFAIK彼らは仮想アドレスを持っているので、これを行うことができます。

ありがとうございましたと、ないのDalvik VMよろしく

答えて

4

はネイティブコードがARM用にコンパイルされた(そして今、インテルと思う)、それはまだ、それはのDalvikによってロードされ、起動され、プロセッサ上で直接実行しますそれによって直接制御されるわけではありません。ネイティブコードのスタックとヒープは実際のものです。 memcpy/memsetを呼び出すと、メモリが変更されます。

現代のシステムにはすべて仮想メモリもあります。これはおそらくセキュリティに関するものです。