diff --git a/doc/notebooks/tls/images/handshake_tls12.png b/doc/notebooks/tls/images/handshake_tls12.png
index ecfe61a1308..8fe969146d3 100644
Binary files a/doc/notebooks/tls/images/handshake_tls12.png and b/doc/notebooks/tls/images/handshake_tls12.png differ
diff --git a/doc/notebooks/tls/images/handshake_tls13.png b/doc/notebooks/tls/images/handshake_tls13.png
index 1feed39f4bb..4942935b98d 100644
Binary files a/doc/notebooks/tls/images/handshake_tls13.png and b/doc/notebooks/tls/images/handshake_tls13.png differ
diff --git a/doc/scapy/graphics/ATMT_HelloWorld.png b/doc/scapy/graphics/ATMT_HelloWorld.png
index e5b5ddb188a..f2ff01a7f93 100644
Binary files a/doc/scapy/graphics/ATMT_HelloWorld.png and b/doc/scapy/graphics/ATMT_HelloWorld.png differ
diff --git a/doc/scapy/graphics/ATMT_TCP_client.svg b/doc/scapy/graphics/ATMT_TCP_client.svg
index a89ca986940..a41593d3f36 100644
--- a/doc/scapy/graphics/ATMT_TCP_client.svg
+++ b/doc/scapy/graphics/ATMT_TCP_client.svg
@@ -1,132 +1 @@
-
-
-
-
-
+
\ No newline at end of file
diff --git a/doc/scapy/graphics/ATMT_TFTP_read.png b/doc/scapy/graphics/ATMT_TFTP_read.png
index 50621d976ac..3ce24d334ec 100644
Binary files a/doc/scapy/graphics/ATMT_TFTP_read.png and b/doc/scapy/graphics/ATMT_TFTP_read.png differ
diff --git a/doc/scapy/graphics/animations/animation-cansend.svg b/doc/scapy/graphics/animations/animation-cansend.svg
index 9277130c672..12e65f84220 100755
--- a/doc/scapy/graphics/animations/animation-cansend.svg
+++ b/doc/scapy/graphics/animations/animation-cansend.svg
@@ -1,44 +1 @@
-
+cars@scapy~/r/t/a/p/folders 2019>cars@scapy~/r/t/a/p/folders 2019>ssh titancars@scapy~/r/t/a/p/folders 2019>sudo openfortivpncars@scapy~/r/t/a/p/folders 2019>sudoopenfortivpncars@scapy~/r/t/a/p/folders 2019>sudoopenfortivpncars@scapy~/r/t/a/p/folders 2019>sudoopenfortivpncars@scapy~/r/t/a/p/folders 2019>sudomodprobe vcan; sudo ip link add name vcan0 type vcan; sudo ip link set dev vc…cars@scapy~/r/t/a/p/folders 2019>sudomodprobe vcan; sudo ip link add name vcan0 type vcan; sudo ip link set dev vc…0up[sudo] password for cars:cars@scapy~/r/t/a/p/folders 2019>termtosvg -c /usr/bin/fish -g "120x30" -M 500 -m 10cars@scapy~/r/t/a/p/folders 2019>tmuxcars@scapy~/r/t/a/p/folders 2019>tmuxcars@scapy~/r/t/a/p/folders 2019>tmuxWelcome to fish, the friendly interactive shellcars@scapy~/r/t/a/p/folders 2019>sudomodprobevcan;sudoiplinkaddnamevcan0typevcan;sudoiplinksetdevvcan0up[sudo] password for cars:cars@scapy~/r/t/a/p/folders 2019>tmux[0] 0:bash* "scapy " 09:39 21-Jan-19[cars@scapyfolders 2019]$[cars@scapyfolders 2019]$c[cars@scapyfolders 2019]$ca[cars@scapyfolders 2019]$can[cars@scapyfolders 2019]$cand[cars@scapyfolders 2019]$candu[cars@scapyfolders 2019]$candum[cars@scapyfolders 2019]$candump[cars@scapyfolders 2019]$candump[cars@scapyfolders 2019]$candump v[cars@scapyfolders 2019]$candump vc[cars@scapyfolders 2019]$candump vca[cars@scapyfolders 2019]$candump vcan[cars@scapyfolders 2019]$candump vcan0[cars@scapyfolders 2019]$candump vcan0[0] 0:bash* "cars@scapy :~/repos/t" 09:39 21-Jan-19[cars@scapyfolders 2019]$candump -[cars@scapyfolders 2019]$candump -a[cars@scapyfolders 2019]$candump -a[cars@scapyfolders 2019]$candump -a v[cars@scapyfolders 2019]$candump -a vc[cars@scapyfolders 2019]$candump -a vca[cars@scapyfolders 2019]$candump -a vcan[cars@scapyfolders 2019]$candump -a vcan0────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[cars@scapyfolders 2019]$candump -a vcan0[0] 0:candump* "cars@scapy :~/repos/t" 09:39 21-Jan-19[cars@scapyfolders 2019]$candump -L[cars@scapyfolders 2019]$candump -L[cars@scapyfolders 2019]$candump -L v[cars@scapyfolders 2019]$candump -L vc[cars@scapyfolders 2019]$candump -L vca[cars@scapyfolders 2019]$candump -L vcan[cars@scapyfolders 2019]$candump -L vcan0────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────[cars@scapyfolders 2019]$candump -L vcan0[cars@scapyfolders 2019]$cang[cars@scapyfolders 2019]$cange[cars@scapyfolders 2019]$cangen[cars@scapyfolders 2019]$cangen[cars@scapyfolders 2019]$cangen v[cars@scapyfolders 2019]$cangen vc[cars@scapyfolders 2019]$cangen vca[cars@scapyfolders 2019]$cangen vcan[cars@scapyfolders 2019]$cangen vcan0vcan0 58F [4] ED E9 D8 25vcan0 4A2 [5] AB 5C AA 63 3Evcan0 206 [2] 1C 74vcan0 26F [8] 3C 06 8B 1E 49 73 B8 6C[cars@scapyfolders 2019]$cangen vcan0vcan0 58F [4] ED E9 D8 25 '...%'vcan0 4A2 [5] AB 5C AA 63 3E '.\.c>'vcan0 206 [2] 1C 74 '.t'vcan0 26F [8] 3C 06 8B 1E 49 73 B8 6C '<...Is.l'(1548059987.478221) vcan0 58F#EDE9D825(1548059987.678335) vcan0 4A2#AB5CAA633E(1548059987.878505) vcan0 206#1C74(1548059988.078676) vcan0 26F#3C068B1E4973B86C[0] 0:cangen* "cars@scapy :~/repos/t" 09:39 21-Jan-19vcan0 779 [4] E8 65 86 4Cvcan0 779 [4] E8 65 86 4C '.e.L'(1548059988.278842) vcan0 779#E865864Cvcan0 24C [8] 6C 19 35 6B E4 A9 69 39vcan0 24C [8] 6C 19 35 6B E4 A9 69 39 'l.5k..i9'(1548059988.479027) vcan0 24C#6C19356BE4A96939vcan0 0CD [5] 86 39 7E 42 3Dvcan0 0CD [5] 86 39 7E 42 3D '.9~B='(1548059988.679199) vcan0 0CD#86397E423Dvcan0 1FC [8] 84 47 67 0C 8B 77 0D 09vcan0 1FC [8] 84 47 67 0C 8B 77 0D 09 '.Gg..w..'(1548059988.879360) vcan0 1FC#8447670C8B770D09vcan0 38C [2] 75 D3vcan0 38C [2] 75 D3 'u.'(1548059989.079673) vcan0 38C#75D3vcan0 557 [1] 6Dvcan0 557 [1] 6D 'm'(1548059989.279988) vcan0 557#6Dvcan0 653 [8] BD 97 CF 0D C2 90 5A 4Fvcan0 653 [8] BD 97 CF 0D C2 90 5A 4F '......ZO'(1548059989.480236) vcan0 653#BD97CF0DC2905A4Fvcan0 7B6 [8] 0C 04 13 3C 2F 67 82 0Dvcan0 7B6 [8] 0C 04 13 3C 2F 67 82 0D '...</g..'(1548059989.680567) vcan0 7B6#0C04133C2F67820Dvcan0 13D [4] 7F AA A7 2Avcan0 13D [4] 7F AA A7 2A '...*'(1548059989.880720) vcan0 13D#7FAAA72Avcan0 383 [8] 6D 35 DC 3A 50 5C 3B 68vcan0 383 [8] 6D 35 DC 3A 50 5C 3B 68 'm5.:P\;h'(1548059990.081007) vcan0 383#6D35DC3A505C3B68vcan0 3C0 [3] 8D 70 BEvcan0 3C0 [3] 8D 70 BE '.p.'(1548059990.281337) vcan0 3C0#8D70BEvcan0 18B [2] 48 CDvcan0 18B [2] 48 CD 'H.'(1548059990.481540) vcan0 18B#48CDvcan0 184 [8] 46 95 8E 7A DB 46 4B 75vcan0 184 [8] 46 95 8E 7A DB 46 4B 75 'F..z.FKu'(1548059990.681664) vcan0 184#46958E7ADB464B75vcan0 0DF [3] 39 9E 2Evcan0 0DF [3] 39 9E 2E '9..'(1548059990.881803) vcan0 0DF#399E2E^C^C[cars@scapyfolders 2019]$^C[cars@scapyfolders 2019]$c^C[cars@scapyfolders 2019]$ca^C[cars@scapyfolders 2019]$can^C[cars@scapyfolders 2019]$cans^C[cars@scapyfolders 2019]$canse^C[cars@scapyfolders 2019]$cansen^C[cars@scapyfolders 2019]$cansend^C[cars@scapyfolders 2019]$cansend^C[cars@scapyfolders 2019]$cansend v^C[cars@scapyfolders 2019]$cansend vc^C[cars@scapyfolders 2019]$cansend vca^C[cars@scapyfolders 2019]$cansend vcan^C[cars@scapyfolders 2019]$cansend vcan0^C[cars@scapyfolders 2019]$cansend vcan0^C[cars@scapyfolders 2019]$cansend vcan0 1^C[cars@scapyfolders 2019]$cansend vcan0 12^C[cars@scapyfolders 2019]$cansend vcan0 123^C[cars@scapyfolders 2019]$cansend vcan0 123@^C[cars@scapyfolders 2019]$cansend vcan0 123@d^C[cars@scapyfolders 2019]$cansend vcan0 123@de^C[cars@scapyfolders 2019]$cansend vcan0 123@dea^C[cars@scapyfolders 2019]$cansend vcan0 123$^C[cars@scapyfolders 2019]$cansend vcan0 123$d^C[cars@scapyfolders 2019]$cansend vcan0 123#^C[cars@scapyfolders 2019]$cansend vcan0 123#d^C[cars@scapyfolders 2019]$cansend vcan0 123#de^C[cars@scapyfolders 2019]$cansend vcan0 123#dea^C[cars@scapyfolders 2019]$cansend vcan0 123#dead^C[cars@scapyfolders 2019]$cansend vcan0 123#deadb^C[cars@scapyfolders 2019]$cansend vcan0 123#deadbe^C[cars@scapyfolders 2019]$cansend vcan0 123#deadbeevcan0 23C [6] F4 77 B7 6E F3 19^C[cars@scapyfolders 2019]$cansend vcan0 123#deadbeefvcan0 23C [6] F4 77 B7 6E F3 19 '.w.n..'(1548059991.082004) vcan0 23C#F477B76EF319vcan0 123 [4] DE AD BE EF^C[cars@scapyfolders 2019]$cansend vcan0 123#deadbeef[cars@scapyfolders 2019]$cansend vcan0 123#deadbeefvcan0 123 [4] DE AD BE EF '....'(1548060003.712821) vcan0 123#DEADBEEF[0] 0:bash* "cars@scapy :~/repos/t" 09:40 21-Jan-19[cars@scapyfolders 2019]$cansend vcan0 123#deadbeef(1548060005.255953) vcan0 123#DEADBEEF(1548060005.695813) vcan0 123#DEADBEEF(1548060006.216188) vcan0 123#DEADBEEFcars@scapy~/r/t/a/p/folders 2019>exitcars@scapy~/r/t/a/p/folders 2019>exitcars@scapy~/r/t/a/p/folders 2019>exitcars@scapy~/r/t/a/p/folders 2019>exit[detached (from session 0)]cars@scapy~/r/t/a/p/folders 2019>exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-rdcandump.svg b/doc/scapy/graphics/animations/animation-rdcandump.svg
index 32c470b7bd0..5b44b7ece5b 100755
--- a/doc/scapy/graphics/animations/animation-rdcandump.svg
+++ b/doc/scapy/graphics/animations/animation-rdcandump.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- cars@scapy ~> cars@scapy ~> c cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> cat candump-2019-01-19_144546.log cars@scapy ~> s cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy >>> >>> l >>> lo >>> loa >>> load >>> load I-search backward: >>> load_layer("can") I-search backward: _ >>> r >>> rd >>> rdc >>> rdca >>> rdcan Welcome to fish, the friendly interactive shellcars@scapy ~> cat candump-2019-01-19_144546.log (1547905546.680570) vcan0 641#DEADBEEF(1547905547.689301) vcan0 641#DEADBEEF(1547905548.699725) vcan0 641#DEADBEEF(1547905549.710648) vcan0 641#DEADBEEF(1547905550.719535) vcan0 641#DEADBEEFcars@scapy ~> scapy INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft packets like I craft my beer. scccccp///pSP///p p//Y | -- Jean De Clerck sY/////////y caa S//P | cayCyayP//Ya pY/Ya sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> load_layer("can") rdcandump >>> rdcandump >>> rdcandump( >>> rdcandump(" >>> rdcandump("c >>> rdcandump("ca >>> rdcandump("can candump-2019-01-19_144546.log >>> rdcandump("candump-2019-01-19_144546.log >>> rdcandump("candump-2019-01-19_144546.log" >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> rdcandump("candump-2019-01-19_144546.log") >>> prdcandump("candump-2019-01-19_144546.log") >>> pkrdcandump("candump-2019-01-19_144546.log") >>> pktrdcandump("candump-2019-01-19_144546.log") >>> pktsrdcandump("candump-2019-01-19_144546.log") >>> pkts rdcandump("candump-2019-01-19_144546.log") >>> pkts =rdcandump("candump-2019-01-19_144546.log") >>> pkts = rdcandump("candump-2019-01-19_144546.log") >>> p >>> pk >>> pkt >>> pkts >>> pkts = rdcandump("candump-2019-01-19_144546.log") >>> pkts >>> pkt >>> pkt = >>> pkt = >>> pkt = p >>> pkt = pk >>> pkt = pkt >>> pkt = pkts >>> pkt = pkts- >>> pkt = pkts[ >>> pkt = pkts[0 >>> pkt = pkts[0] [<CAN identifier=0x641 length=4 data='\xde\xad\xbe\xef' |>, <CAN identifier=0x641 length=4 data='\xde\xad\xbe\xef' |>, <CAN identifier=0x641 length=4 data='\xde\xad\xbe\xef' |>, <CAN identifier=0x641 length=4 data='\xde\xad\xbe\xef' |>]>>> pkt. >>> pkt.c >>> pkt.co >>> pkt.com >>> pkt = pkts[0] pkt.command >>> pkt.command >>> pkt.command( >>> pkt.command() >>> e >>> ex >>> exi >>> exit >>> pkt.command() "CAN(identifier=1601, data=b'\\xde\\xad\\xbe\\xef', length=4)" >>> exit cars@scapy ~>
-
\ No newline at end of file
+cars@scapy~>cars@scapy~> ccars@scapy~>cat candump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~>catcandump-2019-01-19_144546.logcars@scapy~> scars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapy>>>>>>l>>>lo>>>loa>>>load>>>loadI-search backward:>>>load_layer("can")I-search backward:_>>>r>>>rd>>>rdc>>>rdca>>>rdcanWelcome to fish, the friendly interactive shellcars@scapy~>catcandump-2019-01-19_144546.log(1547905546.680570) vcan0 641#DEADBEEF(1547905547.689301) vcan0 641#DEADBEEF(1547905548.699725) vcan0 641#DEADBEEF(1547905549.710648) vcan0 641#DEADBEEF(1547905550.719535) vcan0 641#DEADBEEFcars@scapy~>scapyINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft packets like I craft my beer.scccccp///pSP///p p//Y| -- Jean De ClercksY/////////y caa S//P|cayCyayP//Ya pY/YasY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>load_layer("can")rdcandump>>>rdcandump>>>rdcandump(>>>rdcandump(">>>rdcandump("c>>>rdcandump("ca>>>rdcandump("cancandump-2019-01-19_144546.log>>>rdcandump("candump-2019-01-19_144546.log>>>rdcandump("candump-2019-01-19_144546.log">>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>rdcandump("candump-2019-01-19_144546.log")>>>prdcandump("candump-2019-01-19_144546.log")>>>pkrdcandump("candump-2019-01-19_144546.log")>>>pktrdcandump("candump-2019-01-19_144546.log")>>>pktsrdcandump("candump-2019-01-19_144546.log")>>>pktsrdcandump("candump-2019-01-19_144546.log")>>>pkts =rdcandump("candump-2019-01-19_144546.log")>>>pkts =rdcandump("candump-2019-01-19_144546.log")>>>p>>>pk>>>pkt>>>pkts>>>pkts = rdcandump("candump-2019-01-19_144546.log")>>>pkts>>>pkt>>>pkt =>>>pkt =>>>pkt = p>>>pkt = pk>>>pkt = pkt>>>pkt = pkts>>>pkt = pkts->>>pkt = pkts[>>>pkt = pkts[0>>>pkt = pkts[0][<CANidentifier=0x641length=4data='\xde\xad\xbe\xef'|>,<CANidentifier=0x641length=4data='\xde\xad\xbe\xef'|>,<CANidentifier=0x641length=4data='\xde\xad\xbe\xef'|>,<CANidentifier=0x641length=4data='\xde\xad\xbe\xef'|>]>>>pkt.>>>pkt.c>>>pkt.co>>>pkt.com>>>pkt = pkts[0]pkt.command>>>pkt.command>>>pkt.command(>>>pkt.command()>>>e>>>ex>>>exi>>>exit>>>pkt.command()"CAN(identifier=1601, data=b'\\xde\\xad\\xbe\\xef', length=4)">>>exitcars@scapy~>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-asyncsniffer.svg b/doc/scapy/graphics/animations/animation-scapy-asyncsniffer.svg
index a9418622584..9bf5eca49f0 100644
--- a/doc/scapy/graphics/animations/animation-scapy-asyncsniffer.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-asyncsniffer.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- WARNING: No route found for IPv6 destination :: (no default route?) aSPY//YASa ayp ayyyyyyySCP//Pp syY//C | Version 2.4.3rc1.dev162 >>> >>> >>> t >>> t >>> t = >>> t = >>> t = AsyncSniffer() >>> t. >>> t.s >>> t.st >>> t.sta >>> t.star >>> t.start >>> t.start( >>> t.start() >>> p >>> pr >>> pri >>> prin >>> print >>> print( >>> print(" >>> print("h >>> print("he >>> print("hey >>> print("hey" >>> print("hey") hey >>> t.sto >>> t.stop >>> t.stop( >>> t.stop() INFO: Can't import matplotlib. Won't be able to plot.WARNING: No route found for IPv6 destination :: (no default route?) aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.3rc1.dev162 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft me if you can. scccccp///pSP///p p//Y | -- IPv6 layer sY/////////y caa S//P | cayCyayP//Ya pY/Ya sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.2.0>>> t = AsyncSniffer() >>> t.start() >>> print("hey") hey >>> t.stop() <Sniffed: TCP:199 UDP:268 ICMP:1 Other:73> >>>
-
\ No newline at end of file
+WARNING: No route found for IPv6 destination :: (no default route?)aSPY//YASaayp ayyyyyyySCP//Pp syY//C| Version 2.4.3rc1.dev162>>>>>>>>> t>>> t>>> t =>>> t =>>> t = AsyncSniffer()>>> t.>>> t.s>>> t.st>>> t.sta>>> t.star>>> t.start>>> t.start(>>> t.start()>>> p>>> pr>>> pri>>> prin>>>print>>>print(>>>print(">>>print("h>>>print("he>>>print("hey>>>print("hey">>>print("hey")hey>>> t.sto>>> t.stop>>> t.stop(>>> t.stop()INFO: Can't import matplotlib. Won't be able to plot.WARNING: No route found for IPv6 destination :: (no default route?)aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.3rc1.dev162AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft me if you can.scccccp///pSP///p p//Y| -- IPv6 layersY/////////y caa S//P|cayCyayP//Ya pY/YasY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.2.0>>> t = AsyncSniffer()>>> t.start()>>>print("hey")hey>>> t.stop()<Sniffed:TCP:199UDP:268ICMP:1Other:73>>>>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-can.svg b/doc/scapy/graphics/animations/animation-scapy-can.svg
index 3de8e731bd1..a19ec170da8 100755
--- a/doc/scapy/graphics/animations/animation-scapy-can.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-can.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- cars@scapy ~> cars@scapy ~> s cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy cars@scapy ~> scapy >>> >>> I-search backward: >>> load_layer("can") I-search backward: l >>> load_layer("can") I-search backward: lo >>> load_layer("can") I-search backward: loa >>> load_layer("can") >>> load_layer("can") I-search backward: load >>> load_layer("can") I-search backward: load_ >>> load_contrib("cansocket") I-search backward: load_c >>> load_contrib("cansocket") I-search backward: load_co >>> load_contrib("cansocket") >>> s >>> s >>> s = >>> s = >>> s = C >>> s = CA >>> s = CAN >>> s = CANS >>> s = CANSo >>> s = CANSoc >>> s = CANSock >>> s = CANSocke >>> s = CANSocket >>> s = CANSocket( >>> s = CANSocket(" >>> s = CANSocket("v >>> s = CANSocket("vc >>> s = CANSocket("vca >>> s = CANSocket("vcan >>> s = CANSocket("vcan0 >>> s = CANSocket("vcan0" >>> s = CANSocket("vcan0") >>> p >>> pk >>> pkt >>> pkt >>> pkt = >>> pkt = >>> pkt = s >>> pkt = s. >>> pkt = s.r >>> pkt = s.re >>> pkt = s.rec >>> pkt = s.recv >>> pkt = s.recv( >>> pkt = s.recv() >>> pkt. >>> pkt.s >>> pkt.sh >>> pkt.sho >>> pkt.show >>> pkt.show( >>> pkt.show() Welcome to fish, the friendly interactive shellcars@scapy ~> scapy INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | We are in France, we say Skappee. scccccp///pSP///p p//Y | OK? Merci. sY/////////y caa S//P | -- Sebastien Chabal cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> load_layer("can") >>> load_contrib("cansocket") INFO: Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can. INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can. >>> s = CANSocket("vcan0") >>> pkt = s.recv() >>> pkt.show() ###[ CAN ]### flags= identifier= 0x641 length= 4 reserved= 0 data= '\xde\xad\xbe\xef'>>> pkt >>> b >>> by >>> byt >>> byte >>> bytes >>> bytes( >>> bytes(p >>> bytes(pk >>> bytes(pkt >>> bytes(pkt) <CAN flags= identifier=0x641 length=4 reserved=0 data='\xde\xad\xbe\xef' |> >>> bytes(pkt) >>> pkts >>> pkts >>> pkts = >>> pkts = >>> pkts = s >>> pkts = s. >>> pkts = s.s >>> pkts = s.sn >>> pkts = s.sni >>> pkts = s.snif >>> pkts = s.sniff >>> pkts = s.sniff( >>> pkts = s.sniff(" >>> pkts = s.sniff(t >>> pkts = s.sniff(ti >>> pkts = s.sniff(tim >>> pkts = s.sniff(time >>> pkts = s.sniff(timeo >>> pkts = s.sniff(timeou >>> pkts = s.sniff(timeout >>> pkts = s.sniff(timeout= >>> pkts = s.sniff(timeout=2 >>> pkts = s.sniff(timeout=2, >>> pkts = s.sniff(timeout=2, >>> pkts = s.sniff(timeout=2, c >>> pkts = s.sniff(timeout=2, co >>> pkts = s.sniff(timeout=2, cou >>> pkts = s.sniff(timeout=2, coun >>> pkts = s.sniff(timeout=2, count >>> pkts = s.sniff(timeout=2, count= >>> pkts = s.sniff(timeout=2, count=1 >>> pkts = s.sniff(timeout=2, count=2 >>> pkts = s.sniff(timeout=2, count=20 >>> pkts = s.sniff(timeout=2, count=20) b'\x00\x00\x06A\x04\x00\x00\x00\xde\xad\xbe\xef' >>> pkts = s.sniff(timeout=2, count=20) >>> pkts >>> f >>> fo >>> for >>> for >>> for p >>> for p >>> for p i >>> for p in >>> for p in >>> for p in p >>> for p in pk >>> for p in pkt >>> for p in pkts >>> for p in pkts: <Sniffed: TCP:0 UDP:0 ICMP:0 Other:20> ...: ...: p ...: pr ...: pri ...: prin ...: print ...: print( ...: print(p ...: print(p. ...: print(p._ ...: print(p.__ ...: print(p.__r ...: print(p.__re ...: print(p.__rep ...: print(p.__repr ...: print(p.__repr_ ...: print(p.__repr__ ...: print(p.__repr__( ...: print(p.__repr__() ...: print(p.__repr__()) >>> for p in pkts: ...: print(p.__repr__()) ...: <CAN flags= identifier=0x641 length=4 reserved=0 data='\xde\xad\xbe\xef' |><CAN flags <CAN flags= identifier= <CAN flags= identifier=0x641 length= <CAN flags= identifier=0x641 length=4 reserved=0 >>> pkt.d >>> pkt.da >>> pkt.dat >>> pkt.data >>> pkt.data >>> pkt.data = >>> pkt.data = >>> pkt.data = b >>> pkt.data = b" >>> pkt.data = b"H >>> pkt.data = b"HE >>> pkt.data = b"HEL >>> pkt.data = b"HELL >>> pkt.data = b"HELLo >>> pkt.data = b"HELLo" >>> pkt.i >>> pkt.id >>> pkt.ide >>> pkt.iden >>> pkt.ident >>> pkt.identi >>> pkt.identif >>> pkt.identifi >>> pkt.identifie >>> pkt.identifier >>> pkt.identifier= >>> pkt.identifier=0 >>> pkt.identifier=0x >>> pkt.identifier=0x2 >>> pkt.identifier=0x24 >>> pkt.identifier=0x241 >>> pkt.data = b"HELLo" >>> pkt.identifier=0x241 >>> s. >>> s.s >>> s.se >>> s.sen >>> s.send >>> s.send( >>> s.send(p >>> s.send(pk >>> s.send(pkt >>> s.send(pkt) <CAN flags= identifier=0x241 length=4 reserved=0 data='HELLo' |> >>> s.send(pkt) >>> pkts = sr >>> pkts = ss >>> pkts = s.sr >>> pkts = s.sr1 >>> pkts = s.sr1( >>> pkts = s.sr1(p >>> pkts = s.sr1(pk >>> pkts = s.sr1(pkt >>> pkts = s.sr1(pkt) 16 >>> pkts = s.sr1(pkt) Begin emission: >>> sr *Finished sending 1 packets.Received 1 packets, got 1 answers, remaining 0 packets sr srbt srflood srp1 srploop sr1 srbt1 srloop srp1flood sr1flood srcan srp srpflood cars@scapy ~> e cars@scapy ~> exit cars@scapy ~> exit cars@scapy ~> exit cars@scapy ~> exit cars@scapy ~> exit cars@scapy ~> exit cars@scapy ~> exit >>> cars@scapy ~> exit
-
\ No newline at end of file
+cars@scapy~>cars@scapy~> scars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapycars@scapy~>scapy>>>>>>I-search backward:>>>load_layer("can")I-search backward:l>>>load_layer("can")I-search backward:lo>>>load_layer("can")I-search backward:loa>>>load_layer("can")>>>load_layer("can")I-search backward:load>>>load_layer("can")I-search backward:load_>>>load_contrib("cansocket")I-search backward:load_c>>>load_contrib("cansocket")I-search backward:load_co>>>load_contrib("cansocket")>>>s>>>s>>>s =>>>s =>>>s = C>>>s = CA>>>s = CAN>>>s = CANS>>>s = CANSo>>>s = CANSoc>>>s = CANSock>>>s = CANSocke>>>s = CANSocket>>>s = CANSocket(>>>s = CANSocket(">>>s = CANSocket("v>>>s = CANSocket("vc>>>s = CANSocket("vca>>>s = CANSocket("vcan>>>s = CANSocket("vcan0>>>s = CANSocket("vcan0">>>s = CANSocket("vcan0")>>>p>>>pk>>>pkt>>>pkt>>>pkt =>>>pkt =>>>pkt = s>>>pkt = s.>>>pkt = s.r>>>pkt = s.re>>>pkt = s.rec>>>pkt = s.recv>>>pkt = s.recv(>>>pkt = s.recv()>>>pkt.>>>pkt.s>>>pkt.sh>>>pkt.sho>>>pkt.show>>>pkt.show(>>>pkt.show()Welcome to fish, the friendly interactive shellcars@scapy~>scapyINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| We are in France, we say Skappee.scccccp///pSP///p p//Y| OK? Merci.sY/////////y caa S//P| -- Sebastien ChabalcayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>load_layer("can")>>>load_contrib("cansocket")INFO: Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can.INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can.>>>s = CANSocket("vcan0")>>>pkt = s.recv()>>>pkt.show()###[CAN]###flags=identifier=0x641length=4reserved=0data='\xde\xad\xbe\xef'>>>pkt>>>b>>>by>>>byt>>>byte>>>bytes>>>bytes(>>>bytes(p>>>bytes(pk>>>bytes(pkt>>>bytes(pkt)<CANflags=identifier=0x641length=4reserved=0data='\xde\xad\xbe\xef'|>>>>bytes(pkt)>>>pkts>>>pkts>>>pkts =>>>pkts =>>>pkts = s>>>pkts = s.>>>pkts = s.s>>>pkts = s.sn>>>pkts = s.sni>>>pkts = s.snif>>>pkts = s.sniff>>>pkts = s.sniff(>>>pkts = s.sniff(">>>pkts = s.sniff(t>>>pkts = s.sniff(ti>>>pkts = s.sniff(tim>>>pkts = s.sniff(time>>>pkts = s.sniff(timeo>>>pkts = s.sniff(timeou>>>pkts = s.sniff(timeout>>>pkts = s.sniff(timeout=>>>pkts = s.sniff(timeout=2>>>pkts = s.sniff(timeout=2,>>>pkts = s.sniff(timeout=2,>>>pkts = s.sniff(timeout=2, c>>>pkts = s.sniff(timeout=2, co>>>pkts = s.sniff(timeout=2, cou>>>pkts = s.sniff(timeout=2, coun>>>pkts = s.sniff(timeout=2, count>>>pkts = s.sniff(timeout=2, count=>>>pkts = s.sniff(timeout=2, count=1>>>pkts = s.sniff(timeout=2, count=2>>>pkts = s.sniff(timeout=2, count=20>>>pkts = s.sniff(timeout=2, count=20)b'\x00\x00\x06A\x04\x00\x00\x00\xde\xad\xbe\xef'>>>pkts = s.sniff(timeout=2, count=20)>>>pkts>>>f>>>fo>>>for>>>for>>>forp>>>forp>>>forp i>>>forpin>>>forpin>>>forpinp>>>forpinpk>>>forpinpkt>>>forpinpkts>>>forpinpkts:<Sniffed:TCP:0UDP:0ICMP:0Other:20>...:...:p...:pr...:pri...:prin...:print...:print(...:print(p...:print(p....:print(p._...:print(p.__...:print(p.__r...:print(p.__re...:print(p.__rep...:print(p.__repr...:print(p.__repr_...:print(p.__repr__...:print(p.__repr__(...:print(p.__repr__()...:print(p.__repr__())>>>forpinpkts:...:print(p.__repr__())...:<CANflags=identifier=0x641length=4reserved=0data='\xde\xad\xbe\xef'|><CANflags<CANflags=identifier=<CANflags=identifier=0x641length=<CANflags=identifier=0x641length=4reserved=0>>>pkt.d>>>pkt.da>>>pkt.dat>>>pkt.data>>>pkt.data>>>pkt.data =>>>pkt.data =>>>pkt.data = b>>>pkt.data =b">>>pkt.data =b"H>>>pkt.data =b"HE>>>pkt.data =b"HEL>>>pkt.data =b"HELL>>>pkt.data =b"HELLo>>>pkt.data =b"HELLo">>>pkt.i>>>pkt.id>>>pkt.ide>>>pkt.iden>>>pkt.ident>>>pkt.identi>>>pkt.identif>>>pkt.identifi>>>pkt.identifie>>>pkt.identifier>>>pkt.identifier=>>>pkt.identifier=0>>>pkt.identifier=0x>>>pkt.identifier=0x2>>>pkt.identifier=0x24>>>pkt.identifier=0x241>>>pkt.data =b"HELLo">>>pkt.identifier=0x241>>>s.>>>s.s>>>s.se>>>s.sen>>>s.send>>>s.send(>>>s.send(p>>>s.send(pk>>>s.send(pkt>>>s.send(pkt)<CANflags=identifier=0x241length=4reserved=0data='HELLo'|>>>>s.send(pkt)>>>pkts = sr>>>pkts = ss>>>pkts = s.sr>>>pkts = s.sr1>>>pkts = s.sr1(>>>pkts = s.sr1(p>>>pkts = s.sr1(pk>>>pkts = s.sr1(pkt>>>pkts = s.sr1(pkt)16>>>pkts = s.sr1(pkt)Begin emission:>>>sr*Finished sending 1 packets.Received 1 packets, got 1 answers, remaining 0 packetssr srbt srflood srp1 srploopsr1 srbt1 srloop srp1floodsr1flood srcan srp srpfloodcars@scapy~> ecars@scapy~>exitcars@scapy~>exitcars@scapy~>exitcars@scapy~>exitcars@scapy~>exitcars@scapy~>exitcars@scapy~>exit>>>cars@scapy~>exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-canframe.svg b/doc/scapy/graphics/animations/animation-scapy-canframe.svg
index af8199bae41..1641e752390 100755
--- a/doc/scapy/graphics/animations/animation-scapy-canframe.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-canframe.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> pkt=CAN(identifier=0x1234567, flags="extended", data=b"\x12HELLO") I-search backward: l >>> load_layer("can") I-search backward: lo >>> load_layer("can") I-search backward: loa >>> load_layer("can") I-search backward: load >>> load_layer("can") >>> pkt.show2() I-search backward: p >>> pkt.show2() I-search backward: pk >>> pkt.show2() I-search backward: pkt >>> pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel") I-search backward: pkt I-search backward: pkt = >>> pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel") >>> pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel") >>> p >>> pk >>> pkt >>> pkt. >>> pkt.s >>> pkt.sh >>> pkt.sho >>> pkt.show >>> pkt.show2 >>> pkt.show2( INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft packets like I craft my beer. scccccp///pSP///p p//Y | -- Jean De Clerck sY/////////y caa S//P | cayCyayP//Ya pY/Ya sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> load_layer("can") >>> pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel") >>> pkt.show2() >>> h >>> he >>> hex >>> hexd >>> hexdu >>> hexdum >>> hexdump >>> hexdump( >>> hexdump(p >>> hexdump(pk >>> hexdump(pkt >>> pkt.show2() ###[ CAN ]### flags= identifier= 0x123 length= 6 reserved= 0 data= '\x124Uhel'>>> hexdump(pkt) >>> pkt >>> pkt = >>> pkt = >>> pkt = C >>> pkt = CA >>> pkt = CAN >>> pkt = CAN( >>> pkt = CAN(i >>> pkt = CAN(id >>> pkt = CAN(ide >>> pkt = CAN(iden >>> pkt = CAN(ident >>> pkt = CAN(identi >>> pkt = CAN(identif >>> pkt = CAN(identifi >>> pkt = CAN(identifie >>> pkt = CAN(identifier >>> pkt = CAN(identifier= >>> pkt = CAN(identifier=0 >>> pkt = CAN(identifier=0x >>> pkt = CAN(identifier=0x1 >>> pkt = CAN(identifier=0x12 >>> pkt = CAN(identifier=0x123 >>> pkt = CAN(identifier=0x1234 >>> pkt = CAN(identifier=0x12345 >>> pkt = CAN(identifier=0x123456 >>> pkt = CAN(identifier=0x1234567 >>> pkt = CAN(identifier=0x1234567, >>> pkt = CAN(identifier=0x1234567, >>> pkt = CAN(identifier=0x1234567, f >>> pkt = CAN(identifier=0x1234567, fl >>> pkt = CAN(identifier=0x1234567, fla >>> pkt = CAN(identifier=0x1234567, flag >>> pkt = CAN(identifier=0x1234567, flags >>> pkt = CAN(identifier=0x1234567, flags= >>> pkt = CAN(identifier=0x1234567, flags=" >>> pkt = CAN(identifier=0x1234567, flags="e >>> pkt = CAN(identifier=0x1234567, flags="ex >>> pkt = CAN(identifier=0x1234567, flags="ext >>> pkt = CAN(identifier=0x1234567, flags="exte >>> pkt = CAN(identifier=0x1234567, flags="exten >>> pkt = CAN(identifier=0x1234567, flags="extend >>> pkt = CAN(identifier=0x1234567, flags="extende >>> pkt = CAN(identifier=0x1234567, flags="extended >>> pkt = CAN(identifier=0x1234567, flags="extended" >>> pkt = CAN(identifier=0x1234567, flags="extended", >>> pkt = CAN(identifier=0x1234567, flags="extended", >>> pkt = CAN(identifier=0x1234567, flags="extended", d >>> pkt = CAN(identifier=0x1234567, flags="extended", da >>> pkt = CAN(identifier=0x1234567, flags="extended", dat >>> pkt = CAN(identifier=0x1234567, flags="extended", data >>> pkt = CAN(identifier=0x1234567, flags="extended", data= >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b" >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"H >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HE >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HEL >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELL >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO" >>> hexdump(pkt) 0000 00 00 01 23 06 00 00 00 12 34 55 68 65 6C ...#.....4Uhel >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO") >>> pkt.show( >>> pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO") >>> pkt.show() >>> pkt.show() flags= extended identifier= 0x1234567 length= None data= 'HELLO' length= 5 hexdump 0000 81 23 45 67 05 00 00 00 48 45 4C 4C 4F .#Eg....HELLO >>>
-
\ No newline at end of file
+>>>>>>I-search backward:>>>pkt=CAN(identifier=0x1234567, flags="extended", data=b"\x12HELLO")I-search backward:l>>>load_layer("can")I-search backward:lo>>>load_layer("can")I-search backward:loa>>>load_layer("can")I-search backward:load>>>load_layer("can")>>>pkt.show2()I-search backward:p>>>pkt.show2()I-search backward:pk>>>pkt.show2()I-search backward:pkt>>>pkt= CAN(identifier=0x123, data=b"\x12\x34\x55hel")I-search backward:pktI-search backward:pkt =>>>pkt =CAN(identifier=0x123, data=b"\x12\x34\x55hel")>>>pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel")>>>p>>>pk>>>pkt>>>pkt.>>>pkt.s>>>pkt.sh>>>pkt.sho>>>pkt.show>>>pkt.show2>>>pkt.show2(INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft packets like I craft my beer.scccccp///pSP///p p//Y| -- Jean De ClercksY/////////y caa S//P|cayCyayP//Ya pY/YasY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>load_layer("can")>>>pkt = CAN(identifier=0x123, data=b"\x12\x34\x55hel")>>>pkt.show2()>>>h>>>he>>>hex>>>hexd>>>hexdu>>>hexdum>>>hexdump>>>hexdump(>>>hexdump(p>>>hexdump(pk>>>hexdump(pkt>>>pkt.show2()###[CAN]###flags=identifier=0x123length=6reserved=0data='\x124Uhel'>>>hexdump(pkt)>>>pkt>>>pkt =>>>pkt =>>>pkt = C>>>pkt = CA>>>pkt = CAN>>>pkt = CAN(>>>pkt = CAN(i>>>pkt = CAN(id>>>pkt = CAN(ide>>>pkt = CAN(iden>>>pkt = CAN(ident>>>pkt = CAN(identi>>>pkt = CAN(identif>>>pkt = CAN(identifi>>>pkt = CAN(identifie>>>pkt = CAN(identifier>>>pkt = CAN(identifier=>>>pkt = CAN(identifier=0>>>pkt = CAN(identifier=0x>>>pkt = CAN(identifier=0x1>>>pkt = CAN(identifier=0x12>>>pkt = CAN(identifier=0x123>>>pkt = CAN(identifier=0x1234>>>pkt = CAN(identifier=0x12345>>>pkt = CAN(identifier=0x123456>>>pkt = CAN(identifier=0x1234567>>>pkt = CAN(identifier=0x1234567,>>>pkt = CAN(identifier=0x1234567,>>>pkt = CAN(identifier=0x1234567, f>>>pkt = CAN(identifier=0x1234567, fl>>>pkt = CAN(identifier=0x1234567, fla>>>pkt = CAN(identifier=0x1234567, flag>>>pkt = CAN(identifier=0x1234567, flags>>>pkt = CAN(identifier=0x1234567, flags=>>>pkt = CAN(identifier=0x1234567, flags=">>>pkt = CAN(identifier=0x1234567, flags="e>>>pkt = CAN(identifier=0x1234567, flags="ex>>>pkt = CAN(identifier=0x1234567, flags="ext>>>pkt = CAN(identifier=0x1234567, flags="exte>>>pkt = CAN(identifier=0x1234567, flags="exten>>>pkt = CAN(identifier=0x1234567, flags="extend>>>pkt = CAN(identifier=0x1234567, flags="extende>>>pkt = CAN(identifier=0x1234567, flags="extended>>>pkt = CAN(identifier=0x1234567, flags="extended">>>pkt = CAN(identifier=0x1234567, flags="extended",>>>pkt = CAN(identifier=0x1234567, flags="extended",>>>pkt = CAN(identifier=0x1234567, flags="extended", d>>>pkt = CAN(identifier=0x1234567, flags="extended", da>>>pkt = CAN(identifier=0x1234567, flags="extended", dat>>>pkt = CAN(identifier=0x1234567, flags="extended", data>>>pkt = CAN(identifier=0x1234567, flags="extended", data=>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b">>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"H>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HE>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HEL>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELL>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO">>>hexdump(pkt)0000 00 00 01 23 06 00 00 00 12 34 55 68 65 6C...#.....4Uhel>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO")>>>pkt.show(>>>pkt = CAN(identifier=0x1234567, flags="extended", data=b"HELLO")>>>pkt.show()>>>pkt.show()flags=extendedidentifier=0x1234567length=Nonedata='HELLO'length=5hexdump0000 81 23 45 67 05 00 00 00 48 45 4C 4C 4F.#Eg....HELLO>>>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-demo.svg b/doc/scapy/graphics/animations/animation-scapy-demo.svg
index 7e7268f74c6..ca65ee0802d 100755
--- a/doc/scapy/graphics/animations/animation-scapy-demo.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-demo.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- demo@scapy:~/github/scapy# demo@scapy:~/github/scapy# s demo@scapy:~/github/scapy# su demo@scapy:~/github/scapy# sud demo@scapy:~/github/scapy# sudo demo@scapy:~/github/scapy# sudo demo@scapy:~/github/scapy# sudo . demo@scapy:~/github/scapy# sudo ./ demo@scapy:~/github/scapy# sudo ./r demo@scapy:~/github/scapy# sudo ./ru demo@scapy:~/github/scapy# sudo ./run_scapy WARNING: No route found for IPv6 destination :: (no default route?) e apyyyyCY//////////YCa | >>> >>> e >>> ex >>> exp >>> expl >>> explo >>> explor >>> explore >>> explore( >>> explore() demo@scapy:~/github/scapy# sudo ./run_scapyINFO: Can't import matplotlib. Won't be able to plot.WARNING: No route found for IPv6 destination :: (no default route?)e aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.2.dev228 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | We are in France, we say Skappee. scccccp///pSP///p p//Y | OK? Merci. sY/////////y caa S//P | -- Sebastien Chabal cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.2.0>>> explore() ┌────────────────────────| Scapy v2.4.2.dev228 |────────────────────────┐ │ │ │ Chose the type of packets you want to explore: │ │ < Layers > < Contribs > < Cancel > │ └───────────────────────────────────────────────────────────────────────┘ │ │ < Layers > < Contribs > < Cancel > │ │ │ │ │ │ ( ) IPv4 (Internet Protoco │ ( ) Bluetooth 4LE layer │ ( ) Wireless MAC according to IEEE 802.15.4. │ │ ( ) IrDA infrared data co │ ( ) LLMNR (Link Local Multicast Node Resolution). │ (*) Packet class. Binding mechanism. fuzz() method. ^ │ └─────────────────────────────────────────────── │ (*) Packet class. Binding mechanism. fuzz() method. ^ │ │ ( ) ASN.1 Packet │ │ ( ) ASN.1 Packet │ │ ( ) Bluetooth layers, sockets and send/receive functions. │ │ ( ) Bluetooth layers, sockets and send/receive functions. │ │ ( ) Classes and functions for layer 2 protocols. │ │ ( ) Classes and functions for layer 2 protocols. │ │ ( ) IPv4 (Internet Protocol v4). │ │ ( ) IPv4 (Internet Protocol v4). │ │ (*) IPv4 (Internet Protocol v4). │ │ < Ok > < Cancel > │ ┌───────────────────────────────────────────| Scapy v2.4.2.dev228 |────────────────────────────────────────────┐ │ Please select a layer among the following, to see all packets contained in it: │ │ ( ) IPv6 (Internet Protocol v6). │ │ ( ) Wireless LAN according to IEEE 802.11. │ │ ( ) Per-Packet Information (PPI) Protocol │ │ ( ) Bluetooth 4LE layer │ │ ( ) DHCP (Dynamic Host Configuration Protocol) and BOOTP │ │ ( ) DHCPv6: Dynamic Host Configuration Protocol for IPv6. [RFC 3315] │ │ ( ) DNS: Domain Name System. │ │ ( ) Extensible Authentication Protocol (EAP) │ │ ( ) GPRS (General Packet Radio Service) for mobile data communication. │ │ ( ) HSRP (Hot Standby Router Protocol): proprietary redundancy protocol for Cisco routers. # noqa: E501 │ │ ( ) IPsec layer │ │ ( ) IrDA infrared data communication. │ │ ( ) ISAKMP (Internet Security Association and Key Management Protocol). │ │ ( ) PPP (Point to Point Protocol) │ │ ( ) L2TP (Layer 2 Tunneling Protocol) for VPNs. │ │ ( ) LLMNR (Link Local Multicast Node Resolution). v │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ ( ) Packet class. Binding mechanism. fuzz() method. ^ │ │ (*) IPv4 (Internet Protocol v4). │ │ < Ok > < Cancel > │ │ ( ) ASN.1 Packet │ ( ) DHCPv6: Dynamic Host Configuration Protocol for IPv │ ( ) GPRS (General Packet Radio Service) for mobile data communication. │ < Ok > < Cancel > │ Packets contained in scapy.layers.inet: Class |Name--------------------------|------- --------------------------|-------------------------------------------ICMP |ICMPICMPerror |ICMP in ICMPIP |IPIPOption |IP OptionIPOption_Address_Extension|IP Option Address ExtensionIPOption_EOL |IP Option End of Options ListIPOption_LSRR |IP Option Loose Source and Record RouteIPOption_MTU_Probe |IP Option MTU ProbeIPOption_MTU_Reply |IP Option MTU ReplyIPOption_NOP |IP Option No OperationIPOption_RR |IP Option Record RouteIPOption_Router_Alert |IP Option Router AlertIPOption_SDBM |IP Option Selective Directed Broadcast ModeIPOption_SSRR |IP Option Strict Source and Record RouteIPOption_Security |IP Option SecurityIPOption_Stream_Id |IP Option Stream IDIPOption_Traceroute |IP Option TracerouteIPerror |IP in ICMPTCP |TCPTCPerror |TCP in ICMPUDP >>> l >>> ls >>> ls( >>> ls(I >>> ls(IP >>> ls(IP) UDP |UDPUDPerror |UDP in ICMP>>> ls(IP) >>> p >>> pk >>> pkt >>> pkt >>> pkt = >>> pkt = >>> pkt = I >>> pkt = IP >>> pkt = IP( >>> pkt = IP(d >>> pkt = IP(ds >>> pkt = IP(dst >>> pkt = IP(dst= >>> pkt = IP(dst=" >>> pkt = IP(dst="w >>> pkt = IP(dst="ww >>> pkt = IP(dst="www >>> pkt = IP(dst="www. >>> pkt = IP(dst="www.s >>> pkt = IP(dst="www.se >>> pkt = IP(dst="www.sec >>> pkt = IP(dst="www.secd >>> pkt = IP(dst="www.secde >>> pkt = IP(dst="www.secdev >>> pkt = IP(dst="www.secdev. >>> pkt = IP(dst="www.secdev.o >>> pkt = IP(dst="www.secdev.or >>> pkt = IP(dst="www.secdev.org >>> pkt = IP(dst="www.secdev.org" >>> pkt = IP(dst="www.secdev.org") >>> pkt = IP(dst="www.secdev.org")/ >>> pkt = IP(dst="www.secdev.org")/I >>> pkt = IP(dst="www.secdev.org")/IC >>> pkt = IP(dst="www.secdev.org")/ICM >>> pkt = IP(dst="www.secdev.org")/ICMP >>> pkt = IP(dst="www.secdev.org")/ICMP( version : BitField (4 bits) = (4) ihl : BitField (4 bits) = (None)tos : XByteField = (0)len : ShortField = (None)id : ShortField = (1)flags : FlagsField (3 bits) = (<Flag 0 ()>)frag : BitField (13 bits) = (0)ttl : ByteField = (64)proto : ByteEnumField = (0)chksum : XShortField = (None)src : SourceIPField = (None)dst : DestIPField = (None)options : PacketListField = ([])>>> pkt = IP(dst="www.secdev.org")/ICMP() >>> pkt. >>> pkt.s >>> pkt.sh >>> pkt.sho >>> pkt.show >>> pkt.show2 >>> pkt.show2( >>> pkt.show2() >>> pkt = IP(dst="www.secdev.org")/ICMP() >>> pkt.show2() >>> >>> s ###[ IP ]### version= 4 ihl= 5 tos= 0x0 len= 28 id= 1 flags= frag= 0 ttl= 64 proto= icmp chksum= 0x875a src= 212.83.148.19 dst= 217.25.178.5 \options\###[ ICMP ]### type= echo-request code= 0 chksum= 0xf7ff id= 0x0 seq= 0x0>>> sr >>> sr sr() sr1flood() srbt1() srloop() srp1() srpflood() sr1() srbt() srflood() srp() srp1flood() srploop() sr() sr1flood() srbt1() srloop() srp1() srpflood() >>> sr1 >>> sr1 function(x, promisc, filter, iface, nofilter, args, kargs) sr1() srbt() srflood() srp() srp1flood() srploop() >>> sr1( >>> sr1( >>> sr1(p >>> sr1(pk >>> sr1(pkt >>> sr1(pkt) .... ..... . >>> sr1(pkt) Begin emission: .....Finished sending 1 packets. .* Received 7 packets, got 1 answers, remaining 0 packets<IP version=4 ihl=5 tos=0x0 len=28 id=21006 flags= frag=0 ttl=60 proto=icmp chksum=0x394d src=217.25.178.5 dst=212.83.148.19 |<ICMP type=echo-reply code=0 chksum=0xffff id=0x0 seq=0x0 |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>> >>> _ >>> _. >>> _.s >>> _.sh >>> _.sho >>> _.show >>> _.show( x00\x00\x00\x00\x00\x00\x00\x00\x00' |>>>>>> _.show() >>> _.show() id= 21006 ttl= 60 chksum= 0x394d src= 217.25.178.5 dst= 212.83.148.19 type= echo-reply chksum= 0xffff###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'demo@scapy:~/github/scapy# >>> demo@scapy:~/github/scapy# exit demo@scapy:~/github/scapy# exit
-
\ No newline at end of file
+demo@scapy:~/github/scapy#demo@scapy:~/github/scapy# sdemo@scapy:~/github/scapy# sudemo@scapy:~/github/scapy# suddemo@scapy:~/github/scapy# sudodemo@scapy:~/github/scapy# sudodemo@scapy:~/github/scapy# sudo .demo@scapy:~/github/scapy# sudo ./demo@scapy:~/github/scapy# sudo ./rdemo@scapy:~/github/scapy# sudo ./rudemo@scapy:~/github/scapy# sudo ./run_scapyWARNING: No route found for IPv6 destination :: (no default route?)eapyyyyCY//////////YCa|>>>>>>e>>>ex>>>exp>>>expl>>>explo>>>explor>>>explore>>>explore(>>>explore()demo@scapy:~/github/scapy# sudo ./run_scapyINFO: Can't import matplotlib. Won't be able to plot.WARNING: No route found for IPv6 destination :: (no default route?)eaSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.2.dev228AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| We are in France, we say Skappee.scccccp///pSP///p p//Y| OK? Merci.sY/////////y caa S//P| -- Sebastien ChabalcayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.2.0>>>explore()┌────────────────────────|Scapy v2.4.2.dev228|────────────────────────┐│ ││Chose the type of packets you want to explore:││<Layers><Contribs><Cancel>│└───────────────────────────────────────────────────────────────────────┘││<Layers><Contribs><Cancel>││ ││ ││ ( ) IPv4 (Internet Protoco│ ( ) Bluetooth 4LE layer│ ( ) Wireless MAC according to IEEE 802.15.4. ││ ( ) IrDA infrared data co│ ( ) LLMNR (Link Local Multicast Node Resolution).│ (*) Packet class. Binding mechanism. fuzz() method.^│└───────────────────────────────────────────────│ (*) Packet class. Binding mechanism. fuzz() method.^││ ( ) ASN.1 Packet ││ () ASN.1 Packet ││ ( ) Bluetooth layers, sockets and send/receive functions. ││ () Bluetooth layers, sockets and send/receive functions. ││ ( ) Classes and functions for layer 2 protocols. ││ () Classes and functions for layer 2 protocols. ││ ( ) IPv4 (Internet Protocol v4). ││ () IPv4 (Internet Protocol v4). ││ (*) IPv4 (Internet Protocol v4). ││<Ok><Cancel>│┌───────────────────────────────────────────|Scapy v2.4.2.dev228|────────────────────────────────────────────┐│Please select a layer among the following, to see all packets contained in it:││ ( ) IPv6 (Internet Protocol v6). ││ ( ) Wireless LAN according to IEEE 802.11. ││ ( ) Per-Packet Information (PPI) Protocol ││ ( ) Bluetooth 4LE layer ││ ( ) DHCP (Dynamic Host Configuration Protocol) and BOOTP ││ ( ) DHCPv6: Dynamic Host Configuration Protocol for IPv6. [RFC 3315] ││ ( ) DNS: Domain Name System. ││ ( ) Extensible Authentication Protocol (EAP) ││ ( ) GPRS (General Packet Radio Service) for mobile data communication. ││ ( ) HSRP (Hot Standby Router Protocol): proprietary redundancy protocol for Cisco routers. # noqa: E501 ││ ( ) IPsec layer ││ ( ) IrDA infrared data communication. ││ ( ) ISAKMP (Internet Security Association and Key Management Protocol). ││ ( ) PPP (Point to Point Protocol) ││ ( ) L2TP (Layer 2 Tunneling Protocol) for VPNs. ││ ( ) LLMNR (Link Local Multicast Node Resolution).v│└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘│ ( ) Packet class. Binding mechanism. fuzz() method.^││ (*) IPv4 (Internet Protocol v4). ││<Ok><Cancel>││ ( ) ASN.1 Packet│ ( ) DHCPv6: Dynamic Host Configuration Protocol for IPv│ ( ) GPRS (General Packet Radio Service) for mobile data communication.│<Ok><Cancel>│Packets contained in scapy.layers.inet:Class |Name--------------------------|---------------------------------|-------------------------------------------ICMP |ICMPICMPerror |ICMP in ICMPIP |IPIPOption |IP OptionIPOption_Address_Extension|IP Option Address ExtensionIPOption_EOL |IP Option End of Options ListIPOption_LSRR |IP Option Loose Source and Record RouteIPOption_MTU_Probe |IP Option MTU ProbeIPOption_MTU_Reply |IP Option MTU ReplyIPOption_NOP |IP Option No OperationIPOption_RR |IP Option Record RouteIPOption_Router_Alert |IP Option Router AlertIPOption_SDBM |IP Option Selective Directed Broadcast ModeIPOption_SSRR |IP Option Strict Source and Record RouteIPOption_Security |IP Option SecurityIPOption_Stream_Id |IP Option Stream IDIPOption_Traceroute |IP Option TracerouteIPerror |IP in ICMPTCP |TCPTCPerror |TCP in ICMPUDP>>>l>>>ls>>>ls(>>>ls(I>>>ls(IP>>>ls(IP)UDP |UDPUDPerror |UDP in ICMP>>>ls(IP)>>>p>>>pk>>>pkt>>>pkt>>>pkt =>>>pkt =>>>pkt = I>>>pkt = IP>>>pkt = IP(>>>pkt = IP(d>>>pkt = IP(ds>>>pkt = IP(dst>>>pkt = IP(dst=>>>pkt = IP(dst=">>>pkt = IP(dst="w>>>pkt = IP(dst="ww>>>pkt = IP(dst="www>>>pkt = IP(dst="www.>>>pkt = IP(dst="www.s>>>pkt = IP(dst="www.se>>>pkt = IP(dst="www.sec>>>pkt = IP(dst="www.secd>>>pkt = IP(dst="www.secde>>>pkt = IP(dst="www.secdev>>>pkt = IP(dst="www.secdev.>>>pkt = IP(dst="www.secdev.o>>>pkt = IP(dst="www.secdev.or>>>pkt = IP(dst="www.secdev.org>>>pkt = IP(dst="www.secdev.org">>>pkt = IP(dst="www.secdev.org")>>>pkt = IP(dst="www.secdev.org")/>>>pkt = IP(dst="www.secdev.org")/I>>>pkt = IP(dst="www.secdev.org")/IC>>>pkt = IP(dst="www.secdev.org")/ICM>>>pkt = IP(dst="www.secdev.org")/ICMP>>>pkt = IP(dst="www.secdev.org")/ICMP(version : BitField (4 bits) = (4)ihl : BitField (4 bits) = (None)tos : XByteField = (0)len : ShortField = (None)id : ShortField = (1)flags : FlagsField (3 bits) = (<Flag 0 ()>)frag : BitField (13 bits) = (0)ttl : ByteField = (64)proto : ByteEnumField = (0)chksum : XShortField = (None)src : SourceIPField = (None)dst : DestIPField = (None)options : PacketListField = ([])>>>pkt = IP(dst="www.secdev.org")/ICMP()>>>pkt.>>>pkt.s>>>pkt.sh>>>pkt.sho>>>pkt.show>>>pkt.show2>>>pkt.show2(>>>pkt.show2()>>>pkt = IP(dst="www.secdev.org")/ICMP()>>>pkt.show2()>>>>>>s###[IP]###version=4ihl=5tos=0x0len=28id=1flags=frag=0ttl=64proto=icmpchksum=0x875asrc=212.83.148.19dst=217.25.178.5\options\###[ICMP]###type=echo-requestcode=0chksum=0xf7ffid=0x0seq=0x0>>>sr>>>srsr() sr1flood() srbt1() srloop() srp1() srpflood()sr1() srbt() srflood() srp() srp1flood() srploop()sr()sr1flood() srbt1() srloop() srp1() srpflood()>>>sr1>>>sr1function(x, promisc, filter, iface, nofilter, args, kargs)sr1()srbt() srflood() srp() srp1flood() srploop()>>>sr1(>>>sr1(>>>sr1(p>>>sr1(pk>>>sr1(pkt>>>sr1(pkt)..........>>>sr1(pkt)Begin emission:.....Finished sending 1 packets..*Received 7 packets, got 1 answers, remaining 0 packets<IPversion=4ihl=5tos=0x0len=28id=21006flags=frag=0ttl=60proto=icmpchksum=0x394dsrc=217.25.178.5dst=212.83.148.19|<ICMPtype=echo-replycode=0chksum=0xffffid=0x0seq=0x0|<Paddingload='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'|>>>>>>_>>>_.>>>_.s>>>_.sh>>>_.sho>>>_.show>>>_.show(x00\x00\x00\x00\x00\x00\x00\x00\x00'|>>>>>>_.show()>>>_.show()id=21006ttl=60chksum=0x394dsrc=217.25.178.5dst=212.83.148.19type=echo-replychksum=0xffff###[Padding]###load='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'demo@scapy:~/github/scapy#>>>demo@scapy:~/github/scapy# exitdemo@scapy:~/github/scapy# exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-gmlan.svg b/doc/scapy/graphics/animations/animation-scapy-gmlan.svg
index b22b2a20899..5c689e77eed 100755
--- a/doc/scapy/graphics/animations/animation-scapy-gmlan.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-gmlan.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- cars@scapy ~/r/t/a/p/folders 2019> cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> cat candump.txt cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy Welcome to fish, the friendly interactive shellcars@scapy ~/r/t/a/p/folders 2019> cat candump.txt (1546870573.230900) can0 247#03AA0111(1546870573.256681) can0 547#11FFF000FCF9F000cars@scapy ~/r/t/a/p/folders 2019> scapy INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().>>> aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev709 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | We are in France, we say Skappee. scccccp///pSP///p p//Y | OK? Merci. sY/////////y caa S//P | -- Sebastien Chabal cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> I-search backward: >>> load_contrib("automotive.gm.gmlan") I-search backward: l >>> load_contrib("automotive.gm.gmlan") I-search backward: lo >>> load_contrib("automotive.gm.gmlan") I-search backward: loa >>> load_contrib("automotive.gm.gmlan") I-search backward: load >>> load_contrib("automotive.gm.gmlan") >>> load_contrib("automotive.gm.gmlan") >>> load_contrib("automotive.gm.gmlan") I-search backward: load_ >>> load_contrib("automotive.gm.gmlan") I-search backward: load_c >>> load_contrib("automotive.gm.gmlan") I-search backward: load_co I-search backward: load_con >>> load_contrib("automotive.gm.gmlan") >>> load_contrib("automotive.gm.gmlan") I-search backward: load_cont >>> load_contrib("automotive.gm.gmlan") I-search backward: load_contr >>> load_contrib("automotive.gm.gmlan") I-search backward: load_contri >>> load_contrib("automotive.gm.gmlan") I-search backward: load_contrib >>> load_contrib("automotive.gm.gmlan") I-search backward: load_contrib( >>> load_contrib("automotive.gm.gmlan") I-search backward: load_contrib(" >>> load_contrib("isotp") I-search backward: load_contrib("i >>> load_contrib("isotp") >>> load_contrib("isotp") INFO: Specify 'conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True}' to enable usage of can-isotp kernel module.>>> load_contrib("isotp") >>> load_contrib("isotp") >>> load_contrib("isotp") >>> load_contrib("isotp") I-search backward: load_l >>> load_layer("can") >>> load_layer("can") >>> p >>> pk >>> pkt >>> pkts >>> pkts= >>> pkts= >>> pkts >>> pkts = >>> pkts = >>> pkts = r >>> pkts = rd >>> pkts = rdc >>> load_layer("can") >>> pkts = rdca >>> pkts = rdcandump >>> pkts = rdcandump( >>> pkts = rdcandump(" >>> pkts = rdcandump("c >>> pkts = rdcandump("ca >>> pkts = rdcandump("can candump-2019-01-23_074738.log candump.txt >>> pkts = rdcandump("candump candump-2019-01-23_074738.log candump.txt >>> pkts = rdcandump("candump. >>> pkts = rdcandump("candump.t >>> pkts = rdcandump("candump.tx >>> pkts = rdcandump("candump.txt >>> pkts = rdcandump("candump.txt" >>> pkts = rdcandump("candump.txt"_ >>> pkts = rdcandump("candump.txt") >>> I >>> Is >>> pkts = rdcandump("candump.txt") >>> pkts [<CAN identifier=0x247 length=4 data='\x03\xaa\x01\x11' |>, <CAN identifier=0x547 length=8 data='\x11\xff\xf0\x00\xfc\xf9\xf0\x00' |>] >>> IS ISAKMP ISAKMPTransformTypes ISAKMP_payload_Hash ISAKMP_payload_Proposal ISAKMPAttributeTypes ISAKMP_class ISAKMP_payload_ID ISAKMP_payload_SA ISAKMPTransformNum ISAKMP_exchange_type ISAKMP_payload_KE ISAKMP_payload_Transform > ISAKMPTransformSetField ISAKMP_payload ISAKMP_payload_Nonce ISAKMP_payload_VendorID >>> ISO >>> ISOTP ISOTP ISOTPNativeSocket ISOTPSoftSocket ISOTP_SF ISOTP ISOTPNativeSocket ISOTPSoftSocket ISOTP_SF ISOTPHeader ISOTPSniffer ISOTP_CF >>> ISOTPHeader ISOTPHeader ISOTPSniffer ISOTP_CF ISOTPHeaderEA ISOTPSocket ISOTP_FC ISOTPMessageBuilder ISOTPSocketImplementation ISOTP_FF <unknown> >>> ISOTPHeader( >>> ISOTPHeader(b >>> ISOTPHeader(by >>> ISOTPHeader(byt >>> ISOTPHeader(byte >>> ISOTPHeader(bytes >>> ISOTPHeader(bytes( >>> ISOTPHeader(bytes(p >>> ISOTPHeader(bytes(pk >>> ISOTPHeader(bytes(pkt >>> ISOTPHeader(bytes(pkts >>> ISOTPHeader(bytes(pkts[ >>> ISOTPHeader(bytes(pkts[0 >>> ISOTPHeader(bytes(pkts[0[ >>> ISOTPHeader(bytes(pkts[0] >>> ISOTPHeader(bytes(pkts[0]) >>> ISOTPHeader(bytes(pkts[0])_ >>> ISOTPHeader(bytes(pkts[0])) >>> ISOTPHeader(bytes(pkts[0])). >>> ISOTPHeader(bytes(pkts[0])).d >>> ISOTPHeader(bytes(pkts[0])).da >>> ISOTPHeader(bytes(pkts[0])).dat >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> ISOTPHeader(bytes(pkts[0])).data >>> GISOTPHeader(bytes(pkts[0])).data >>> GMISOTPHeader(bytes(pkts[0])).data >>> GMLISOTPHeader(bytes(pkts[0])).data >>> GMLAISOTPHeader(bytes(pkts[0])).data >>> GMLANISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data >>> GMLAN(ISOTPHeader(bytes(pkts[0])).data) >>> ISOTPHeader(bytes(pkts[0])) >>> ISOTPHeader(bytes(pkts[0])) >>> ISOTPHeader(bytes(pkts[0])) >>> ISOTPHeader(bytes(pkts[])) >>> ISOTPHeader(bytes(pkts[1])) >>> ISOTPHeader(bytes(pkts[0])) <ISOTPHeader flags= identifier=0x247 length=4 reserved=0 |<ISOTP_SF type=single message_size=3 data='\xaa\x01\x11' |>>>>> GMLAN(ISOTPHeader(bytes(pkts[0])).data) <GMLAN service=ReadDataByPacketIdentifier |<GMLAN_RDBPKTI subfunction=sendOneResponse request_DPIDs=[0x11] |>> >>> ISOTPHeader(bytes(pkts[1])) >>> ISOTPHeader(bytes(pkts[1])) >>> ISOTPHeader(bytes(pkts[1])) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytes(pkts[1]) >>> ISOTPHeader(bytespkts[1]) >>> ISOTPHeader(bytpkts[1]) >>> ISOTPHeader(bypkts[1]) >>> ISOTPHeader(bpkts[1]) >>> ISOTPHeader(pkts[1]) >>> ISOTPHeaderpkts[1]) >>> ISOTPHeadepkts[1]) >>> ISOTPHeadpkts[1]) >>> ISOTPHeapkts[1]) >>> ISOTPHepkts[1]) >>> ISOTPHpkts[1]) >>> ISOTPpkts[1]) >>> ISOTpkts[1]) >>> ISOpkts[1]) >>> ISpkts[1]) >>> Ipkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) >>> pkts[1]) <ISOTPHeader flags= identifier=0x547 length=8 reserved=0 |<ISOTP_FF type=first message_size=511 data='\xf0\x00\xfc\xf9\xf0\x00' |>>>>> pkts[1] >>> pkts[1] <CAN identifier=0x547 length=8 data='\x11\xff\xf0\x00\xfc\xf9\xf0\x00' |> >>> cars@scapy ~/r/t/a/p/folders 2019>
-
\ No newline at end of file
+cars@scapy~/r/t/a/p/folders 2019>cars@scapy~/r/t/a/p/folders 2019>cat candump.txtcars@scapy~/r/t/a/p/folders 2019>catcandump.txtcars@scapy~/r/t/a/p/folders 2019>catcandump.txtcars@scapy~/r/t/a/p/folders 2019>catcandump.txtcars@scapy~/r/t/a/p/folders 2019>catcandump.txtcars@scapy~/r/t/a/p/folders 2019>catcandump.txtcars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapyWelcome to fish, the friendly interactive shellcars@scapy~/r/t/a/p/folders 2019>catcandump.txt(1546870573.230900) can0 247#03AA0111(1546870573.256681) can0 547#11FFF000FCF9F000cars@scapy~/r/t/a/p/folders 2019>scapyINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().>>>aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev709AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| We are in France, we say Skappee.scccccp///pSP///p p//Y| OK? Merci.sY/////////y caa S//P| -- Sebastien ChabalcayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>I-search backward:>>>load_contrib("automotive.gm.gmlan")I-search backward:l>>>load_contrib("automotive.gm.gmlan")I-search backward:lo>>>load_contrib("automotive.gm.gmlan")I-search backward:loa>>>load_contrib("automotive.gm.gmlan")I-search backward:load>>>load_contrib("automotive.gm.gmlan")>>>load_contrib("automotive.gm.gmlan")>>>load_contrib("automotive.gm.gmlan")I-search backward:load_>>>load_contrib("automotive.gm.gmlan")I-search backward:load_c>>>load_contrib("automotive.gm.gmlan")I-search backward:load_coI-search backward:load_con>>>load_contrib("automotive.gm.gmlan")>>>load_contrib("automotive.gm.gmlan")I-search backward:load_cont>>>load_contrib("automotive.gm.gmlan")I-search backward:load_contr>>>load_contrib("automotive.gm.gmlan")I-search backward:load_contri>>>load_contrib("automotive.gm.gmlan")I-search backward:load_contrib>>>load_contrib("automotive.gm.gmlan")I-search backward:load_contrib(>>>load_contrib("automotive.gm.gmlan")I-search backward:load_contrib(">>>load_contrib("isotp")I-search backward:load_contrib("i>>>load_contrib("isotp")>>>load_contrib("isotp")INFO: Specify 'conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True}' to enable usage of can-isotp kernel module.>>>load_contrib("isotp")>>>load_contrib("isotp")>>>load_contrib("isotp")>>>load_contrib("isotp")I-search backward:load_l>>>load_layer("can")>>>load_layer("can")>>>p>>>pk>>>pkt>>>pkts>>>pkts=>>>pkts=>>>pkts>>>pkts =>>>pkts =>>>pkts = r>>>pkts = rd>>>pkts = rdc>>>load_layer("can")>>>pkts = rdca>>>pkts = rdcandump>>>pkts = rdcandump(>>>pkts = rdcandump(">>>pkts = rdcandump("c>>>pkts = rdcandump("ca>>>pkts = rdcandump("cancandump-2019-01-23_074738.logcandump.txt>>>pkts = rdcandump("candumpcandump-2019-01-23_074738.logcandump.txt>>>pkts = rdcandump("candump.>>>pkts = rdcandump("candump.t>>>pkts = rdcandump("candump.tx>>>pkts = rdcandump("candump.txt>>>pkts = rdcandump("candump.txt">>>pkts = rdcandump("candump.txt"_>>>pkts = rdcandump("candump.txt")>>>I>>>Is>>>pkts = rdcandump("candump.txt")>>>pkts[<CANidentifier=0x247length=4data='\x03\xaa\x01\x11'|>,<CANidentifier=0x547length=8data='\x11\xff\xf0\x00\xfc\xf9\xf0\x00'|>]>>>ISISAKMP ISAKMPTransformTypes ISAKMP_payload_Hash ISAKMP_payload_ProposalISAKMPAttributeTypes ISAKMP_class ISAKMP_payload_ID ISAKMP_payload_SAISAKMPTransformNum ISAKMP_exchange_type ISAKMP_payload_KE ISAKMP_payload_Transform >ISAKMPTransformSetField ISAKMP_payload ISAKMP_payload_Nonce ISAKMP_payload_VendorID>>>ISO>>>ISOTPISOTP ISOTPNativeSocket ISOTPSoftSocket ISOTP_SFISOTPISOTPNativeSocket ISOTPSoftSocket ISOTP_SFISOTPHeader ISOTPSniffer ISOTP_CF>>>ISOTPHeaderISOTPHeaderISOTPSniffer ISOTP_CFISOTPHeaderEA ISOTPSocket ISOTP_FCISOTPMessageBuilder ISOTPSocketImplementation ISOTP_FF<unknown>>>>ISOTPHeader(>>>ISOTPHeader(b>>>ISOTPHeader(by>>>ISOTPHeader(byt>>>ISOTPHeader(byte>>>ISOTPHeader(bytes>>>ISOTPHeader(bytes(>>>ISOTPHeader(bytes(p>>>ISOTPHeader(bytes(pk>>>ISOTPHeader(bytes(pkt>>>ISOTPHeader(bytes(pkts>>>ISOTPHeader(bytes(pkts[>>>ISOTPHeader(bytes(pkts[0>>>ISOTPHeader(bytes(pkts[0[>>>ISOTPHeader(bytes(pkts[0]>>>ISOTPHeader(bytes(pkts[0])>>>ISOTPHeader(bytes(pkts[0])_>>>ISOTPHeader(bytes(pkts[0]))>>>ISOTPHeader(bytes(pkts[0])).>>>ISOTPHeader(bytes(pkts[0])).d>>>ISOTPHeader(bytes(pkts[0])).da>>>ISOTPHeader(bytes(pkts[0])).dat>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>ISOTPHeader(bytes(pkts[0])).data>>>GISOTPHeader(bytes(pkts[0])).data>>>GMISOTPHeader(bytes(pkts[0])).data>>>GMLISOTPHeader(bytes(pkts[0])).data>>>GMLAISOTPHeader(bytes(pkts[0])).data>>>GMLANISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data)>>>ISOTPHeader(bytes(pkts[0]))>>>ISOTPHeader(bytes(pkts[0]))>>>ISOTPHeader(bytes(pkts[0]))>>>ISOTPHeader(bytes(pkts[]))>>>ISOTPHeader(bytes(pkts[1]))>>>ISOTPHeader(bytes(pkts[0]))<ISOTPHeaderflags=identifier=0x247length=4reserved=0|<ISOTP_SFtype=singlemessage_size=3data='\xaa\x01\x11'|>>>>>GMLAN(ISOTPHeader(bytes(pkts[0])).data)<GMLANservice=ReadDataByPacketIdentifier|<GMLAN_RDBPKTIsubfunction=sendOneResponserequest_DPIDs=[0x11]|>>>>>ISOTPHeader(bytes(pkts[1]))>>>ISOTPHeader(bytes(pkts[1]))>>>ISOTPHeader(bytes(pkts[1]))>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytes(pkts[1])>>>ISOTPHeader(bytespkts[1])>>>ISOTPHeader(bytpkts[1])>>>ISOTPHeader(bypkts[1])>>>ISOTPHeader(bpkts[1])>>>ISOTPHeader(pkts[1])>>>ISOTPHeaderpkts[1])>>>ISOTPHeadepkts[1])>>>ISOTPHeadpkts[1])>>>ISOTPHeapkts[1])>>>ISOTPHepkts[1])>>>ISOTPHpkts[1])>>>ISOTPpkts[1])>>>ISOTpkts[1])>>>ISOpkts[1])>>>ISpkts[1])>>>Ipkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])>>>pkts[1])<ISOTPHeaderflags=identifier=0x547length=8reserved=0|<ISOTP_FFtype=firstmessage_size=511data='\xf0\x00\xfc\xf9\xf0\x00'|>>>>>pkts[1]>>>pkts[1]<CANidentifier=0x547length=8data='\x11\xff\xf0\x00\xfc\xf9\xf0\x00'|>>>>cars@scapy~/r/t/a/p/folders 2019>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-isotpscan.svg b/doc/scapy/graphics/animations/animation-scapy-isotpscan.svg
index 6b6f06e5b16..e32eeb808c7 100644
--- a/doc/scapy/graphics/animations/animation-scapy-isotpscan.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-isotpscan.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- user@system ~> user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> pt user@system ~> ptar user@system ~> p user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy user@system ~> python3 -m scapy user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff - user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -h Welcome to fish, the friendly interactive shelluser@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -h see examples below. Any python-can interface can be provided. Please see: https://python-can.readthedocs.io for further interface examples. -b, --bitrate python-can bitrate. optional arguments: -h, --help show this help message and exit -n NOISE_LISTEN_TIME, --noise_listen_time NOISE_LISTEN_TIME Seconds listening for noise before scan. -t SNIFF_TIME, --sniff_time SNIFF_TIME Duration in milliseconds a sniff is waiting for a flow-control response. -x, --extended Scan with ISOTP extended addressing. -C, --piso Print 'Copy&Paste'-ready ISOTPSockets. -v, --verbose Display information during scan. Example of use: Python2 or Windows: python2 -m scapy.tools.automotive.isotpscanner --interface=pcan --channel=PCAN_USBBUS1 --bitrate=250000 --start 0 --end 100 python2 -m scapy.tools.automotive.isotpscanner --interface vector --channel 0 --bitrate 250000 --start 0 --end 100 python2 -m scapy.tools.automotive.isotpscanner --interface socketcan --channel=can0 --bitrate=250000 --start 0 --end 100 Python3 on Linux: python3 -m scapy.tools.automotive.isotpscanner --channel can0 --start 0 --end 100 user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v Start scan (0x700 - 0x7ff)Filtering background noise...[+] Found flow-control frame from identifier 0x701 when testing identifier 0x700[+] Found flow-control frame from identifier 0x707 when testing identifier 0x709[+] Found flow-control frame from identifier 0x788 when testing identifier 0x71c[+] Found flow-control frame from identifier 0x745 when testing identifier 0x799[+] Found flow-control frame from identifier 0x703 when testing identifier 0x7aa[+] Found flow-control frame from identifier 0x7bb when testing identifier 0x7ccScan: Found 6 ISOTP-FlowControl Packet(s):Send to ID: 0x700Received ID: 0x701Message: <CAN flags= identifier=0x701 length=3 reserved=196608 data='0\x00\x00' |>No PaddingSend to ID: 0x709Received ID: 0x707Message: <CAN flags= identifier=0x707 length=8 reserved=0 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Padding enabledSend to ID: 0x71cReceived ID: 0x788Message: <CAN flags= identifier=0x788 length=3 reserved=0 data='0\x00\x00' |>Send to ID: 0x799Received ID: 0x745Message: <CAN flags= identifier=0x745 length=8 reserved=196608 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Send to ID: 0x7aaReceived ID: 0x703Message: <CAN flags= identifier=0x703 length=8 reserved=0 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Send to ID: 0x7ccRecei user@system ~> exit user@system ~> echo "if you are lazy, get a copy and paste ready output" user@system ~> echo "if you are lazy, get a copy and paste ready output" user@system ~> echo "if you are lazy, get a copy and paste ready output" Received ID: 0x7bbMessage: <CAN flags= identifier=0x7bb length=3 reserved=9633791 data='0\x00\x00' |>user@system ~> echo "if you are lazy, get a copy and paste ready output" user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -c user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v - user@system ~> echo "if you are lazy, get a copy and paste ready output" if you are lazy, get a copy and paste ready outputuser@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 0 user@system ~> python3 user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C user@system ~> python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -C import canconf.contribs['CANSocket'] = {'use-python-can': False}load_contrib('cansocket')load_contrib('isotp')ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)user@system ~> python3 -m scapy aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version git-archive.dev304758016 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Wanna support scapy? Rate it on scccccp///pSP///p p//Y | sectools! sY/////////y caa S//P | http://sectools.org/tool/scapy/ cayCyayP//Ya pY/Ya | -- Satoshi Nakamoto sY/PsY////YCc aC//Yp | sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.6.1>>> >>> c >>> co >>> con >>> I-search backward: ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] I-search backward: I ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] I-search backward: IS ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] I-search backward: ISO ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] I-search backward: ISOT >>> import can ...: conf.contribs['CANSocket'] = {'use-python-can': False} ...: load_contrib('cansocket') ...: load_contrib('isotp') ...: ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] I-search backward: ISOTP >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: ISOTP' >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} .. ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP) ...: ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: sISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: soISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: sockISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socksISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks =ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP) ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP) ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP), ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP), ...: socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] ...: ...: conf.contribs['CANSocket'] = {'use-python-can': False} ...: load_contrib('cansocket') ...: ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP), ...: ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)] INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can. >>> s >>> so >>> soc >>> sock >>> socks >>> socks [<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91d3e18a50>, <<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65ad5d0>, <<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65addd0>, <<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65ad850>, <<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65bb590>, <<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e654b2d0>]>>> e >>> ex >>> exi >>> exit user@system ~> echo "if you are lazy, get a copy and paste ready output" user@system ~> exit user@system ~> exit user@system ~> exit >>> exit user@system ~> exit
-
+user@system~>user@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>ptuser@system~>ptaruser@system~>puser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapyuser@system~>python3-mscapyuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -vuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-vuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-user@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-hWelcome to fish, the friendly interactive shelluser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-hsee examples below. Any python-can interface canbe provided. Please see:https://python-can.readthedocs.io forfurther interface examples.-b, --bitrate python-can bitrate.optional arguments:-h, --help show this help message and exit-n NOISE_LISTEN_TIME, --noise_listen_time NOISE_LISTEN_TIMESeconds listening for noise before scan.-t SNIFF_TIME, --sniff_time SNIFF_TIMEDuration in milliseconds a sniff is waiting for aflow-control response.-x, --extended Scan with ISOTP extended addressing.-C, --piso Print 'Copy&Paste'-ready ISOTPSockets.-v, --verbose Display information during scan.Example of use:Python2 or Windows:python2 -m scapy.tools.automotive.isotpscanner --interface=pcan --channel=PCAN_USBBUS1 --bitrate=250000 --start 0 --end 100python2 -m scapy.tools.automotive.isotpscanner --interface vector --channel 0 --bitrate 250000 --start 0 --end 100python2 -m scapy.tools.automotive.isotpscanner --interface socketcan --channel=can0 --bitrate=250000 --start 0 --end100Python3 on Linux:python3 -m scapy.tools.automotive.isotpscanner --channel can0 --start 0 --end 100user@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-vStart scan (0x700 - 0x7ff)Filtering background noise...[+] Found flow-control frame from identifier 0x701 when testing identifier 0x700[+] Found flow-control frame from identifier 0x707 when testing identifier 0x709[+] Found flow-control frame from identifier 0x788 when testing identifier 0x71c[+] Found flow-control frame from identifier 0x745 when testing identifier 0x799[+] Found flow-control frame from identifier 0x703 when testing identifier 0x7aa[+] Found flow-control frame from identifier 0x7bb when testing identifier 0x7ccScan:Found 6 ISOTP-FlowControl Packet(s):Send to ID: 0x700Received ID: 0x701Message: <CAN flags= identifier=0x701 length=3 reserved=196608 data='0\x00\x00' |>No PaddingSend to ID: 0x709Received ID: 0x707Message: <CAN flags= identifier=0x707 length=8 reserved=0 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Padding enabledSend to ID: 0x71cReceived ID: 0x788Message: <CAN flags= identifier=0x788 length=3 reserved=0 data='0\x00\x00' |>Send to ID: 0x799Received ID: 0x745Message: <CAN flags= identifier=0x745 length=8 reserved=196608 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Send to ID: 0x7aaReceived ID: 0x703Message: <CAN flags= identifier=0x703 length=8 reserved=0 data='0\x00\x00\xaa\xaa\xaa\xaa\xaa' |>Send to ID: 0x7ccReceiuser@system~>exituser@system~>echo "if you are lazy, get a copy and paste ready output"user@system~>echo"if you are lazy, get a copy and paste ready output"user@system~>echo"if you are lazy, get a copy and paste ready output"Received ID: 0x7bbMessage: <CAN flags= identifier=0x7bb length=3 reserved=9633791 data='0\x00\x00' |>user@system~>echo"if you are lazy, get a copy and paste ready output"user@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-vuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-v-Cuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-v-cuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-v-user@system~>echo"if you are lazy, get a copy and paste ready output"if you are lazy, get a copy and paste ready outputuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-v-Cuser@system~>python3-mscapy.tools.automotive.isotpscanner--channelvcan0--start700--end7ff-v-Cuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3 -m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-m scapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python30user@system~>python3user@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cuser@system~>python3-mscapy.tools.automotive.isotpscanner --channel vcan0 --start 700 --end 7ff -v -Cimport canconf.contribs['CANSocket'] = {'use-python-can': False}load_contrib('cansocket')load_contrib('isotp')ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP)ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)user@system~>python3-mscapyaSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version git-archive.dev304758016AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Wanna support scapy? Rate it onscccccp///pSP///p p//Y| sectools!sY/////////y caa S//P| http://sectools.org/tool/scapy/cayCyayP//Ya pY/Ya| -- Satoshi NakamotosY/PsY////YCc aC//Yp|sc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.6.1>>>>>>c>>>co>>>con>>>I-search backward:...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]I-search backward:I...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]I-search backward:IS...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]I-search backward:ISO...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]I-search backward:ISOT>>>importcan...:conf.contribs['CANSocket'] = {'use-python-can':False}...:load_contrib('cansocket')...:load_contrib('isotp')...:...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]I-search backward:ISOTP>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:ISOTP'>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}.....:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)...:...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:sISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:soISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:sockISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socksISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socksISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks =ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks =ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0",sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700,did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701,padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False,basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP)...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP),...:socks = [ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP),...:socks =[ISOTPSocket("vcan0", sid=0x700, did=0x701, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]...:...:conf.contribs['CANSocket'] = {'use-python-can':False}...:load_contrib('cansocket')...:ISOTPSocket("vcan0", sid=0x709, did=0x707, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x71c, did=0x788, padding=False, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x799, did=0x745, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7aa, did=0x703, padding=True, basecls=ISOTP),...:ISOTPSocket("vcan0", sid=0x7cc, did=0x7bb, padding=False, basecls=ISOTP)]INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can.>>>s>>>so>>>soc>>>sock>>>socks>>>socks[<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91d3e18a50>,<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65ad5d0>,<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65addd0>,<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65ad850>,<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e65bb590>,<<ISOTPNativeSocket: read/write packets at a given CAN interface using CAN_ISOTP socket > at 0x7f91e654b2d0>]>>>e>>>ex>>>exi>>>exituser@system~>echo "if you are lazy, get a copy and paste ready output"user@system~>exituser@system~>exituser@system~>exit>>>exituser@system~>exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-native-cansocket.svg b/doc/scapy/graphics/animations/animation-scapy-native-cansocket.svg
index 372d9d8d3a2..5f9d52218e7 100755
--- a/doc/scapy/graphics/animations/animation-scapy-native-cansocket.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-native-cansocket.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> sock.recv() I-search backward: c >>> load_contrib("cansocket") I-search backward: co >>> load_contrib("cansocket") I-search backward: con >>> conf.contribs['CANSocket'] = {'use-python-can': False} I-search backward: conf >>> conf.contribs['CANSocket'] = {'use-python-can': False} >>> conf.contribs['CANSocket'] = {'use-python-can': False} I-search backward: l >>> load_contrib("cansocket") I-search backward: lo >>> load_contrib("cansocket") I-search backward: loa INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | To craft a packet, you have to be a scccccp///pSP///p p//Y | packet, and learn how to swim in sY/////////y caa S//P | the wires and in the waves. cayCyayP//Ya pY/Ya | -- Jean-Claude Van Damme sY/PsY////YCc aC//Yp | sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> conf.contribs['CANSocket'] = {'use-python-can': False} >>> load_contrib("cansocket") >>> load_contrib("cansocket") INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can.>>> load_contrib("cansocket") I-search backward: s >>> load_contrib("cansocket") I-search backward: so >>> load_contrib("cansocket") I-search backward: soc >>> load_contrib("cansocket") I-search backward: sock >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'caI-search backward: sock >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'ca...: n_mask': 0x700}]) I-search backward: sock = >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])...: >>> sock = CANSocket("vcan0") >>> sock = CANSocket("vcan0") >>> s >>> so >>> soc >>> sock >>> sock. >>> sock.r >>> sock.re >>> sock.rec >>> sock.recv >>> sock.recv( >>> sock = CANSocket("vcan0") >>> sock.recv() >>> sock.recv() <CAN flags= identifier=0x46e length=5 reserved=0 data="d\x056'\x99" |> <CAN flags= identifier=0x4b6 length=8 reserved=0 data='\xadj\xe8A,\xc4\x7f\x05' |>>>> sock = CANSocket("vcan0") >>> load_contrib("cansocket") <CAN flags= identifier=0x759 length=4 reserved=0 data='\xaa\x87/h' |> >>> sock.recv() >>> sock.recv() >>> sock.recv() >>> sock.recv() >>> sock = CANSocket("vcan0") >>> sock = CANSocket("vcan0") I-search backward: sock = >>> sock = CANSocket("vcan0") I-search backward: sock = C >>> sock = CANSocket("vcan0") I-search backward: sock = CA >>> sock = CANSocket("vcan0") I-search backward: sock = CAN >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'ca>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])...: <CAN flags= identifier=0x1f9 length=8 reserved=0 data='\xa1\x8eQ\x0cw\xcakz' |><CAN flags= identifier=0x14d length=8 reserved=0 data='\xd2\x8fUd\xb7`\xe7\x02'<CAN flags= identifier=0x122 length=3 reserved=0 data='O\x18\xe4' |> <CAN flags= identifier=0x1ff length=6 reserved=0 data='8l\r}p1' |> <CAN flags= identifier=0x144 length=8 reserved=0 data='\xd8\xff\x8dki\xd9_h' |>>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100, 'can_mask': 0x700}])I-search: sock >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'ca>>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'ca...: n_mask': 0x700}]) >>> sock = CANSocket("vcan0", can_filters=[{'can_id':0x100 | CAN_INV_FILTER, 'ca<CAN flags= identifier=0x4e length=3 reserved=0 data='\xbf^\x8e' |> <CAN flags= identifier=0x26e length=7 reserved=0 data='G\x0e\xd7Zu\x90?' |> <CAN flags= identifier=0x20e length=8 reserved=0 data='\xc4\xfb,t\xa8\x0ek\x13'<CAN flags= identifier=0x599 length=3 reserved=0 data='\xf5k\x84' |> <CAN flags= identifier=0x69 length=8 reserved=0 data='PU\xfam\xba\x86\xc9 ' |> >>>
-
\ No newline at end of file
+>>>>>>I-search backward:>>>sock.recv()I-search backward:c>>>load_contrib("cansocket")I-search backward:co>>>load_contrib("cansocket")I-search backward:con>>>conf.contribs['CANSocket'] = {'use-python-can':False}I-search backward:conf>>>conf.contribs['CANSocket'] = {'use-python-can':False}>>>conf.contribs['CANSocket'] = {'use-python-can':False}I-search backward:l>>>load_contrib("cansocket")I-search backward:lo>>>load_contrib("cansocket")I-search backward:loaINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| To craft a packet, you have to be ascccccp///pSP///p p//Y| packet, and learn how to swim insY/////////y caa S//P| the wires and in the waves.cayCyayP//Ya pY/Ya| -- Jean-Claude Van DammesY/PsY////YCc aC//Yp|sc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>conf.contribs['CANSocket'] = {'use-python-can':False}>>>load_contrib("cansocket")>>>load_contrib("cansocket")INFO: Use native CANSocket. Specify 'conf.contribs['CANSocket'] = {'use-python-can': True}' to enable python-can.>>>load_contrib("cansocket")I-search backward:s>>>load_contrib("cansocket")I-search backward:so>>>load_contrib("cansocket")I-search backward:soc>>>load_contrib("cansocket")I-search backward:sock>>>sock= CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'caI-search backward:sock>>>sock =CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'ca...:n_mask':0x700}])I-search backward:sock =>>>sock =CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])...:>>>sock =CANSocket("vcan0")>>>sock = CANSocket("vcan0")>>>s>>>so>>>soc>>>sock>>>sock.>>>sock.r>>>sock.re>>>sock.rec>>>sock.recv>>>sock.recv(>>>sock = CANSocket("vcan0")>>>sock.recv()>>>sock.recv()<CANflags=identifier=0x46elength=5reserved=0data="d\x056'\x99"|><CANflags=identifier=0x4b6length=8reserved=0data='\xadj\xe8A,\xc4\x7f\x05'|>>>>sock = CANSocket("vcan0")>>>load_contrib("cansocket")<CANflags=identifier=0x759length=4reserved=0data='\xaa\x87/h'|>>>>sock.recv()>>>sock.recv()>>>sock.recv()>>>sock.recv()>>>sock= CANSocket("vcan0")>>>sock =CANSocket("vcan0")I-search backward:sock =>>>sock = CANSocket("vcan0")I-search backward:sock = C>>>sock = CANSocket("vcan0")I-search backward:sock = CA>>>sock = CANSocket("vcan0")I-search backward:sock = CAN>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'ca>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])...:<CANflags=identifier=0x1f9length=8reserved=0data='\xa1\x8eQ\x0cw\xcakz'|><CANflags=identifier=0x14dlength=8reserved=0data='\xd2\x8fUd\xb7`\xe7\x02'<CANflags=identifier=0x122length=3reserved=0data='O\x18\xe4'|><CANflags=identifier=0x1fflength=6reserved=0data='8l\r}p1'|><CANflags=identifier=0x144length=8reserved=0data='\xd8\xff\x8dki\xd9_h'|>>>>sock= CANSocket("vcan0", can_filters=[{'can_id':0x100,'can_mask':0x700}])I-search:sock>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'ca>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'ca...:n_mask':0x700}])>>>sock = CANSocket("vcan0", can_filters=[{'can_id':0x100| CAN_INV_FILTER,'ca<CANflags=identifier=0x4elength=3reserved=0data='\xbf^\x8e'|><CANflags=identifier=0x26elength=7reserved=0data='G\x0e\xd7Zu\x90?'|><CANflags=identifier=0x20elength=8reserved=0data='\xc4\xfb,t\xa8\x0ek\x13'<CANflags=identifier=0x599length=3reserved=0data='\xf5k\x84'|><CANflags=identifier=0x69length=8reserved=0data='PU\xfam\xba\x86\xc9 '|>>>>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-obd.svg b/doc/scapy/graphics/animations/animation-scapy-obd.svg
index ef4817014a4..e03e5a4db65 100755
--- a/doc/scapy/graphics/animations/animation-scapy-obd.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-obd.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() I-search backward: c >>> load_contrib("isotp") I-search backward: co >>> load_contrib("isotp") I-search backward: con >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: conf >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: i >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: is >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: iso >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: isot >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: isotp >>> load_contrib("isotp") I-search backward: isotp" >>> load_contrib("isotp") >>> load_contrib("isotp") I-search backward: o >>> load_contrib("automotive.obd.obd") I-search backward: ob >>> load_contrib("automotive.obd.obd") I-search backward: obd >>> load_contrib("automotive.obd.obd") INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev706 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft me if you can. scccccp///pSP///p p//Y | -- IPv6 layer sY/////////y caa S//P | cayCyayP//Ya pY/Ya sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> load_contrib("isotp") >>> load_contrib("automotive.obd.obd") >>> load_contrib("isotp") I-search backward: s >>> load_contrib("isotp") I-search backward: so >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() I-search backward: soc >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) I-search backward: sock = >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) I-search backward: sock = >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD) >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() I-search backward: sock. I-search backward: sock.s >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(id=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x),verbose=False).show() ###[ On-board diagnostics ]### service= VehicleInformationResponse###[ S9_VehicleInformationPositiveResponse ]### iid= 0x0###[ IID_00_Service9SupportedInformationTypes ]### supported_iids= IID0A+IID08+IID06+IID04+IID02>>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S0(pid=0x0),verbose=False).show() iid= 0xa###[ IID_0A_EcuName ]### count= 1 ecu_names= ['ECM\x00-EngineControl']>>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x),verbose=False).show() service= CurrentPowertrainDiagnosticDataResponse###[ Parameter IDs ]### \data_records\ |###[ OBD_S01_PID_Record ]### | pid= 0x0 |###[ PID_00_PIDsSupported ]### | supported_pids= PID20+PID1F+PID1C+PID15+PID14+PID13+PID11+PID10+PID0F+PID0E+PID0D+PID0C+PID0B+PID0A+PID07+PID06+PID05+PID04+PID03+PID01>>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show() | pid= 0x5 |###[ PID_05_EngineCoolantTemperature ]### | data= 19.0 deg. C>>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show() | pid= 0xd |###[ PID_0D_VehicleSpeed ]### | data= 0 km/h>>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show() | pid= 0xe |###[ PID_0E_TimingAdvance ]### | data= 3.0 deg.>>> sock.sr1(OBD()/OBD_S01(pid=0xC),verbose=False).show() >>> sock.sr1(OBD()/OBD_S01(pid=0xC),verbose=False).show() | pid= 0xc |###[ PID_0C_EngineRpm ]### | data= 0.0 min-1>>>
-
\ No newline at end of file
+>>>>>>I-search backward:>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()I-search backward:c>>>load_contrib("isotp")I-search backward:co>>>load_contrib("isotp")I-search backward:con>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:conf>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:i>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:is>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:iso>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:isot>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:isotp>>>load_contrib("isotp")I-search backward:isotp">>>load_contrib("isotp")>>>load_contrib("isotp")I-search backward:o>>>load_contrib("automotive.obd.obd")I-search backward:ob>>>load_contrib("automotive.obd.obd")I-search backward:obd>>>load_contrib("automotive.obd.obd")INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev706AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft me if you can.scccccp///pSP///p p//Y| -- IPv6 layersY/////////y caa S//P|cayCyayP//Ya pY/YasY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>load_contrib("isotp")>>>load_contrib("automotive.obd.obd")>>>load_contrib("isotp")I-search backward:s>>>load_contrib("isotp")I-search backward:so>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()I-search backward:soc>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()I-search backward:sock>>>sock= ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)I-search backward:sock>>>sock =ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)I-search backward:sock =>>>sock =ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)I-search backward:sock =>>>sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock = ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock= ISOTPNativeSocket("can0", did=0x7e8, sid=0x7e0, padding=True, basecls=OBD)>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()I-search backward:sock.I-search backward:sock.s>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(id=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x),verbose=False).show()###[On-board diagnostics]###service=VehicleInformationResponse###[S9_VehicleInformationPositiveResponse]###iid=0x0###[IID_00_Service9SupportedInformationTypes]###supported_iids=IID0A+IID08+IID06+IID04+IID02>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0xa),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S09(iid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S0(pid=0x0),verbose=False).show()iid=0xa###[IID_0A_EcuName]###count=1ecu_names=['ECM\x00-EngineControl']>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x0),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x),verbose=False).show()service=CurrentPowertrainDiagnosticDataResponse###[Parameter IDs]###\data_records\|###[OBD_S01_PID_Record]###|pid=0x0|###[PID_00_PIDsSupported]###|supported_pids=PID20+PID1F+PID1C+PID15+PID14+PID13+PID11+PID10+PID0F+PID0E+PID0D+PID0C+PID0B+PID0A+PID07+PID06+PID05+PID04+PID03+PID01>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0x5),verbose=False).show()|pid=0x5|###[PID_05_EngineCoolantTemperature]###|data=19.0 deg. C>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xD),verbose=False).show()|pid=0xd|###[PID_0D_VehicleSpeed]###|data=0 km/h>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xE),verbose=False).show()|pid=0xe|###[PID_0E_TimingAdvance]###|data=3.0 deg.>>>sock.sr1(OBD()/OBD_S01(pid=0xC),verbose=False).show()>>>sock.sr1(OBD()/OBD_S01(pid=0xC),verbose=False).show()|pid=0xc|###[PID_0C_EngineRpm]###|data=0.0 min-1>>>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-rdcandump.svg b/doc/scapy/graphics/animations/animation-scapy-rdcandump.svg
index 5c2a3220ad5..bbb94c8619a 100755
--- a/doc/scapy/graphics/animations/animation-scapy-rdcandump.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-rdcandump.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- [0] 0:bash* "scapy " 07:47 23-Jan-19[cars@scapy folders 2019]$ [cars@scapy folders 2019]$ c [cars@scapy folders 2019]$ ca [cars@scapy folders 2019]$ can [cars@scapy folders 2019]$ cand [cars@scapy folders 2019]$ candu [cars@scapy folders 2019]$ candump [cars@scapy folders 2019]$ candump - [cars@scapy folders 2019]$ candump -l [cars@scapy folders 2019]$ candump -l [cars@scapy folders 2019]$ candump -l v [cars@scapy folders 2019]$ candump -l vc [cars@scapy folders 2019]$ candump -l vca [cars@scapy folders 2019]$ candump -l vcan [cars@scapy folders 2019]$ candump -l vcan0 [0] 0:bash* "cars@scapy :~/repos/t" 07:47 23-Jan-19^C[cars@scapy folders 2019]$ ^C[cars@scapy folders 2019]$ c [0] 0:candump* "cars@scapy :~/repos/t" 07:47 23-Jan-19^C[cars@scapy folders 2019]$ ca ^C[cars@scapy folders 2019]$ can ^C[cars@scapy folders 2019]$ cant ^C[cars@scapy folders 2019]$ cant ^C[cars@scapy folders 2019]$ cant c ^C[cars@scapy folders 2019]$ cant ca ^C[cars@scapy folders 2019]$ cat ^C[cars@scapy folders 2019]$ cat ^C[cars@scapy folders 2019]$ cat c ^C[cars@scapy folders 2019]$ cat ca ^C[cars@scapy folders 2019]$ cat can ^C[cars@scapy folders 2019]$ cat candump-2019-01-23_074738.log [cars@scapy folders 2019]$ s [cars@scapy folders 2019]$ sc [cars@scapy folders 2019]$ sca [cars@scapy folders 2019]$ scap [cars@scapy folders 2019]$ candump -l vcan0 Disabled standard output while logging. Enabling Logfile 'candump-2019-01-23_074738.log' (1548226058.287753) vcan0 09E#07B1307888 (1548226058.487865) vcan0 4E2#23DB05786383B36C-01-23_074738.log (1548226058.687980) vcan0 0EF#18222F1D187A7260 (1548226058.888091) vcan0 265#2C19CB7686B1C527 (1548226059.088203) vcan0 5B1#B908E70B7E806364 (1548226059.288277) vcan0 6AF#1354792889098308 (1548226059.488383) vcan0 738#7F68B03C8B (1548226059.688491) vcan0 73F#D2C3EE25DD577B3A (1548226059.888596) vcan0 7D4#66AC8C69B6D43B50 (1548226060.088679) vcan0 6D2#1958EF3CC10F2E58 (1548226060.288760) vcan0 554#D9 (1548226060.488840) vcan0 4F0#40B95B21A1EA (1548226060.688936) vcan0 584#1F6BE80933342E14 (1548226060.889275) vcan0 713#BC3DB1 (1548226061.089386) vcan0 2B8#D731327AF7210712 (1548226061.289495) vcan0 34B#D579824C1FF3276B (1548226061.489601) vcan0 282#D6C7633B54412149 (1548226061.689709) vcan0 5C4#15514F2118D3632F [cars@scapy folders 2019]$ scapy [cars@scapy folders 2019]$ scapy spCPY//////Y15514F2118D3632F INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). 6383B36C-01-23_074738.log aSPY//YASa 187A7260 apyyyyCY//////////YCa |C527 sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y |3B50 A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft packets like it is your last scccccp///pSP///p p//Y | day on earth. sY/////////y caa S//P | -- Lao-Tze cayCyayP//Ya pY/Ya |0712 sY/PsY////YCc aC//Yp 1FF3276B sc sccaCY//PCypaapyCP//YSs 54412149 spCPY//////YPSps 18D3632F ccaacs using IPython 7.1.1dfdump().>>> [0] 0:python3.7* "cars@scapy :~/repos/t" 07:47 23-Jan-19>>> I-search backward: >>> load_layer("can") I-search backward: l >>> load_layer("can") I-search backward: lo >>> load_layer("can") I-search backward: loa >>> load_layer("can") I-search backward: load >>> load_layer("can") >>> p >>> pk >>> pkt >>> pkts >>> pkts >>> pkts = >>> pkts = >>> pkts = r >>> pkts = rd >>> pkts = rdc >>> pkts = rdca >>> pkts = rdcan >>> pkts = rdcand >>> pkts = rdcandu >>> pkts = rdcandum >>> pkts = rdcandump >>> pkts = rdcandump( >>> pkts = rdcandump(" >>> pkts = rdcandump("c >>> pkts = rdcandump("cn >>> load_layer("can") >>> pkts = rdcandump("ca [0] 0:python3.7* "cars@scapy :~/repos/t" 07:48 23-Jan-19 callable %%capture >>> pkts = rdcandump("callable callable %%capture candump-2019-01-23_074738.log %cat >>> pkts = rdcandump("candump-2019-01-23_074738.log candump-2019-01-23_074738.log %cat capability_list <unknown> >>> pkts = rdcandump("candump-2019-01-23_074738.log" >>> pkts = rdcandump("candump-2019-01-23_074738.log") >>> pkts = rdcandump("candump-2019-01-23_074738.log") [<CAN identifier=0x9e length=5 data='\x07\xb10x\x88' |>, <CAN identifier=0x4e2 length=8 data='#\xdb\x05xc\x83\xb3l' |>, <CAN identifier=0xef length=8 data='\x18"/\x1d\x18zr`' |>, <CAN identifier=0x265 length=8 data=",\x19\xcbv\x86\xb1\xc5'" |>, your last <CAN identifier=0x5b1 length=8 data='\xb9\x08\xe7\x0b~\x80cd' |>, <CAN identifier=0x6af length=8 data='\x13Ty(\x89\t\x83\x08' |>,- Lao-Tze <CAN identifier=0x738 length=5 data='\x7fh\xb0<\x8b' |>, <CAN identifier=0x73f length=8 data='\xd2\xc3\xee%\xddW{:' |>, <CAN identifier=0x7d4 length=8 data='f\xac\x8ci\xb6\xd4;P' |>, <CAN identifier=0x6d2 length=8 data='\x19X\xef<\xc1\x0f.X' |>, <CAN identifier=0x554 length=1 data='\xd9' |>, <CAN identifier=0x4f0 length=6 data='@\xb9[!\xa1\xea' |>,fdump(). <CAN identifier=0x584 length=8 data='\x1fk\xe8\t34.\x14' |>, <CAN identifier=0x713 length=3 data='\xbc=\xb1' |>, <CAN identifier=0x2b8 length=8 data='\xd712z\xf7!\x07\x12' |>, <CAN identifier=0x34b length=8 data="\xd5y\x82L\x1f\xf3'k" |>, <CAN identifier=0x282 length=8 data='\xd6\xc7c;TA!I' |>, <CAN identifier=0x5c4 length=8 data='\x15QO!\x18\xd3c/' |>] >>> [exited]
-
\ No newline at end of file
+[0] 0:bash* "scapy " 07:47 23-Jan-19[cars@scapyfolders 2019]$[cars@scapyfolders 2019]$c[cars@scapyfolders 2019]$ca[cars@scapyfolders 2019]$can[cars@scapyfolders 2019]$cand[cars@scapyfolders 2019]$candu[cars@scapyfolders 2019]$candump[cars@scapyfolders 2019]$candump -[cars@scapyfolders 2019]$candump -l[cars@scapyfolders 2019]$candump -l[cars@scapyfolders 2019]$candump -l v[cars@scapyfolders 2019]$candump -l vc[cars@scapyfolders 2019]$candump -l vca[cars@scapyfolders 2019]$candump -l vcan[cars@scapyfolders 2019]$candump -l vcan0[0] 0:bash* "cars@scapy :~/repos/t" 07:47 23-Jan-19^C[cars@scapyfolders 2019]$^C[cars@scapyfolders 2019]$c[0] 0:candump* "cars@scapy :~/repos/t" 07:47 23-Jan-19^C[cars@scapyfolders 2019]$ca^C[cars@scapyfolders 2019]$can^C[cars@scapyfolders 2019]$cant^C[cars@scapyfolders 2019]$cant^C[cars@scapyfolders 2019]$cant c^C[cars@scapyfolders 2019]$cant ca^C[cars@scapyfolders 2019]$cat^C[cars@scapyfolders 2019]$cat^C[cars@scapyfolders 2019]$cat c^C[cars@scapyfolders 2019]$cat ca^C[cars@scapyfolders 2019]$cat can^C[cars@scapyfolders 2019]$cat candump-2019-01-23_074738.log[cars@scapyfolders 2019]$s[cars@scapyfolders 2019]$sc[cars@scapyfolders 2019]$sca[cars@scapyfolders 2019]$scap[cars@scapyfolders 2019]$candump -l vcan0Disabled standard output while logging.Enabling Logfile 'candump-2019-01-23_074738.log'(1548226058.287753) vcan0 09E#07B1307888(1548226058.487865) vcan0 4E2#23DB05786383B36C-01-23_074738.log(1548226058.687980) vcan0 0EF#18222F1D187A7260(1548226058.888091) vcan0 265#2C19CB7686B1C527(1548226059.088203) vcan0 5B1#B908E70B7E806364(1548226059.288277) vcan0 6AF#1354792889098308(1548226059.488383) vcan0 738#7F68B03C8B(1548226059.688491) vcan0 73F#D2C3EE25DD577B3A(1548226059.888596) vcan0 7D4#66AC8C69B6D43B50(1548226060.088679) vcan0 6D2#1958EF3CC10F2E58(1548226060.288760) vcan0 554#D9(1548226060.488840) vcan0 4F0#40B95B21A1EA(1548226060.688936) vcan0 584#1F6BE80933342E14(1548226060.889275) vcan0 713#BC3DB1(1548226061.089386) vcan0 2B8#D731327AF7210712(1548226061.289495) vcan0 34B#D579824C1FF3276B(1548226061.489601) vcan0 282#D6C7633B54412149(1548226061.689709) vcan0 5C4#15514F2118D3632F[cars@scapyfolders 2019]$scapy[cars@scapyfolders 2019]$scapyspCPY//////Y15514F2118D3632FINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().6383B36C-01-23_074738.logaSPY//YASa187A7260apyyyyCY//////////YCa|C527sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|3B50A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft packets like it is your lastscccccp///pSP///p p//Y| day on earth.sY/////////y caa S//P| -- Lao-TzecayCyayP//Ya pY/Ya|0712sY/PsY////YCc aC//Yp1FF3276Bsc sccaCY//PCypaapyCP//YSs54412149spCPY//////YPSps18D3632Fccaacsusing IPython 7.1.1dfdump().>>>[0] 0:python3.7* "cars@scapy :~/repos/t" 07:47 23-Jan-19>>>I-search backward:>>>load_layer("can")I-search backward:l>>>load_layer("can")I-search backward:lo>>>load_layer("can")I-search backward:loa>>>load_layer("can")I-search backward:load>>>load_layer("can")>>>p>>>pk>>>pkt>>>pkts>>>pkts>>>pkts =>>>pkts =>>>pkts = r>>>pkts = rd>>>pkts = rdc>>>pkts = rdca>>>pkts = rdcan>>>pkts = rdcand>>>pkts = rdcandu>>>pkts = rdcandum>>>pkts = rdcandump>>>pkts = rdcandump(>>>pkts = rdcandump(">>>pkts = rdcandump("c>>>pkts = rdcandump("cn>>>load_layer("can")>>>pkts = rdcandump("ca[0] 0:python3.7* "cars@scapy :~/repos/t" 07:48 23-Jan-19callable %%capture>>>pkts = rdcandump("callablecallable%%capturecandump-2019-01-23_074738.log %cat>>>pkts = rdcandump("candump-2019-01-23_074738.logcandump-2019-01-23_074738.log%catcapability_list<unknown>>>>pkts = rdcandump("candump-2019-01-23_074738.log">>>pkts = rdcandump("candump-2019-01-23_074738.log")>>>pkts = rdcandump("candump-2019-01-23_074738.log")[<CANidentifier=0x9elength=5data='\x07\xb10x\x88'|>,<CANidentifier=0x4e2length=8data='#\xdb\x05xc\x83\xb3l'|>,<CANidentifier=0xeflength=8data='\x18"/\x1d\x18zr`'|>,<CANidentifier=0x265length=8data=",\x19\xcbv\x86\xb1\xc5'"|>,your last<CANidentifier=0x5b1length=8data='\xb9\x08\xe7\x0b~\x80cd'|>,<CANidentifier=0x6aflength=8data='\x13Ty(\x89\t\x83\x08'|>,- Lao-Tze<CANidentifier=0x738length=5data='\x7fh\xb0<\x8b'|>,<CANidentifier=0x73flength=8data='\xd2\xc3\xee%\xddW{:'|>,<CANidentifier=0x7d4length=8data='f\xac\x8ci\xb6\xd4;P'|>,<CANidentifier=0x6d2length=8data='\x19X\xef<\xc1\x0f.X'|>,<CANidentifier=0x554length=1data='\xd9'|>,<CANidentifier=0x4f0length=6data='@\xb9[!\xa1\xea'|>,fdump().<CANidentifier=0x584length=8data='\x1fk\xe8\t34.\x14'|>,<CANidentifier=0x713length=3data='\xbc=\xb1'|>,<CANidentifier=0x2b8length=8data='\xd712z\xf7!\x07\x12'|>,<CANidentifier=0x34blength=8data="\xd5y\x82L\x1f\xf3'k"|>,<CANidentifier=0x282length=8data='\xd6\xc7c;TA!I'|>,<CANidentifier=0x5c4length=8data='\x15QO!\x18\xd3c/'|>]>>>[exited]
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-rdpcap.svg b/doc/scapy/graphics/animations/animation-scapy-rdpcap.svg
index 2018f7a841f..589c15c4c5b 100755
--- a/doc/scapy/graphics/animations/animation-scapy-rdpcap.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-rdpcap.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- cars@scapy ~/r/t/a/p/folders 2019> cars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump cars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump cars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump cars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump cars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump [sudo] password for cars: cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy cars@scapy ~/r/t/a/p/folders 2019> scapy Welcome to fish, the friendly interactive shellcars@scapy ~/r/t/a/p/folders 2019> sudo tcpdump -i vcan0 -w output.dump [sudo] password for cars: tcpdump: listening on vcan0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes^C30 packets captured38 packets received by filter0 packets dropped by kernelcars@scapy ~/r/t/a/p/folders 2019> scapy INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().>>> aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev689 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Craft packets before they craft scccccp///pSP///p p//Y | you. sY/////////y caa S//P | -- Socrate cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> I-search backward: >>> load_layer("can") I-search backward: l >>> load_layer("can") I-search backward: lo >>> load_layer("can") I-search backward: loa >>> load_layer("can") I-search backward: load >>> load_layer("can") >>> load_layer("can") >>> load_layer("can") I-search backward: c >>> conf.contribs["CAN"] = {'swap-bytes': True} I-search backward: co >>> conf.contribs["CAN"] = {'swap-bytes': True} I-search backward: con >>> conf.contribs["CAN"] = {'swap-bytes': True} >>> conf.contribs["CAN"] = {'swap-bytes': True} >>> conf.contribs["CAN"] = {'swap-bytes': True} I-search backward: p >>> for x in pkts: I-search backward: pk >>> for x in pkts: I-search backward: pkt >>> for x in pkts: ...: print(x[1].__repr__()) I-search backward: pkts >>> pkts = rdpcap("output.dump") I-search backward: pkts I-search backward: pkts = >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> pkts = rdpcap("output.dump") >>> conf.contribs["CAN"] = {'swap-bytes': True} I-search backward: f I-search backward: fo >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: >>> for x in pkts: ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: print(x[1].__repr__()) ...: >>> for x in pkts: ...: <CAN flags= identifier=0x1c length=8 reserved=0 data='\xc0\xf4\x11a\xfb\x18)f' |> <CAN flags= identifier=0x1c length=8 reserved=0 data='\xc0\xf4\x11a\xfb\x18)f' |><CAN flags= identifier=0x36f length=4 reserved=0 data='w\xb5\x91\x02' |<Padding load='\x00\x00\x00\x00' |>><CAN flags= identifier=0x617 length=6 reserved=0 data='\xef;/|\xb9\xaa' |<Padding load='\x00\x00' |>><CAN flags= identifier=0x723 length=8 reserved=0 data='\x08\xc0o4\xdc\xd6\xddX' |><CAN flags= identifier=0x5b9 length=8 reserved=0 data='L\xaf\xc8,\xc0H\x1fP' |><CAN flags= identifier=0x6fe length=0 reserved=0 data='' |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00' |>><CAN flags= identifier=0x52a length=8 reserved=0 data='\x89R\xfcl\x12\xcb\x02M' |><CAN flags= identifier=0x22f length=5 reserved=0 data='\xb0\x14t\x1fL' |<Padding load='\x00\x00\x00' |>><CAN flags= identifier=0x22f length=5 reserved=0 da <CAN flags= identifier=0x6be length=1 reserved=0 data='G' |<Padding load='\x00\x00\x00\x00\x00\x00<CAN flags= identifier=0xd5 length=8 reserved=0 data <CAN flags= identifier=0xd5 length=8 reserved=0 data='y\x1f+m\xed&\xd1"' |><CAN flags= identifier=0x4c5 length=8 reserved=0 data='\xa6\xd1>-\xe8\x8by:' |><CAN flags= identifier=0x1e1 length=8 reserved=0 data='\xc4bW\x13\x9a\xef! <CAN flags= identifier=0x1e1 length=8 reserved=0 data='\xc4bW\x13\x9a\xef!{' |><CAN flags= identifier=0xca length=0 reserved=0 data='' |<Padding load='\x00\x00\x00\x00\x00\x00\x00\x00' |>><CAN flags= <CAN flags= identifier=0x780 length=8 reserved=0 data='\\\xa3\x0fM\xaa4dI' |><CAN flags= identifier=0x456 length=6 reserved=0 data='\xbd\xfff\x16\x85\xae' |<Padding load='\x00<CAN flags= identifier=0x456 length=6 reserved=0 data='\xbd\xfff\x16\x85\xae' |< >>> e >>> ex >>> exi >>> exit >>> exit cars@scapy ~/r/t/a/p/folders 2019>
-
\ No newline at end of file
+cars@scapy~/r/t/a/p/folders 2019>cars@scapy~/r/t/a/p/folders 2019>sudo tcpdump -i vcan0 -w output.dumpcars@scapy~/r/t/a/p/folders 2019>sudo tcpdump -i vcan0 -w output.dumpcars@scapy~/r/t/a/p/folders 2019>sudotcpdump -i vcan0 -w output.dumpcars@scapy~/r/t/a/p/folders 2019>sudotcpdump -i vcan0 -w output.dumpcars@scapy~/r/t/a/p/folders 2019>sudotcpdump-ivcan0-woutput.dump[sudo] password for cars:cars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapycars@scapy~/r/t/a/p/folders 2019>scapyWelcome to fish, the friendly interactive shellcars@scapy~/r/t/a/p/folders 2019>sudotcpdump-ivcan0-woutput.dump[sudo] password for cars:tcpdump: listening on vcan0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes^C30 packets captured38 packets received by filter0 packets dropped by kernelcars@scapy~/r/t/a/p/folders 2019>scapyINFO: Can't import PyX. Won't be able to use psdump() or pdfdump().>>>aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev689AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Craft packets before they craftscccccp///pSP///p p//Y| you.sY/////////y caa S//P| -- SocratecayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>I-search backward:>>>load_layer("can")I-search backward:l>>>load_layer("can")I-search backward:lo>>>load_layer("can")I-search backward:loa>>>load_layer("can")I-search backward:load>>>load_layer("can")>>>load_layer("can")>>>load_layer("can")I-search backward:c>>>conf.contribs["CAN"] = {'swap-bytes':True}I-search backward:co>>>conf.contribs["CAN"] = {'swap-bytes':True}I-search backward:con>>>conf.contribs["CAN"] = {'swap-bytes':True}>>>conf.contribs["CAN"] = {'swap-bytes':True}>>>conf.contribs["CAN"] = {'swap-bytes':True}I-search backward:p>>>forxinpkts:I-search backward:pk>>>forxinpkts:I-search backward:pkt>>>forxinpkts:...:print(x[1].__repr__())I-search backward:pkts>>>pkts= rdpcap("output.dump")I-search backward:pktsI-search backward:pkts =>>>pkts =rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts= rdpcap("output.dump")>>>pkts= rdpcap("output.dump")>>>pkts=rdpcap("output.dump")>>>pkts =rdpcap("output.dump")>>>pkts =rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>pkts = rdpcap("output.dump")>>>conf.contribs["CAN"] = {'swap-bytes':True}I-search backward:fI-search backward:fo>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:>>>forxinpkts:...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:print(x[1].__repr__())...:>>>forxinpkts:...:<CANflags=identifier=0x1clength=8reserved=0data='\xc0\xf4\x11a\xfb\x18)f'|><CANflags=identifier=0x1clength=8reserved=0data='\xc0\xf4\x11a\xfb\x18)f'|><CANflags=identifier=0x36flength=4reserved=0data='w\xb5\x91\x02'|<Paddingload='\x00\x00\x00\x00'|>><CANflags=identifier=0x617length=6reserved=0data='\xef;/|\xb9\xaa'|<Paddingload='\x00\x00'|>><CANflags=identifier=0x723length=8reserved=0data='\x08\xc0o4\xdc\xd6\xddX'|><CANflags=identifier=0x5b9length=8reserved=0data='L\xaf\xc8,\xc0H\x1fP'|><CANflags=identifier=0x6felength=0reserved=0data=''|<Paddingload='\x00\x00\x00\x00\x00\x00\x00\x00'|>><CANflags=identifier=0x52alength=8reserved=0data='\x89R\xfcl\x12\xcb\x02M'|><CANflags=identifier=0x22flength=5reserved=0data='\xb0\x14t\x1fL'|<Paddingload='\x00\x00\x00'|>><CANflags=identifier=0x22flength=5reserved=0da<CANflags=identifier=0x6belength=1reserved=0data='G'|<Paddingload='\x00\x00\x00\x00\x00\x00<CANflags=identifier=0xd5length=8reserved=0data<CANflags=identifier=0xd5length=8reserved=0data='y\x1f+m\xed&\xd1"'|><CANflags=identifier=0x4c5length=8reserved=0data='\xa6\xd1>-\xe8\x8by:'|><CANflags=identifier=0x1e1length=8reserved=0data='\xc4bW\x13\x9a\xef!<CANflags=identifier=0x1e1length=8reserved=0data='\xc4bW\x13\x9a\xef!{'|><CANflags=identifier=0xcalength=0reserved=0data=''|<Paddingload='\x00\x00\x00\x00\x00\x00\x00\x00'|>><CANflags=<CANflags=identifier=0x780length=8reserved=0data='\\\xa3\x0fM\xaa4dI'|><CANflags=identifier=0x456length=6reserved=0data='\xbd\xfff\x16\x85\xae'|<Paddingload='\x00<CANflags=identifier=0x456length=6reserved=0data='\xbd\xfff\x16\x85\xae'|<>>>e>>>ex>>>exi>>>exit>>>exitcars@scapy~/r/t/a/p/folders 2019>
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-themes-demo.gif b/doc/scapy/graphics/animations/animation-scapy-themes-demo.gif
index 5a7a8331db8..1a149f4fb92 100755
Binary files a/doc/scapy/graphics/animations/animation-scapy-themes-demo.gif and b/doc/scapy/graphics/animations/animation-scapy-themes-demo.gif differ
diff --git a/doc/scapy/graphics/animations/animation-scapy-uds.svg b/doc/scapy/graphics/animations/animation-scapy-uds.svg
index 1cf4f4c671e..c0a0290aeed 100755
--- a/doc/scapy/graphics/animations/animation-scapy-uds.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-uds.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> onf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: l >>> load_contrib("automotive.uds") I-search backward: lo >>> load_contrib("automotive.uds") I-search backward: loa >>> load_contrib("automotive.uds") I-search backward: load >>> load_contrib("automotive.uds") >>> load_contrib("automotive.uds") I-search backward: c >>> load_contrib("automotive.uds") I-search backward: co >>> load_contrib("automotive.uds") I-search backward: con >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: conf >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> load_contrib("automotive.uds") I-search backward: load_ >>> load_contrib("automotive.uds") I-search backward: load_c I-search backward: load_co I-search: load_co >>> load_contrib("automotive.uds") >>> load_contrib("automotive.uds") I-search backward: load_cot >>> load_contrib("automotive.uds") I-search backward: load_con >>> load_contrib("automotive.uds") I-search backward: load_cont >>> load_contrib("automotive.uds") I-search backward: load_contr >>> load_contrib("automotive.uds") I-search backward: load_contri >>> load_contrib("automotive.uds") I-search backward: load_contrib >>> load_contrib("automotive.uds") I-search backward: load_contrib( >>> load_contrib("automotive.uds") I-search backward: load_contrib(" >>> load_contrib("isotp") I-search backward: load_contrib("i >>> load_contrib("isotp") INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev709 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | We are in France, we say Skappee. scccccp///pSP///p p//Y | OK? Merci. sY/////////y caa S//P | -- Sebastien Chabal cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> load_contrib("isotp") >>> load_contrib("isotp") I-search backward: s >>> load_contrib("isotp") I-search backward: so >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: soc >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: sock = I-search backward: sock = >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> s >>> so >>> soc >>> sock >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: U >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: UD >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: UDS >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS( >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS() >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS()/ >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS()/U >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS()/UD >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS()/UDS >>> sock.sr1(UDS()/UDS_SA(),verbose=False) I-search backward: UDS()/UDS_ >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) I-search backward: UDS()/UDS_E >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) I-search backward: UDS()/UDS_ER >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0x),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=0),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType=),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetType),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetTyp),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetTy),verbose=False) >>> sock.sr1(UDS()/UDS_ER(resetT),verbose=False) >>> sock.sr1(UDS()/UDS_ER(reset),verbose=False) >>> sock.sr1(UDS()/UDS_ER(rese),verbose=False) >>> sock.sr1(UDS()/UDS_ER(res),verbose=False) >>> sock.sr1(UDS()/UDS_ER(re),verbose=False) >>> sock.sr1(UDS()/UDS_ER(r),verbose=False) >>> sock.sr1(UDS()/UDS_ER(),verbose=False) >>> sock.sr1(UDS()/UDS_ER(),verbose=False) >>> sock.sr1(UDS()/UDS_E(),verbose=False) >>> sock.sr1(UDS()/UDS_(),verbose=False) >>> sock.sr1(UDS()/UDS_T(),verbose=False) <UDS service=ECUResetPositiveResponse |<UDS_ERPR resetType=hardReset |>> >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_TP(),verbose=False) >>> sock.sr1(UDS()/UDS_R(),verbose=False) >>> sock.sr1(UDS()/UDS_RD(),verbose=False) >>> sock.sr1(UDS()/UDS_RDB(),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(a),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(d),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(da),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(i),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(id),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(ide),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(iden),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(ident),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identi),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identif),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifi),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifie),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifier),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x10),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x100),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000),verbose=False) <UDS service=TesterPresentPositiveResponse |<UDS_TPPR zeroSubFunction=0 |>> >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x100]),verbose=False) <UDS service=ReadDataByIdentifierPositiveResponse |<UDS_RDBIPR dataIdentifier=0x1000 |<Raw load='\xff\xff\xff' |>>> >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False) >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False) >>> e >>> ex >>> exi <UDS service=NegativeResponse |<UDS_NRC requestServiceId=ReadDataByIdentifier negativeResponseCode=requestOutOfRange |>>>>> exit >>> exit
-
\ No newline at end of file
+>>>>>>I-search backward:>>>onf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:l>>>load_contrib("automotive.uds")I-search backward:lo>>>load_contrib("automotive.uds")I-search backward:loa>>>load_contrib("automotive.uds")I-search backward:load>>>load_contrib("automotive.uds")>>>load_contrib("automotive.uds")I-search backward:c>>>load_contrib("automotive.uds")I-search backward:co>>>load_contrib("automotive.uds")I-search backward:con>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:conf>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>load_contrib("automotive.uds")I-search backward:load_>>>load_contrib("automotive.uds")I-search backward:load_cI-search backward:load_coI-search:load_co>>>load_contrib("automotive.uds")>>>load_contrib("automotive.uds")I-search backward:load_cot>>>load_contrib("automotive.uds")I-search backward:load_con>>>load_contrib("automotive.uds")I-search backward:load_cont>>>load_contrib("automotive.uds")I-search backward:load_contr>>>load_contrib("automotive.uds")I-search backward:load_contri>>>load_contrib("automotive.uds")I-search backward:load_contrib>>>load_contrib("automotive.uds")I-search backward:load_contrib(>>>load_contrib("automotive.uds")I-search backward:load_contrib(">>>load_contrib("isotp")I-search backward:load_contrib("i>>>load_contrib("isotp")INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev709AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| We are in France, we say Skappee.scccccp///pSP///p p//Y| OK? Merci.sY/////////y caa S//P| -- Sebastien ChabalcayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>load_contrib("isotp")>>>load_contrib("isotp")I-search backward:s>>>load_contrib("isotp")I-search backward:so>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:soc>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:sock>>>sock= ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:sock>>>sock =ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:sock =I-search backward:sock =>>>sock =ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>s>>>so>>>soc>>>sock>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:U>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:UD>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:UDS>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS(>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()/>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()/U>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()/UD>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()/UDS>>>sock.sr1(UDS()/UDS_SA(),verbose=False)I-search backward:UDS()/UDS_>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)I-search backward:UDS()/UDS_E>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)I-search backward:UDS()/UDS_ER>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x1),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0x),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=0),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType=),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetType),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetTyp),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetTy),verbose=False)>>>sock.sr1(UDS()/UDS_ER(resetT),verbose=False)>>>sock.sr1(UDS()/UDS_ER(reset),verbose=False)>>>sock.sr1(UDS()/UDS_ER(rese),verbose=False)>>>sock.sr1(UDS()/UDS_ER(res),verbose=False)>>>sock.sr1(UDS()/UDS_ER(re),verbose=False)>>>sock.sr1(UDS()/UDS_ER(r),verbose=False)>>>sock.sr1(UDS()/UDS_ER(),verbose=False)>>>sock.sr1(UDS()/UDS_ER(),verbose=False)>>>sock.sr1(UDS()/UDS_E(),verbose=False)>>>sock.sr1(UDS()/UDS_(),verbose=False)>>>sock.sr1(UDS()/UDS_T(),verbose=False)<UDSservice=ECUResetPositiveResponse|<UDS_ERPRresetType=hardReset|>>>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_TP(),verbose=False)>>>sock.sr1(UDS()/UDS_R(),verbose=False)>>>sock.sr1(UDS()/UDS_RD(),verbose=False)>>>sock.sr1(UDS()/UDS_RDB(),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(a),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(d),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(da),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(i),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(id),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(ide),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(iden),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(ident),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identi),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identif),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifi),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifie),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifier),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x10),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x100),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000),verbose=False)<UDSservice=TesterPresentPositiveResponse|<UDS_TPPRzeroSubFunction=0|>>>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1000]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x100]),verbose=False)<UDSservice=ReadDataByIdentifierPositiveResponse|<UDS_RDBIPRdataIdentifier=0x1000|<Rawload='\xff\xff\xff'|>>>>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False)>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False)>>>e>>>ex>>>exi<UDSservice=NegativeResponse|<UDS_NRCrequestServiceId=ReadDataByIdentifiernegativeResponseCode=requestOutOfRange|>>>>>exit>>>exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-uds2.svg b/doc/scapy/graphics/animations/animation-scapy-uds2.svg
index a2b91759eb7..15543ce9903 100755
--- a/doc/scapy/graphics/animations/animation-scapy-uds2.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-uds2.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> load_contrib("isotp") I-search backward: c >>> load_contrib("isotp") I-search backward: co >>> load_contrib("isotp") I-search backward: con >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: conf >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} I-search backward: l >>> load_contrib("isotp") I-search backward: lo >>> load_contrib("isotp") I-search backward: loa >>> load_contrib("isotp") I-search backward: load >>> load_contrib("isotp") I-search backward: load_ >>> load_contrib("isotp") >>> load_contrib("isotp") I-search backward: load_c >>> load_contrib("isotp") I-search backward: load_co >>> load_contrib("isotp") I-search backward: load_con >>> load_contrib("isotp") I-search backward: load_cont >>> load_contrib("isotp") I-search backward: load_contr >>> load_contrib("isotp") I-search backward: load_contri >>> load_contrib("isotp") I-search backward: load_contrib >>> load_contrib("isotp") I-search backward: load_contrib( >>> load_contrib("isotp") I-search backward: load_contrib(" >>> load_contrib("automotive.uds") I-search backward: load_contrib("a >>> load_contrib("automotive.uds") I-search backward: load_contrib("au >>> load_contrib("automotive.uds") INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev709 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | Wanna support scapy? Rate it on scccccp///pSP///p p//Y | sectools! sY/////////y caa S//P | http://sectools.org/tool/scapy/ cayCyayP//Ya pY/Ya | -- Satoshi Nakamoto sY/PsY////YCc aC//Yp | sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module': True} >>> load_contrib("isotp") >>> load_contrib("automotive.uds") >>> load_contrib("automotive.uds") I-search backward: s >>> load_contrib("isotp") I-search backward: so >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False) I-search backward: soc >>> sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False) I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: sock >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: sock = >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) I-search backward: sock = >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> l >>> ls >>> ls( >>> ls(U >>> ls(UD >>> ls(UDS >>> ls(UDS_ >>> ls(UDS_S >>> ls(UDS_SA >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> ls(UDS_SA) >>> s >>> so >>> soc >>> sock >>> sock. >>> sock.s >>> sock.sr >>> sock.sr1 >>> sock.sr1( >>> sock.sr1(U >>> sock.sr1(UD >>> sock.sr1(UDS >>> sock.sr1(UDS( >>> sock.sr1(UDS() >>> sock.sr1(UDS()? >>> sock.sr1(UDS()/ >>> sock.sr1(UDS()/U >>> sock.sr1(UDS()/UD >>> sock.sr1(UDS()/UDS >>> sock.sr1(UDS()/UDS( >>> sock.sr1(UDS()/UDS_ >>> sock.sr1(UDS()/UDS_S >>> sock.sr1(UDS()/UDS_SA >>> sock.sr1(UDS()/UDS_SA( >>> sock.sr1(UDS()/UDS_SA(s >>> sock.sr1(UDS()/UDS_SA(se >>> sock.sr1(UDS()/UDS_SA(sec >>> sock.sr1(UDS()/UDS_SA(secu >>> sock.sr1(UDS()/UDS_SA(secur >>> sock.sr1(UDS()/UDS_SA(securi >>> sock.sr1(UDS()/UDS_SA(securit >>> sock.sr1(UDS()/UDS_SA(security >>> sock.sr1(UDS()/UDS_SA(securityA >>> sock.sr1(UDS()/UDS_SA(securityAc >>> sock.sr1(UDS()/UDS_SA(securityAcc >>> sock.sr1(UDS()/UDS_SA(securityAcce >>> sock.sr1(UDS()/UDS_SA(securityAcces >>> sock.sr1(UDS()/UDS_SA(securityAccess >>> sock.sr1(UDS()/UDS_SA(securityAccessT >>> sock.sr1(UDS()/UDS_SA(securityAccessTy >>> sock.sr1(UDS()/UDS_SA(securityAccessTyp >>> sock.sr1(UDS()/UDS_SA(securityAccessType >>> sock.sr1(UDS()/UDS_SA(securityAccessType= >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0 >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3 >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3), >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),v >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),ve >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),ver >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verb >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbo >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbos >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose= >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=F >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fa >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fal >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fale >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fals >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False >>> ls(UDS_SA) securityAccessType : ByteField = (0) securityAccessDataRecord : StrField (Cond) = (b'')securityKey : StrField (Cond) = (b'')>>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> ls(UDS_D >>> ls(UDS_DS >>> ls(UDS_DSC <UDS service=NegativeResponse |<UDS_NRC requestServiceId=SecurityAccess negativeResponseCode=serviceNotSupportedInActiveSession |>>>>> ls(UDS_DSC) >>> U >>> UD >>> UDS >>> UDS_ >>> UDS_D >>> UDS_DS >>> UDS_DSC >>> UDS_DSC. >>> UDS_DSC.d >>> ls(UDS_DSC) diagnosticSessionType : ByteEnumField = (0) >>> UDS_DSC.di UDS_DSC.diagnosticSessionTypes UDS_DSC.dissect >>> UDS_DSC.diagnosticSessionTypes UDS_DSC.diagnosticSessionTypes UDS_DSC.dissect UDS_DSC.direction UDS_DSC.dissection_done UDS_DSC.display <unknown> >>> UDS_DSC.diagnosticSessionTypes >>> sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccesType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAcceType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAccType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAcType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityAType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securityType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securitType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securiType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(securType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(secuType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(secType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(seType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(sType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(Type=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(dType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diaType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnoType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnostType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnostiType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSeType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSesType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSesseType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessiType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessioType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_S(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_D(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_DS(diagnosticSessionType=0x3),verbose=False) {0: 'ISOSAEReserved', 1: 'defaultSession', 2: 'programmingSession', 3: 'extendedDiagnosticSession', 4: 'safetySystemDiagnosticSession', 127: 'ISOSAEReserved'}>>> sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False) >>> sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False) <UDS service=DiagnosticSessionControlPositiveResponse |<UDS_DSCPR diagnosticSessionType=extendedDiagnosticSession sessionParameterRecord='\x002\x01\xf4' |>>>>> e >>> ex >>> exi <UDS service=SecurityAccessPositiveResponse |<UDS_SAPR securityAccessType=3 securitySeed='\x1aP\xa8\xea\xaa\xa0\x16\xc6\x06h<\x1aXF\xe0J\x8atD8' |>>>>> exit >>> exit
-
\ No newline at end of file
+>>>>>>I-search backward:>>>load_contrib("isotp")I-search backward:c>>>load_contrib("isotp")I-search backward:co>>>load_contrib("isotp")I-search backward:con>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:conf>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}I-search backward:l>>>load_contrib("isotp")I-search backward:lo>>>load_contrib("isotp")I-search backward:loa>>>load_contrib("isotp")I-search backward:load>>>load_contrib("isotp")I-search backward:load_>>>load_contrib("isotp")>>>load_contrib("isotp")I-search backward:load_c>>>load_contrib("isotp")I-search backward:load_co>>>load_contrib("isotp")I-search backward:load_con>>>load_contrib("isotp")I-search backward:load_cont>>>load_contrib("isotp")I-search backward:load_contr>>>load_contrib("isotp")I-search backward:load_contri>>>load_contrib("isotp")I-search backward:load_contrib>>>load_contrib("isotp")I-search backward:load_contrib(>>>load_contrib("isotp")I-search backward:load_contrib(">>>load_contrib("automotive.uds")I-search backward:load_contrib("a>>>load_contrib("automotive.uds")I-search backward:load_contrib("au>>>load_contrib("automotive.uds")INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev709AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| Wanna support scapy? Rate it onscccccp///pSP///p p//Y| sectools!sY/////////y caa S//P| http://sectools.org/tool/scapy/cayCyayP//Ya pY/Ya| -- Satoshi NakamotosY/PsY////YCc aC//Yp|sc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>conf.contribs['ISOTP'] = {'use-can-isotp-kernel-module':True}>>>load_contrib("isotp")>>>load_contrib("automotive.uds")>>>load_contrib("automotive.uds")I-search backward:s>>>load_contrib("isotp")I-search backward:so>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False)I-search backward:soc>>>sock.sr1(UDS()/UDS_RDBI(identifiers=[0x1001]),verbose=False)I-search backward:sock>>>sock= ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:sock>>>sock =ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:sock =>>>sock =ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)I-search backward:sock =>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>l>>>ls>>>ls(>>>ls(U>>>ls(UD>>>ls(UDS>>>ls(UDS_>>>ls(UDS_S>>>ls(UDS_SA>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>ls(UDS_SA)>>>s>>>so>>>soc>>>sock>>>sock.>>>sock.s>>>sock.sr>>>sock.sr1>>>sock.sr1(>>>sock.sr1(U>>>sock.sr1(UD>>>sock.sr1(UDS>>>sock.sr1(UDS(>>>sock.sr1(UDS()>>>sock.sr1(UDS()?>>>sock.sr1(UDS()/>>>sock.sr1(UDS()/U>>>sock.sr1(UDS()/UD>>>sock.sr1(UDS()/UDS>>>sock.sr1(UDS()/UDS(>>>sock.sr1(UDS()/UDS_>>>sock.sr1(UDS()/UDS_S>>>sock.sr1(UDS()/UDS_SA>>>sock.sr1(UDS()/UDS_SA(>>>sock.sr1(UDS()/UDS_SA(s>>>sock.sr1(UDS()/UDS_SA(se>>>sock.sr1(UDS()/UDS_SA(sec>>>sock.sr1(UDS()/UDS_SA(secu>>>sock.sr1(UDS()/UDS_SA(secur>>>sock.sr1(UDS()/UDS_SA(securi>>>sock.sr1(UDS()/UDS_SA(securit>>>sock.sr1(UDS()/UDS_SA(security>>>sock.sr1(UDS()/UDS_SA(securityA>>>sock.sr1(UDS()/UDS_SA(securityAc>>>sock.sr1(UDS()/UDS_SA(securityAcc>>>sock.sr1(UDS()/UDS_SA(securityAcce>>>sock.sr1(UDS()/UDS_SA(securityAcces>>>sock.sr1(UDS()/UDS_SA(securityAccess>>>sock.sr1(UDS()/UDS_SA(securityAccessT>>>sock.sr1(UDS()/UDS_SA(securityAccessTy>>>sock.sr1(UDS()/UDS_SA(securityAccessTyp>>>sock.sr1(UDS()/UDS_SA(securityAccessType>>>sock.sr1(UDS()/UDS_SA(securityAccessType=>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),v>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),ve>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),ver>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verb>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbo>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbos>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=F>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fa>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fal>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fale>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=Fals>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False>>>ls(UDS_SA)securityAccessType : ByteField = (0)securityAccessDataRecord : StrField (Cond) = (b'')securityKey : StrField (Cond) = (b'')>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>ls(UDS_D>>>ls(UDS_DS>>>ls(UDS_DSC<UDSservice=NegativeResponse|<UDS_NRCrequestServiceId=SecurityAccessnegativeResponseCode=serviceNotSupportedInActiveSession|>>>>>ls(UDS_DSC)>>>U>>>UD>>>UDS>>>UDS_>>>UDS_D>>>UDS_DS>>>UDS_DSC>>>UDS_DSC.>>>UDS_DSC.d>>>ls(UDS_DSC)diagnosticSessionType : ByteEnumField = (0)>>>UDS_DSC.diUDS_DSC.diagnosticSessionTypes UDS_DSC.dissect>>>UDS_DSC.diagnosticSessionTypesUDS_DSC.diagnosticSessionTypesUDS_DSC.dissectUDS_DSC.direction UDS_DSC.dissection_doneUDS_DSC.display<unknown>>>>UDS_DSC.diagnosticSessionTypes>>>sock = ISOTPNativeSocket("can0", did=0x610, sid=0x6f1, extended_addr=0x10, extended_rx_addr=0xf1, basecls=UDS)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccesType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAcceType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAccType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAcType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityAType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securityType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securitType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securiType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(securType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(secuType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(secType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(seType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(sType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(Type=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(dType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diaType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnoType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnostType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnostiType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSeType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSesType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSesseType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessiType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessioType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_SA(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_S(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_D(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_DS(diagnosticSessionType=0x3),verbose=False){0: 'ISOSAEReserved',1: 'defaultSession',2: 'programmingSession',3: 'extendedDiagnosticSession',4: 'safetySystemDiagnosticSession',127: 'ISOSAEReserved'}>>>sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False)>>>sock.sr1(UDS()/UDS_DSC(diagnosticSessionType=0x3),verbose=False)<UDSservice=DiagnosticSessionControlPositiveResponse|<UDS_DSCPRdiagnosticSessionType=extendedDiagnosticSessionsessionParameterRecord='\x002\x01\xf4'|>>>>>e>>>ex>>>exi<UDSservice=SecurityAccessPositiveResponse|<UDS_SAPRsecurityAccessType=3securitySeed='\x1aP\xa8\xea\xaa\xa0\x16\xc6\x06h<\x1aXF\xe0J\x8atD8'|>>>>>exit>>>exit
\ No newline at end of file
diff --git a/doc/scapy/graphics/animations/animation-scapy-uds3.svg b/doc/scapy/graphics/animations/animation-scapy-uds3.svg
index 104559f2f94..6d2570e9498 100755
--- a/doc/scapy/graphics/animations/animation-scapy-uds3.svg
+++ b/doc/scapy/graphics/animations/animation-scapy-uds3.svg
@@ -1,44 +1 @@
-
-
-
-
-
-
-
-
-
- >>> >>> I-search backward: >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: l >>> load_contrib("automotive.uds") I-search backward: lo >>> load_contrib("automotive.uds") I-search backward: loa >>> load_contrib("automotive.uds") I-search backward: load >>> load_contrib("automotive.uds") >>> load_contrib("automotive.uds") >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').__repr__() INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). aSPY//YASa apyyyyCY//////////YCa | sY//////YSpcs scpCY//Pp | Welcome to Scapy ayp ayyyyyyySCP//Pp syY//C | Version 2.4.0.dev709 AYAsAYYYYYYYY///Ps cY//S | pCCCCY//p cSSps y//Y | https://github.com/secdev/scapy SPPPP///a pP///AC//Y | A//A cyP////C | Have fun! p///Ac sC///a | P////YCpc A//A | We are in France, we say Skappee. scccccp///pSP///p p//Y | OK? Merci. sY/////////y caa S//P | -- Sebastien Chabal cayCyayP//Ya pY/Ya | sY/PsY////YCc aC//Yp sc sccaCY//PCypaapyCP//YSs spCPY//////YPSps ccaacs using IPython 7.1.1>>> load_contrib("automotive.uds") >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') <UDS service=ReadDataByIdentifierPositiveResponse |<UDS_RDBIPR dataIdentifier=0xabcd |<Raw load='\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00' |>>>>>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show() >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show() ###[ UDS ]### service= ReadDataByIdentifierPositiveResponse###[ ReadDataByIdentifierPositiveResponse ]### dataIdentifier= 0xabcd###[ Raw ]### load= '\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00'>>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show() I-search backward: c >>> class GW_IP(Packet): I-search backward: cl >>> class GW_IP(Packet): ...: IPField("DEFAULT_GATEWAY", "")] I-search backward: cla >>> class GW_IP(Packet): >>> class GW_IP(Packet): >>> class GW_IP(Packet): >>> class GW_IP(Packet): >>> class GW_IP(Packet): >>> class GW_IP(Packet): ...: name="GW IP" ...: name="GW IP" ...: fields_desc = [ ...: fields_desc = [ ...: ByteField("Format", 0), ...: ByteField("Format", 0), ...: IPField("IP", ""), ...: IPField("IP", ""), ...: IPField("SUBNETMASK", ""), ...: IPField("SUBNETMASK", ""), ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: fields_desc = [ >>> class GW_IP(Packet): ...: ...: >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show() I-search backward: b >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: bi >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: bin I-search backward: bind >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: U >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UD >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS_ >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS_R >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS_RD >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS_RDB >>> bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd) I-search backward: UDS_RDBI >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" I-search backward: UDS_RDBI. >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" >>> UDS_RDBI.dataIdentifiers[0xabcd] = "GatewayIP" ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("DEFAULT_GATEWAY", "")] ...: IPField("SUBNETMASK", ""), ...: IPField("IP", ""), ...: ByteField("Format", 0), ...: name="GW IP" ...: fields_desc = [ ...: name="GW IP" <UDS service=ReadDataByIdentifierPositiveResponse |<UDS_RDBIPR dataIdentifier=GatewayIP |<GW_IP Format=0 IP=169.254.25.116 SUBNETMASK=255.255.0.0 DEFAULT_GATEWAY=0.0.0.0 |>>> ...: IPField("IP", ""), ...: ByteField("Format", 0), ...: IPField("IP", ""), ...: fields_desc = [ ...: ByteField("Format", 0), ...: fields_desc = [ ...: name="GW IP" >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pkUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pktUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pkt UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pkt =UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') service= ReadDataByIdentifierPositiveResponse ###[ ReadDataByIdentifierPositiveResponse ]### dataIdentifier= GatewayIP ###[ GW IP ]### Format= 0 IP= 169.254.25.116 SUBNETMASK= 255.255.0.0 DEFAULT_GATEWAY= 0.0.0.0>>> pkt = UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> p >>> pk >>> pkt >>> pkt. >>> pkt.I >>> pkt.IP >>> pkt.IP >>> pkt.IP = >>> pkt.IP = >>> pkt.IP = " >>> pkt.IP = "0 >>> pkt.IP = "0. >>> pkt.IP = "0.1 >>> pkt.IP = "0.1. >>> pkt.IP = "0.1.2 >>> pkt.IP = "0.1.2. >>> pkt.IP = "0.1.2.3 >>> pkt = UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00') >>> pkt.IP = "0.1.2.3" >>> pkt.IP = "0.1.2.3" >>> pkt <UDS service=ReadDataByIdentifierPositiveResponse |<UDS_RDBIPR dataIdentifier=GatewayIP |<GW_IP Format=0 IP=0.1.2.3 SUBNETMASK=255.255.0.0 DEFAULT_GATEWAY=0.0.0.0 |>>>>>>
-
\ No newline at end of file
+>>>>>>I-search backward:>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:l>>>load_contrib("automotive.uds")I-search backward:lo>>>load_contrib("automotive.uds")I-search backward:loa>>>load_contrib("automotive.uds")I-search backward:load>>>load_contrib("automotive.uds")>>>load_contrib("automotive.uds")>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').__repr__()INFO: Can't import PyX. Won't be able to use psdump() or pdfdump().aSPY//YASaapyyyyCY//////////YCa|sY//////YSpcs scpCY//Pp| Welcome to Scapyayp ayyyyyyySCP//Pp syY//C| Version 2.4.0.dev709AYAsAYYYYYYYY///Ps cY//S|pCCCCY//p cSSps y//Y| https://github.com/secdev/scapySPPPP///a pP///AC//Y|A//A cyP////C| Have fun!p///Ac sC///a|P////YCpc A//A| We are in France, we say Skappee.scccccp///pSP///p p//Y| OK? Merci.sY/////////y caa S//P| -- Sebastien ChabalcayCyayP//Ya pY/Ya|sY/PsY////YCc aC//Ypsc sccaCY//PCypaapyCP//YSsspCPY//////YPSpsccaacsusing IPython 7.1.1>>>load_contrib("automotive.uds")>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')<UDSservice=ReadDataByIdentifierPositiveResponse|<UDS_RDBIPRdataIdentifier=0xabcd|<Rawload='\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00'|>>>>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show()>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show()###[UDS]###service=ReadDataByIdentifierPositiveResponse###[ReadDataByIdentifierPositiveResponse]###dataIdentifier=0xabcd###[Raw]###load='\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00'>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show()I-search backward:c>>>classGW_IP(Packet):I-search backward:cl>>>classGW_IP(Packet):...:IPField("DEFAULT_GATEWAY","")]I-search backward:cla>>>classGW_IP(Packet):>>>classGW_IP(Packet):>>>classGW_IP(Packet):>>>classGW_IP(Packet):>>>classGW_IP(Packet):>>>classGW_IP(Packet):...:name="GW IP"...:name="GW IP"...:fields_desc = [...:fields_desc = [...:ByteField("Format",0),...:ByteField("Format",0),...:IPField("IP",""),...:IPField("IP",""),...:IPField("SUBNETMASK",""),...:IPField("SUBNETMASK",""),...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:fields_desc =[>>>classGW_IP(Packet):...:...:>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00').show()I-search backward:b>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:bi>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:binI-search backward:bind>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR,GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR,GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR,GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP,dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP,dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP,dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:U>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UD>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS_>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS_R>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS_RD>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS_RDB>>>bind_layers(UDS_RDBIPR, GW_IP, dataIdentifier=0xabcd)I-search backward:UDS_RDBI>>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP"I-search backward:UDS_RDBI.>>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd]="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd]="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd]="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP">>>UDS_RDBI.dataIdentifiers[0xabcd] ="GatewayIP"...:IPField("DEFAULT_GATEWAY","")]...:IPField("DEFAULT_GATEWAY","")]...:IPField("SUBNETMASK",""),...:IPField("IP",""),...:ByteField("Format",0),...:name="GW IP"...:fields_desc = [...:name="GW IP"<UDSservice=ReadDataByIdentifierPositiveResponse|<UDS_RDBIPRdataIdentifier=GatewayIP|<GW_IPFormat=0IP=169.254.25.116SUBNETMASK=255.255.0.0DEFAULT_GATEWAY=0.0.0.0|>>>...:IPField("IP",""),...:ByteField("Format",0),...:IPField("IP",""),...:fields_desc = [...:ByteField("Format",0),...:fields_desc = [...:name="GW IP">>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pkUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pktUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pktUDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pkt =UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')service=ReadDataByIdentifierPositiveResponse###[ReadDataByIdentifierPositiveResponse]###dataIdentifier=GatewayIP###[GW IP]###Format=0IP=169.254.25.116SUBNETMASK=255.255.0.0DEFAULT_GATEWAY=0.0.0.0>>>pkt =UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>p>>>pk>>>pkt>>>pkt.>>>pkt.I>>>pkt.IP>>>pkt.IP>>>pkt.IP =>>>pkt.IP =>>>pkt.IP =">>>pkt.IP ="0>>>pkt.IP ="0.>>>pkt.IP ="0.1>>>pkt.IP ="0.1.>>>pkt.IP ="0.1.2>>>pkt.IP ="0.1.2.>>>pkt.IP ="0.1.2.3>>>pkt = UDS(b'\x62\xab\xcd\x00\xa9\xfe\x19t\xff\xff\x00\x00\x00\x00\x00\x00')>>>pkt.IP ="0.1.2.3">>>pkt.IP ="0.1.2.3">>>pkt<UDSservice=ReadDataByIdentifierPositiveResponse|<UDS_RDBIPRdataIdentifier=GatewayIP|<GW_IPFormat=0IP=0.1.2.3SUBNETMASK=255.255.0.0DEFAULT_GATEWAY=0.0.0.0|>>>>>>
\ No newline at end of file
diff --git a/doc/scapy/graphics/automotive/CAN-full-frame.jpg b/doc/scapy/graphics/automotive/CAN-full-frame.jpg
index d726b3b5c7c..356217c52d6 100644
Binary files a/doc/scapy/graphics/automotive/CAN-full-frame.jpg and b/doc/scapy/graphics/automotive/CAN-full-frame.jpg differ
diff --git a/doc/scapy/graphics/automotive/DC-ZGW-CAN-Bus-.png b/doc/scapy/graphics/automotive/DC-ZGW-CAN-Bus-.png
index ea778feda1a..19e3b78c0bc 100644
Binary files a/doc/scapy/graphics/automotive/DC-ZGW-CAN-Bus-.png and b/doc/scapy/graphics/automotive/DC-ZGW-CAN-Bus-.png differ
diff --git a/doc/scapy/graphics/automotive/Simple-CAN-Bus-.png b/doc/scapy/graphics/automotive/Simple-CAN-Bus-.png
index d767795911a..c75ce39a9bf 100644
Binary files a/doc/scapy/graphics/automotive/Simple-CAN-Bus-.png and b/doc/scapy/graphics/automotive/Simple-CAN-Bus-.png differ
diff --git a/doc/scapy/graphics/automotive/XCP_ReferenceBook.png b/doc/scapy/graphics/automotive/XCP_ReferenceBook.png
index e970660c73d..f9505fe9746 100644
Binary files a/doc/scapy/graphics/automotive/XCP_ReferenceBook.png and b/doc/scapy/graphics/automotive/XCP_ReferenceBook.png differ
diff --git a/doc/scapy/graphics/automotive/ZGW-CAN-Bus-.png b/doc/scapy/graphics/automotive/ZGW-CAN-Bus-.png
index 80a3e9c51c9..58e62e79910 100644
Binary files a/doc/scapy/graphics/automotive/ZGW-CAN-Bus-.png and b/doc/scapy/graphics/automotive/ZGW-CAN-Bus-.png differ
diff --git a/doc/scapy/graphics/automotive/can-bus-states.png b/doc/scapy/graphics/automotive/can-bus-states.png
index 389a00766ff..f7f59017363 100644
Binary files a/doc/scapy/graphics/automotive/can-bus-states.png and b/doc/scapy/graphics/automotive/can-bus-states.png differ
diff --git a/doc/scapy/graphics/automotive/can-frame-socket-can.png b/doc/scapy/graphics/automotive/can-frame-socket-can.png
index efd96e03147..8f4ac20a8e1 100644
Binary files a/doc/scapy/graphics/automotive/can-frame-socket-can.png and b/doc/scapy/graphics/automotive/can-frame-socket-can.png differ
diff --git a/doc/scapy/graphics/automotive/diag-stack.png b/doc/scapy/graphics/automotive/diag-stack.png
index 76a7b11635e..5aaf8a8ff4a 100644
Binary files a/doc/scapy/graphics/automotive/diag-stack.png and b/doc/scapy/graphics/automotive/diag-stack.png differ
diff --git a/doc/scapy/graphics/automotive/isotp-flow.png b/doc/scapy/graphics/automotive/isotp-flow.png
index 08e7a7b944f..823760508f7 100644
Binary files a/doc/scapy/graphics/automotive/isotp-flow.png and b/doc/scapy/graphics/automotive/isotp-flow.png differ
diff --git a/doc/scapy/graphics/automotive/isotp-frames.png b/doc/scapy/graphics/automotive/isotp-frames.png
index a724f95e5fd..95f94381a0e 100644
Binary files a/doc/scapy/graphics/automotive/isotp-frames.png and b/doc/scapy/graphics/automotive/isotp-frames.png differ
diff --git a/doc/scapy/graphics/command-ls.png b/doc/scapy/graphics/command-ls.png
index 3888117df96..1f5ed34a908 100644
Binary files a/doc/scapy/graphics/command-ls.png and b/doc/scapy/graphics/command-ls.png differ
diff --git a/doc/scapy/graphics/default-values-ip.png b/doc/scapy/graphics/default-values-ip.png
index 098c57e460c..cdb6468240e 100644
Binary files a/doc/scapy/graphics/default-values-ip.png and b/doc/scapy/graphics/default-values-ip.png differ
diff --git a/doc/scapy/graphics/fieldsmanagement.png b/doc/scapy/graphics/fieldsmanagement.png
index 5fb7bc9d238..beea2a072bb 100644
Binary files a/doc/scapy/graphics/fieldsmanagement.png and b/doc/scapy/graphics/fieldsmanagement.png differ
diff --git a/doc/scapy/graphics/graph_traceroute.png b/doc/scapy/graphics/graph_traceroute.png
index 2ad33296e3f..01547df4a58 100644
Binary files a/doc/scapy/graphics/graph_traceroute.png and b/doc/scapy/graphics/graph_traceroute.png differ
diff --git a/doc/scapy/graphics/http_tcp.png b/doc/scapy/graphics/http_tcp.png
index de658326d79..6a4a78fcabf 100644
Binary files a/doc/scapy/graphics/http_tcp.png and b/doc/scapy/graphics/http_tcp.png differ
diff --git a/doc/scapy/graphics/ipid.png b/doc/scapy/graphics/ipid.png
index e7100478b9a..c729364f0a0 100644
Binary files a/doc/scapy/graphics/ipid.png and b/doc/scapy/graphics/ipid.png differ
diff --git a/doc/scapy/graphics/pipetool_demo.svg b/doc/scapy/graphics/pipetool_demo.svg
index 04d84ee6538..d8132bf15ed 100644
--- a/doc/scapy/graphics/pipetool_demo.svg
+++ b/doc/scapy/graphics/pipetool_demo.svg
@@ -1,43 +1 @@
-
-
-
-
-
-
-pipe
-
-
-
-2518161510704
-
-TransformDrain
-
-
-
-2518161510896
-
-WiresharkSink
-
-
-
-2518161510704->2518161510896
-
-
-
-
-
-2518161510992
-
-SniffSource
-
-
-
-2518161510992->2518161510704
-
-
-
-
-
+pipe2518161510704TransformDrain2518161510896WiresharkSink2518161510704->25181615108962518161510992SniffSource2518161510992->2518161510704
\ No newline at end of file
diff --git a/doc/scapy/graphics/pipetool_engine.png b/doc/scapy/graphics/pipetool_engine.png
index 7ba574a7d12..dee8af61cf3 100644
Binary files a/doc/scapy/graphics/pipetool_engine.png and b/doc/scapy/graphics/pipetool_engine.png differ
diff --git a/doc/scapy/graphics/scapy-concept.png b/doc/scapy/graphics/scapy-concept.png
index 8c6b667611f..f81819afcb4 100644
Binary files a/doc/scapy/graphics/scapy-concept.png and b/doc/scapy/graphics/scapy-concept.png differ
diff --git a/doc/scapy/graphics/scapy-win-screenshot1.png b/doc/scapy/graphics/scapy-win-screenshot1.png
index 2429d98f611..a7a18d8c21e 100644
Binary files a/doc/scapy/graphics/scapy-win-screenshot1.png and b/doc/scapy/graphics/scapy-win-screenshot1.png differ
diff --git a/doc/scapy/graphics/scapy-win-screenshot2.png b/doc/scapy/graphics/scapy-win-screenshot2.png
index 2fef46b9952..f70da2b5d8f 100644
Binary files a/doc/scapy/graphics/scapy-win-screenshot2.png and b/doc/scapy/graphics/scapy-win-screenshot2.png differ
diff --git a/doc/scapy/graphics/scapy_logo.png b/doc/scapy/graphics/scapy_logo.png
index 5b8e9ebd69e..1196569e2ff 100644
Binary files a/doc/scapy/graphics/scapy_logo.png and b/doc/scapy/graphics/scapy_logo.png differ
diff --git a/doc/scapy/graphics/testing-taxonomy.png b/doc/scapy/graphics/testing-taxonomy.png
index dd30417798e..8471f559d32 100644
Binary files a/doc/scapy/graphics/testing-taxonomy.png and b/doc/scapy/graphics/testing-taxonomy.png differ
diff --git a/doc/scapy/graphics/trace3d_1.png b/doc/scapy/graphics/trace3d_1.png
index 60750f0e92f..75f76426f4b 100644
Binary files a/doc/scapy/graphics/trace3d_1.png and b/doc/scapy/graphics/trace3d_1.png differ
diff --git a/doc/scapy/graphics/trace3d_2.png b/doc/scapy/graphics/trace3d_2.png
index f2a4c4dd764..c17d5ae9004 100644
Binary files a/doc/scapy/graphics/trace3d_2.png and b/doc/scapy/graphics/trace3d_2.png differ
diff --git a/doc/scapy_logo.png b/doc/scapy_logo.png
index 5b8e9ebd69e..1196569e2ff 100644
Binary files a/doc/scapy_logo.png and b/doc/scapy_logo.png differ