ich hab ne frage was die checksum berechnung betrift 0000 00 13 d4 66 f2 4c 00 17 31 d7 8d b3 08 00 45 00 ...f.L..1.....E. 0010 00 3c d7 2e 00 00 80 01 7e 17 c0 a8 b2 14 c0 a8 .<......~....... 0020 b2 15 00 00 4a 5c 02 00 09 00 61 62 63 64 65 66 ....J\....abcdef 0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv 0040 77 61 62 63 64 65 66 67 68 69 wabcdefghi wie ich auf die checksum im ICMP header komm ist mir klar 4500 003C D72E 0000 8001 C0A8 B214 C0A8 B215 jedes word komplemtieren und und jeweils addieren Doch welche word/bytes muß ich im ICMP Data feld addieren? 0020 00 00 4a 5c 02 00 09 00 61 62 63 64 65 66 ....J\....abcdef 0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv 0040 77 61 62 63 64 65 66 67 68 69 um auf die 4a5c zukommen?
Ich kann's nicht. Ich scheitere an deiner konfusen Beschreibung. Was ist dein ICMP Paket, welchen Typ/Code hat es, wo beginnt der ICMP Header und wo das ICMP data field?
danach http://tools.ietf.org/html/rfc792 ist die Daten Checksum genauso wie die Header Checksum definiert.
ooops, stimmt nicht ganz. Wie ich es sehe hängt der Datenteil von der ICMP Message ab und enthält gar keine Checksum mehr.
das ist es ja ich komm einfach nicht drauf was da zusammen gerechnet wird hab war was gefunden aber verstehs nicht http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol Checksum This field contains error checking data calculated from the ICMP header+data, with value 0 for this field. was denn für ne value 0 ? die daten sind 61 62 63 64 65 66 ....J\....abcdef 0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv 0040 77 61 62 63 64 65 66 67 68 69 oder gehören die: 00 00 (ckecksum) 02 00 09 00 auch dazu ? selbst dann komm ich auf ein anderes ergebnis
JOOOO leute ich habs 0000 13 d4 66 f2 4c 00 17 31 d7 8d b3 08 00 45 00 ...f.L..1.....E. 0010 00 3c d7 2e 00 00 80 01 7e 17 c0 a8 b2 14 c0 a8 .<......~....... 0020 b2 15 00 00 4a 5c 02 00 09 00 61 62 63 64 65 66 ....J\....abcdef 0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv 0040 77 61 62 63 64 65 66 67 68 69 wabcdefghi ckecksum berechnug für icmp header 45 00 00 3c d7 2e 00 00 80 01 .. .. c0 a8 b2 14 c0 a8 b2 15 da wo .. .. stehen die 7e 17 darf nicht mitberechnet werden sondern ist ja euer ergebnis falls die werte stimmen siehe http://www.packetshack.org/index.php?page=IPchksum checksum berechnung für icmp data (das was ich gesucht hatte) :-) 0020 .. .. 00 00 4a 5c 02 00 09 00 61 62 63 64 65 66 ....J\....abcdef 0030 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 ghijklmnopqrstuv 0040 77 61 62 63 64 65 66 67 68 69 wabcdefghi einfach alles zusammen rechnen hab dafür auch gleich ein prog geschrieben für den 8051 ergebnis der berechnung ist im R7 low byte und R6 high byte zu finden A51 MACRO ASSEMBLER MAIN 09/08/2007 18:26:52 PAGE 1 MACRO ASSEMBLER A51 V8.00d OBJECT MODULE PLACED IN main.OBJ ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE main SET(SMALL) DEBUG EP LOC OBJ LINE SOURCE 1 2 3 ;r5 temp 4 ;r6 high 5 ;r7 low 6 0000 7 org 0x0000 8 0000 C3 9 clr c 0001 7FFF 10 mov r7,#0xff ;reset low 0003 7EFF 11 mov r6,#0xff ;reset high 0005 900120 12 mov dptr,#hexii 0008 7C40 13 mov r4,#0x40 ;so many round s 14 000A 15 checkagain: 000A E4 16 clr a ;lösche akku 000B 93 17 movc a,@a+dptr ;hole high byte 000C F4 18 cpl a ;komplimentiere 000D FD 19 mov r5,a ;high byte in das r5 register zwischen speichern 000E A3 20 inc dptr ;datenpionter +1 000F E4 21 clr a ;lösche akku 0010 93 22 movc a,@a+dptr ;hole low byte 0011 F4 23 cpl a ;komplimentiere 0012 3F 24 addc a,r7 ; addiere low mit gespeichertem low byte 0013 FF 25 mov r7,a ;speichere low byte 0014 ED 26 mov a,r5 ;hole high byte 0015 3E 27 addc a,r6 ;adiere high byte mit gespeichertem high byte 0016 FE 28 mov r6,a ;speichere high byte 0017 A3 29 inc dptr ;datenpionter +1 0018 DCF0 30 djnz r4,checkagain ;again? 001A E4 31 clr a ;falls jetzt noch carry gesetzt ist wird es dazu adiert 001B 3F 32 addc a,r7 ;adiere low byte mit carry 001C FF 33 mov r7,a ;ergebnis speichern 001D E4 34 clr a ;lösche akku 001E 3E 35 addc a,r6 ;ist bei der adition ein übertrag entsatnden? 001F FE 36 mov r6,a ;high byte speichern 37 0020 38 halt: 0020 80FE 39 sjmp halt 40 0100 41 org 0x0100 0100 4500003C 42 hex: db 0x45,0x00,0x00,0x3c,0xed,0xf1,0x00,0x00,0x80,0x01,0xc0,0xa8,0xb2,0x15,0x c0,0xa8,0xb 2,0x14 0104 EDF10000 0108 8001C0A8 010C B215C0A8 0110 B214 43 0120 44 org 0x0120 0120 08000000 45 hexII: db 0x08,0x00,0x00,0x00,0x02,0x00,0x09,0x00,0x61,0x62,0x63,0x64,0x65,0x66,0x 67,0x68,0 x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x7 7,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69 0124 02000900 0128 61626364 012C 65666768 0130 696A6B6C 0134 6D6E6F70 0138 71727374 013C 75767761 A51 MACRO ASSEMBLER MAIN 09/08/2007 18:26:52 PAGE 2 0140 62636465 0144 66676869 46 end A51 MACRO ASSEMBLER MAIN 09/08/2007 18:26:52 PAGE 3 SYMBOL TABLE LISTING ------ ----- ------- N A M E T Y P E V A L U E ATTRIBUTES CHECKAGAIN . . . . C ADDR 000AH A HALT . . . . . . . C ADDR 0020H A HEX. . . . . . . . C ADDR 0100H A HEXII. . . . . . . C ADDR 0120H A REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S) c.u commtel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.