CAN bus protocol

385 views
Skip to first unread message

101...@gmail.com

unread,
Nov 4, 2016, 10:29:54 AM11/4/16
to boofuzz
Hi boofuzz developpers,
I would like to know how can I define new network protocols for fuzzing. I would like to fuzz CAN bus protocol (ISO 11898-1 standard).

Thanks,

Josh Pereyda

unread,
Nov 7, 2016, 11:23:50 AM11/7/16
to 101...@gmail.com, boofuzz

Hello, and thanks for inquiring,

1. Make a new implementation of `ITargetConnection` (boofuzz/itarget_connection.py). You'll need to implement open, close, send, and recv. This will require interfacing with the CAN bus somehow. See boofuzz/serial_connection.py and boofuzz/socket_connection.py for some examples. If you already have Python code that can read and write, this class should be easy.

2. Imitate the boofuzz-ftp example, defining the protocol details you wish to fuzz, and using your new connection class instead of SocketConnection (see line 9 here).


I hope that helps,

Joshua


--
You received this message because you are subscribed to the Google Groups "boofuzz" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boofuzz+u...@googlegroups.com.
To post to this group, send email to boo...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/boofuzz/db57f9fd-d544-436d-bd84-9cb773157b97%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

chakrabarty...@gmail.com

unread,
Sep 20, 2017, 6:31:12 AM9/20/17
to boofuzz
Hi,

Is there a short tutorial/guide on how to extend boofuzz for CAN protocol? This is fairly new to me and I am unsure of how to translate the FTP implementation to CAN. Are iTarget_connection.py & serial/socket_connection.py the only files that need modification or are there others too?

Any guidance is greatly appreciated! Thanks :)

Joshua Pereyda

unread,
Sep 22, 2017, 11:03:26 PM9/22/17
to boofuzz
Hi,

You'll need to know the structure of the protocol in terms of bits and bytes. I don't know much about it so I can't help there. Once you are familiar with the structure, you can use the various primitives to define the protocol structure. That's where FTP is an example. Right now the documentation isn't too sharp, but you can find a list of primitives in the code in the __init__.py file. https://github.com/jtpereyda/boofuzz/blob/master/boofuzz/__init__.py (permalink).
Reply all
Reply to author
Forward
0 new messages