1

私はメディアプレーヤーをファジングするプロジェクトに取り組んでいます。Javaでファイルジェネレーターを書き、Cで書いた元の圧縮コードからCRCジェネレーターを変換しました。DataOutputStreamでデータをうまく書き込めますが、Javaで符号なし文字配列としてデータを送信する方法がわかりません。C では、これは非常に単純なプロセスです。私はかなり徹底的に解決策を探しましたが、私が見つけた最良の解決策は、データを C に送信し、C が CRC を返すようにすることです。私はこのようなことにかなり慣れていないので、正しく検索していない可能性があります。助けてくれてありがとう。

4

3 に答える 3

6

あなたは間違いなくbyte []が必要です。「バイト」は C の符号付き char と同等です。Java の「char」は 16 ビットの Unicode 値であり、実際にはまったく同等ではありません。

ファジングの場合は、使用している CRC 関数に特別なものがない限り、次のように単純に使用できると思います。

import java.util.Random;
Random randgen = new Random();

byte[] fuzzbytes = new byte[numbytes];
randgen.nextBytes(fuzzbytes);
outstream.write(fuzzbytes, 0, numbytes);
于 2009-03-15T23:01:07.593 に答える
2

あなたがキャラクターで何かをしたいと思っているとは思えません。あなたの説明には、あなたが文字に対して行うテキスト操作を示唆するものは何も見当たりません。

バイト配列を使用したい。バイトが Java で署名されているのは少し面倒ですが、バイト配列はあなたが持っているものです - ビットパターンを実際の数値として考えるのではなく、ビットパターンを操作し、各操作を注意深く確認してください。

于 2009-03-15T22:53:53.883 に答える
0

ほとんどの CRC 演算子は、主にビット単位のシフトと XOR を使用します。これらは、符号なし整数プリミティブをサポートしていない Java で正常に動作するはずです。適切に動作させるために他の演算が必要な場合は、shortへのキャストを試すことができます。

于 2009-03-15T22:54:23.677 に答える