Autor Beitrag
oOXTCOo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Mi 12.08.09 23:01 
55 03 00 + 4B 0A 00 + 41 = opcode + command + xor8

kann mir jemand dabei helfen?, wie berechne ich xor8 mit delphi?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 12.08.09 23:52 
user profile iconoOXTCOo hat folgendes geschrieben Zum zitierten Posting springen:
wie berechne ich xor8 mit delphi?
Was soll xor8 sein? xor ist in Delphi einfach xor.
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Do 13.08.09 00:58 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconoOXTCOo hat folgendes geschrieben Zum zitierten Posting springen:
wie berechne ich xor8 mit delphi?
Was soll xor8 sein? xor ist in Delphi einfach xor.


ich denke xor 8 bit ?

ich finde leider nichts darüber, darum frage ich hier nach... das habe ich gefunden: fundementals.sourceforge.net/cHash.html

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Function CalcXOR8 (const Buf; const BufSize : Integer) : Byte;
var L : LongWord;
  Begin
    L := XOR32Buf (Buf, BufSize);
    Result := Byte (L) xor
              Byte (L shr 8xor
              Byte (L shr 16xor
              Byte (L shr 24);
  End;

Function CalcXOR8 (const Buf : String) : Byte;
  Begin
    Result := CalcXOR8 (Pointer (Buf)^, Length (Buf));
  End;



aber das hilft mir nicht viel weiter...
ich habe davon heute zum ersten mal gehört...


das "normale" xor ist kein problem, verwende ich sehr oft, leider sagt mir aber xor8 nichts und google auch nicht wirklich...



hab da nochwas gefunden:
Es unterstützt die bekanntesten 58 Standard Algorithmen (Adler32, BSD sum, Bzip2's CRC-32, POSIX cksum, CRC-8, CRC-16, CRC-24, CRC-32 (FCS-32), CRC-64, ELF-32, eMule/eDonkey, FCS-16, GOST R 34.11-94, HAS-160, HAVAL (3/4/5 passes, 128/160/192/224/256 bits), MD2, MD4, MD5, MPEG-2's CRC-32, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, SHA-0, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger-128, Tiger-160, Tiger, Tiger2, Tiger Tree Hash, Tiger2 Tree Hash, Unix System V sum, sum8, sum16, sum24, sum32, Whirlpool-0, Whirlpool-1, Whirlpool and xor8).

gefunden in einem java programm namens jacksum.



ich habe mir nun den source runtergeladen (von jacksum) und auch den xor8 source gefunden.
leider in java:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
package jonelo.jacksum.algorithm;

public class Xor8 extends AbstractChecksum {

    public Xor8() {
        super();
        value = 0;
    }


    public void update(byte b) {
        value ^= b & 0xFF;
        length++;
    }


    public void update(int b) {
        update((byte)(b & 0xFF));
    }


}

/*
    Testvector from Motorola's GPS:
    (http://www.motorola.com/ies/GPS/docs_pdf/checksum.pdf)
 
    hex:
      45 61 01 => 25
 */



das sieht sehr nachdem aus was ich suche. 45 61 01 = 25 (sieht gut aus, was ich so sehe)

jetzt muss ich das nur irgendwie in delpgi zum laufen bringen...
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 13.08.09 07:26 
xor8 = einfaches xor (8bit)?
jedenfalls gilt:

4B xor 0A xor 00 = 41
45 xor 61 xor 01 = 25

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Do 13.08.09 08:34 
Wenn ich das richtig verstanden habe, dann müsste das xor8 sowas sein:

longword = 32Bit = 4 Byte

MyLongword: MyByte3 | MyByte2 | MyByte1 | MyByte0

ausblenden Delphi-Quelltext
1:
Xor8 :=  MyByte0 xor MyByte1 xor MyByte2 xor MyByte3;					


Beste Grüße
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Do 13.08.09 14:53 
achsooo... danke!


das heißt ich müsste einfach nur den command bereich per "normalen" xor xoren und dann habe ich das ergebnis...

verstehe schon... mit xor8 ist gemeint normales xoren des command bereichs ergibt 8 bit inlusive dem ergebnis?
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Do 13.08.09 15:02 
es ist nicht +FF sonder &FF
also AND $FF
-->wandelt einen wert in ein Byte um, indem es nur die untersten 8bit nimmt

wsa du brauchst, hast du selbst gepostet: jedes byte des buffers mit dem bisherigem ergebnis XORen
oOXTCOo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 141

Windows XP Prof. 3
Delphi 7
BeitragVerfasst: Do 13.08.09 15:17 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
es ist nicht +FF sonder &FF
also AND $FF
-->wandelt einen wert in ein Byte um, indem es nur die untersten 8bit nimmt

wsa du brauchst, hast du selbst gepostet: jedes byte des buffers mit dem bisherigem ergebnis XORen


danke alles klar, kenne mich jetzt aus...