タグ付けされた質問 「buffers」

9
Cがバッファオーバーフローを起こしにくくするのはなぜ難しいのですか?
私は大学でコースを行っています。ラボの1つでは、提供されたコードに対してバッファオーバーフローエクスプロイトを実行しています。これは、スタック上の関数の戻りアドレスを変更して別の関数に戻るなどの単純な悪用から、プログラムのレジスタ/メモリ状態を変更してから呼び出した関数に戻るコードまでの範囲です。あなたが呼び出した関数は、エクスプロイトを完全に忘れています。 私はこれについていくつか調査を行いましたが、この種のエクスプロイトは、Wiiでhomebrewを実行したり、iOS 4.3.1のテザーなしのジェイルブレイクを実行したりするなど、今でもどこでも使用されています。 私の質問は、なぜこの問題を修正するのがとても難しいのですか?これが何百ものものをハッキングするために使用される主要なエクスプロイトの1つであることは明らかですが、許可された長さを超えて入力を切り捨て、取得したすべての入力を単純にサニタイズするだけで修正するのは非常に簡単だと思われます。 編集:私は考慮すべき答えが欲しい別の視点-なぜCの作成者はライブラリを再実装することでこれらの問題を修正しないのですか?

1
一方向ストリーミングオーディオデバイスにはどのような種類のバッファを実装する必要がありますか?
オーディオデータがデバイスにストリーミングされるプロジェクトに取り組んでいます。オーディオデータはオーパス経由でエンコードされ、一度に20 msのペイロードでストリーミングされます。パケット損失を完全に回避するために、ストリーミングはTCP経由で行われます。ストリーミングの目的は、オーディオの損失やジッターを発生させずに、ライブオーディオストリーミングにできる限り近づけることです。 現在、遅いインターネット接続で何が起こるか、オーディオが少しジッターすることがあります。私は現在バッファを使用していませんが、目標はできるだけ「ライブストリーミング」に近づけることができると同時にジッターを排除することです。 私はジッターバッファーを調べましたが、ジッターバッファーも両端で遅延を処理して、両端が可能な限り同期するようになっているようです。静的なバッファサイズを作成した場合、必要がなければ、ライブストリーミングの側面からそれを取り除くことになると思います。 だから、これはいくつかの質問を私に残します、それらはすべて何らかの形で関連しています。 バッファー長を検出するための適切な方法またはアルゴリズムは何ですか? 受信側のデコーダーにデータを送り始めるための最良の方法は何ですか?バッファが一定のミリ秒に達すると、20ミリ秒のペイロードでデータの供給を開始しますか? バッファーがいっぱいになった場合、再生を遅らせますか? バッファはバイトまたは時間の長さになりますか? 本当にありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.