Java-Unsigned Char-Array
Arbeite ich an einem Projekt fuzzing ein media-player. Ich habe die Datei-generator, der in Java konvertiert und auf der CRC-generator von der ursprünglichen Kompression-code in C geschrieben. ich kann das schreiben von Daten in Ordnung, mit DataOutputStream, aber ich kann nicht herausfinden, wie das senden der Daten als unsignierte Zeichen-array in java. In C ist dies ein sehr einfacher Prozess. Ich habe gesucht nach einer Lösung ziemlich gründlich, und die beste Lösung, die ich gefunden habe, ist, senden Sie einfach die Daten auf C und sei C die Rückkehr eines CRC. Ich kann nur nicht die Suche richtig, wie ich bin ziemlich vertraut mit diesem Zeug. Vielen Dank für jede Hilfe.
- Warum wählen Sie zum Anschluss der CRC-routine von C nach Java? Ist es nicht standard? Ich Frage deshalb, weil vielleicht wird es leichter zu finden, ein ursprünglich in Java geschrieben, und es wird wahrscheinlich mehr optimiert, als ein port von der anderen Sprache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollen Sie auf jeden Fall ein byte[]. Ein 'byte' ist gleichbedeutend mit signed char in C. Java ist "char" ist ein 16-bit-unicode-Wert und nicht wirklich gleichwertig auf alle.
Wenn es für fuzzing, es sei denn, es ist etwas besonderes über die CRC-Funktion, die Sie verwenden, ich denke, Sie könnten einfach verwenden:
Ich bezweifle, dass Sie wollen, etwas zu tun mit Zeichen. Ich kann nicht sehen, dass etwas in Ihrer Beschreibung, die andeutet text manipulation, das ist, was Sie tun würde, mit Zeichen.
Möchten Sie verwenden ein byte-array. Es ist ein bisschen wie ein Schmerz, die bytes sind unterzeichnet in Java, sondern ein byte-array ist, was du hast - einfach mit dem bit-Muster anstatt zu denken, von Ihnen als tatsächliche zahlen, und überprüfen Sie jeden Vorgang sorgfältig.
Meisten CRC-Operatoren verwenden meist bitweise shifts und XORs. Diese sollte gut funktionieren auf Java unterstützt keine vorzeichenlosen integer-primitiven. Wenn Sie andere Arithmetik um richtig zu arbeiten, könnten Sie versuchen, die Umwandlung ein kurze.