From 545258c1ad32ed3c6f0cb8bf7aa1de4c04996ca2 Mon Sep 17 00:00:00 2001 From: Kasper Karlsson Date: Thu, 28 Mar 2024 23:04:09 +0100 Subject: [PATCH] Change preferred command from 'cc.py' to 'caringcaribou' --- CONTRIBUTING.md | 2 +- README.md | 14 +++--- caringcaribou/caringcaribou.py | 2 +- caringcaribou/modules/dcm.py | 16 +++--- caringcaribou/modules/doip.py | 22 ++++----- caringcaribou/modules/dump.py | 10 ++-- caringcaribou/modules/fuzzer.py | 16 +++--- caringcaribou/modules/listener.py | 2 +- caringcaribou/modules/module_template.py | 16 +++--- caringcaribou/modules/send.py | 12 ++--- caringcaribou/modules/uds.py | 20 ++++---- caringcaribou/modules/uds_fuzz.py | 6 +-- caringcaribou/modules/xcp.py | 14 +++--- caringcaribou/utils/can_actions.py | 2 +- documentation/dcm.md | 28 +++++------ documentation/doip.md | 62 ++++++++++++------------ documentation/dump.md | 10 ++-- documentation/fuzzer.md | 18 +++---- documentation/howtoinstall.md | 4 +- documentation/howtouse.md | 54 ++++++++++----------- documentation/listener.md | 4 +- documentation/send.md | 20 ++++---- documentation/troubleshooting.md | 6 +-- documentation/uds.md | 52 ++++++++++---------- documentation/uds_fuzz.md | 18 +++---- documentation/xcp.md | 14 +++--- setup.py | 8 +-- 27 files changed, 226 insertions(+), 226 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9df022c..3739b37 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ Please open an issue with a high-level description of the change, to request fee ## Before submitting a Pull Request * Make sure the PR only adds/changes/fixes a single thing -* Make sure the change does not break the test suite (by running `cc.py -i test`) +* Make sure the change does not break the test suite (by running `caringcaribou -i test`) * Make sure the code adheres to [PEP - 8 (Style Guide for Python Code)](https://peps.python.org/pep-0008/) * Avoid [magic numbers](https://en.wikipedia.org/wiki/Magic_number_(programming)) in the code when possible * Avoid changes that break other users' setups (such as dropping currently supported Python versions or hardcoding values for your favorite ECU) diff --git a/README.md b/README.md index 8ce7a3b..cee2d54 100644 --- a/README.md +++ b/README.md @@ -17,21 +17,21 @@ Install the tool: The best way to understand how to use Caring Caribou is to look at the help screen: - cc.py --help + caringcaribou --help This will list all available modules at the bottom of the output. Help for specific modules works the same way. For example, the help screen for the `send` module is shown by running - cc.py send --help + caringcaribou send --help The module help always includes some usage examples. If the module has multiple sub functions, these have similar help screens as well: - cc.py send message -h - cc.py send file -h + caringcaribou send message -h + caringcaribou send file -h More detailed usage information is available [in the documentation on usage](documentation/howtouse.md). ## Features and Architecture -Caring Caribou is based on a main entry point, `cc.py`, which runs the show. This enables an easy drop-in architecture for new modules, which are located in the `caringcaribou/modules` folder. +Caring Caribou is based on a main entry point in `caringcaribou.py` which runs the show. This enables an easy drop-in architecture for new modules, which are located in the `caringcaribou/modules` folder. The `caringcaribou/utils` folder contains various higher level CAN protocol implementations and shared functions, meant to be used by modules. @@ -141,9 +141,9 @@ Some sort of CAN bus interface (http://elinux.org/CAN_Bus#CAN_Support_in_Linux) - Create a python file with a function `module_main(args)` (or copy the template) in the `caringcaribou/modules` directory. - In `setup.py`, add an entry under `caringcaribou.modules`, referencing your new module like: `my_module = caringcaribou.modules.my_module` - Run `python setup.py install` -- Verify that the module is available, should be listed in the output of `cc.py -h` +- Verify that the module is available, it should be listed in the output of `caringcaribou -h` -If your new module is located in `caringcaribou/modules/foo.py` you will run it with the command `cc.py foo`. +If your new module is located in `caringcaribou/modules/foo.py` you will run it with the command `caringcaribou foo`. Additional arguments (if any) are passed as arguments to the `module_main` function. diff --git a/caringcaribou/caringcaribou.py b/caringcaribou/caringcaribou.py index 025fdb6..fdad4a7 100755 --- a/caringcaribou/caringcaribou.py +++ b/caringcaribou/caringcaribou.py @@ -10,7 +10,7 @@ import pkg_resources -VERSION = "0.5" +VERSION = "0.6" def show_script_header(): diff --git a/caringcaribou/modules/dcm.py b/caringcaribou/modules/dcm.py index b49658c..db3140f 100644 --- a/caringcaribou/modules/dcm.py +++ b/caringcaribou/modules/dcm.py @@ -425,17 +425,17 @@ def parse_args(args): :return: Namespace containing action and action-specific arguments :rtype: argparse.Namespace """ - parser = argparse.ArgumentParser(prog="cc.py dcm", + parser = argparse.ArgumentParser(prog="caringcaribou dcm", formatter_class=argparse.RawDescriptionHelpFormatter, description="""Diagnostics module for CaringCaribou""", epilog="""Example usage: - cc.py dcm discovery - cc.py dcm discovery -blacklist 0x123 0x456 - cc.py dcm discovery -autoblacklist 10 - cc.py dcm services 0x733 0x633 - cc.py dcm subfunc 0x733 0x633 0x22 2 3 - cc.py dcm dtc 0x7df 0x7e8 - cc.py dcm testerpresent 0x733""") + caringcaribou dcm discovery + caringcaribou dcm discovery -blacklist 0x123 0x456 + caringcaribou dcm discovery -autoblacklist 10 + caringcaribou dcm services 0x733 0x633 + caringcaribou dcm subfunc 0x733 0x633 0x22 2 3 + caringcaribou dcm dtc 0x7df 0x7e8 + caringcaribou dcm testerpresent 0x733""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/modules/doip.py b/caringcaribou/modules/doip.py index 8e02c57..57131bb 100644 --- a/caringcaribou/modules/doip.py +++ b/caringcaribou/modules/doip.py @@ -707,21 +707,21 @@ def seed_randomness_fuzzer(args): def __parse_args(args): """Parser for module arguments""" parser = argparse.ArgumentParser( - prog="cc.py doip", + prog="caringcaribou doip", formatter_class=argparse.RawDescriptionHelpFormatter, description="DoIP module for " "CaringCaribou", epilog="""Example usage: - cc.py doip discovery - cc.py doip discovery -blacklist 0x123 0x456 - cc.py doip discovery -autoblacklist 10 - cc.py doip services 0x733 0x633 - cc.py doip ecu_reset 1 0x733 0x633 - cc.py doip testerpresent 0x733 - cc.py doip security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 - cc.py doip dump_dids 0x733 0x633 - cc.py doip dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 - cc.py doip seed_randomness_fuzzer 2 2 0x733 0x633 -m 1 -t 10 -d 50 -id 4""") + caringcaribou doip discovery + caringcaribou doip discovery -blacklist 0x123 0x456 + caringcaribou doip discovery -autoblacklist 10 + caringcaribou doip services 0x733 0x633 + caringcaribou doip ecu_reset 1 0x733 0x633 + caringcaribou doip testerpresent 0x733 + caringcaribou doip security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 + caringcaribou doip dump_dids 0x733 0x633 + caringcaribou doip dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 + caringcaribou doip seed_randomness_fuzzer 2 2 0x733 0x633 -m 1 -t 10 -d 50 -id 4""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/modules/dump.py b/caringcaribou/modules/dump.py index a629229..013ecc9 100644 --- a/caringcaribou/modules/dump.py +++ b/caringcaribou/modules/dump.py @@ -51,14 +51,14 @@ def parse_args(args): :param args: List of arguments :return: Argument namespace """ - parser = argparse.ArgumentParser(prog="cc.py dump", + parser = argparse.ArgumentParser(prog="caringcaribou dump", formatter_class=argparse.RawDescriptionHelpFormatter, description="CAN traffic dump module for CaringCaribou", epilog="""Example usage: - cc.py dump - cc.py dump -s 1.0 - cc.py dump -f output.txt - cc.py dump -c -f output.txt 0x733 0x734""") + caringcaribou dump + caringcaribou dump -s 1.0 + caringcaribou dump -f output.txt + caringcaribou dump -c -f output.txt 0x733 0x734""") parser.add_argument("-f", "--file", metavar="F", help="Write output to file F (default: stdout)") diff --git a/caringcaribou/modules/fuzzer.py b/caringcaribou/modules/fuzzer.py index 2d3b990..a57807f 100644 --- a/caringcaribou/modules/fuzzer.py +++ b/caringcaribou/modules/fuzzer.py @@ -703,17 +703,17 @@ def parse_args(args): :rtype: argparse.Namespace """ global DELAY_BETWEEN_MESSAGES - parser = argparse.ArgumentParser(prog="cc.py fuzzer", + parser = argparse.ArgumentParser(prog="caringcaribou fuzzer", formatter_class=argparse.RawDescriptionHelpFormatter, description="Fuzzing module for CaringCaribou", epilog="""Example usage: -./cc.py fuzzer random -./cc.py fuzzer random -min 4 -seed 0xabc123 -f log.txt -./cc.py fuzzer brute 0x123 12ab..78 -./cc.py fuzzer mutate 7f.. 12ab.... -./cc.py fuzzer replay log.txt -./cc.py fuzzer identify log.txt""") +caringcaribou fuzzer random +caringcaribou fuzzer random -min 4 -seed 0xabc123 -f log.txt +caringcaribou fuzzer brute 0x123 12ab..78 +caringcaribou fuzzer mutate 7f.. 12ab.... +caringcaribou fuzzer replay log.txt +caringcaribou fuzzer identify log.txt""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True @@ -783,7 +783,7 @@ def module_main(arg_list): """ Fuzz module main wrapper. - :param arg_list: Module argument list passed by cc.py + :param arg_list: Module argument list passed by caringcaribou.py """ try: # Parse arguments diff --git a/caringcaribou/modules/listener.py b/caringcaribou/modules/listener.py index 8133c89..1c55536 100644 --- a/caringcaribou/modules/listener.py +++ b/caringcaribou/modules/listener.py @@ -42,7 +42,7 @@ def parse_args(args): :return: Argument namespace :rtype: argparse.Namespace """ - parser = argparse.ArgumentParser(prog="cc.py listener", + parser = argparse.ArgumentParser(prog="caringcaribou listener", formatter_class=argparse.RawDescriptionHelpFormatter, description="Passive listener module for CaringCaribou") parser.add_argument("-r", "--reverse", diff --git a/caringcaribou/modules/module_template.py b/caringcaribou/modules/module_template.py index ecd06dc..ffdfd66 100644 --- a/caringcaribou/modules/module_template.py +++ b/caringcaribou/modules/module_template.py @@ -17,11 +17,11 @@ 3. Run: `setup.py install` 4. Verify that the module is available, - it should be listed in the output of `cc.py -h` + it should be listed in the output of `caringcaribou -h` 5. Run the following command to run module and show usage instructions: - $ cc.py my_module -h + $ caringcaribou my_module -h """ from __future__ import print_function import argparse @@ -81,13 +81,13 @@ def parse_args(args): :return: Argument namespace :rtype: argparse.Namespace """ - parser = argparse.ArgumentParser(prog="cc.py module_template", + parser = argparse.ArgumentParser(prog="caringcaribou module_template", formatter_class=argparse.RawDescriptionHelpFormatter, description="Descriptive message for the template module", epilog="""Example usage: - cc.py module_template - cc.py module_template -id 123 - cc.py module_template -id 0x1FF""") + caringcaribou module_template + caringcaribou module_template -id 123 + caringcaribou module_template -id 0x1FF""") parser.add_argument("-id", type=parse_int_dec_or_hex, default=0, help="arbitration ID to use") args = parser.parse_args(args) @@ -96,9 +96,9 @@ def parse_args(args): def module_main(arg_list): """ - Module main wrapper. This is the entry point of the module when called by cc.py + Module main wrapper. This is the entry point of the module when called by caringcaribou - :param arg_list: Module argument list passed by cc.py + :param arg_list: Module argument list passed by caringcaribou """ try: # Parse arguments diff --git a/caringcaribou/modules/send.py b/caringcaribou/modules/send.py index 04c8f13..241e749 100644 --- a/caringcaribou/modules/send.py +++ b/caringcaribou/modules/send.py @@ -227,16 +227,16 @@ def parse_args(args): :return: Argument namespace :rtype: argparse.Namespace """ - parser = argparse.ArgumentParser(prog="cc.py send", + parser = argparse.ArgumentParser(prog="caringcaribou send", formatter_class=argparse.RawDescriptionHelpFormatter, description="Raw message transmission module for CaringCaribou.\n" "Messages can be passed as command line arguments or through a file.", epilog="""Example usage: - cc.py send message 0x7a0#c0.ff.ee.00.11.22.33.44 - cc.py send message -d 0.5 123#de.ad.be.ef 124#01.23.45 - cc.py send message -p 0x100#11 0x100#22.33 - cc.py send file can_dump.txt - cc.py send file -d 0.2 can_dump.txt""") + caringcaribou send message 0x7a0#c0.ff.ee.00.11.22.33.44 + caringcaribou send message -d 0.5 123#de.ad.be.ef 124#01.23.45 + caringcaribou send message -p 0x100#11 0x100#22.33 + caringcaribou send file can_dump.txt + caringcaribou send file -d 0.2 can_dump.txt""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/modules/uds.py b/caringcaribou/modules/uds.py index eb6e06d..82f92a3 100644 --- a/caringcaribou/modules/uds.py +++ b/caringcaribou/modules/uds.py @@ -1107,20 +1107,20 @@ def dump_dids(arb_id_request, arb_id_response, timeout, def __parse_args(args): """Parser for module arguments""" parser = argparse.ArgumentParser( - prog="cc.py uds", + prog="caringcaribou uds", formatter_class=argparse.RawDescriptionHelpFormatter, description="Universal Diagnostic Services module for " "CaringCaribou", epilog="""Example usage: - cc.py uds discovery - cc.py uds discovery -blacklist 0x123 0x456 - cc.py uds discovery -autoblacklist 10 - cc.py uds services 0x733 0x633 - cc.py uds ecu_reset 1 0x733 0x633 - cc.py uds testerpresent 0x733 - cc.py uds security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 - cc.py uds dump_dids 0x733 0x633 - cc.py uds dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1""") + caringcaribou uds discovery + caringcaribou uds discovery -blacklist 0x123 0x456 + caringcaribou uds discovery -autoblacklist 10 + caringcaribou uds services 0x733 0x633 + caringcaribou uds ecu_reset 1 0x733 0x633 + caringcaribou uds testerpresent 0x733 + caringcaribou uds security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 + caringcaribou uds dump_dids 0x733 0x633 + caringcaribou uds dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/modules/uds_fuzz.py b/caringcaribou/modules/uds_fuzz.py index aced9f4..1c82c70 100644 --- a/caringcaribou/modules/uds_fuzz.py +++ b/caringcaribou/modules/uds_fuzz.py @@ -210,13 +210,13 @@ def str_to_hex(i, session_type): def __parse_args(args): """Parser for module arguments""" parser = argparse.ArgumentParser( - prog="cc.py uds_fuzz", + prog="caringcaribou uds_fuzz", formatter_class=argparse.RawDescriptionHelpFormatter, description="UDS seed randomness fuzzer and tester module for " "CaringCaribou", epilog="""Example usage: - cc.py uds_fuzz seed_randomness_fuzzer 100311022701 0x733 0x633 -d 4 -r 1 -id 2 -m 0 - cc.py uds_fuzz delay_fuzzer 100311022701 0x03 0x733 0x633""") + caringcaribou uds_fuzz seed_randomness_fuzzer 100311022701 0x733 0x633 -d 4 -r 1 -id 2 -m 0 + caringcaribou uds_fuzz delay_fuzzer 100311022701 0x03 0x733 0x633""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/modules/xcp.py b/caringcaribou/modules/xcp.py index 0712c1a..88f7d66 100644 --- a/caringcaribou/modules/xcp.py +++ b/caringcaribou/modules/xcp.py @@ -484,16 +484,16 @@ def parse_args(args): :return: Namespace containing action and action-specific arguments :rtype: argparse.Namespace """ - parser = argparse.ArgumentParser(prog="cc.py xcp", + parser = argparse.ArgumentParser(prog="caringcaribou xcp", formatter_class=argparse.RawDescriptionHelpFormatter, description="""XCP module for CaringCaribou""", epilog="""Example usage: - cc.py xcp discovery - cc.py xcp discovery -blacklist 0x100 0xabc - cc.py xcp discovery -autoblacklist 10 - cc.py xcp commands 0x3e8 0x3e9 - cc.py xcp info 1000 1001 - cc.py xcp dump 0x3e8 0x3e9 0x1fffb000 0x4800 -f bootloader.hex""") + caringcaribou xcp discovery + caringcaribou xcp discovery -blacklist 0x100 0xabc + caringcaribou xcp discovery -autoblacklist 10 + caringcaribou xcp commands 0x3e8 0x3e9 + caringcaribou xcp info 1000 1001 + caringcaribou xcp dump 0x3e8 0x3e9 0x1fffb000 0x4800 -f bootloader.hex""") subparsers = parser.add_subparsers(dest="module_function") subparsers.required = True diff --git a/caringcaribou/utils/can_actions.py b/caringcaribou/utils/can_actions.py index cc0b61a..67a83df 100644 --- a/caringcaribou/utils/can_actions.py +++ b/caringcaribou/utils/can_actions.py @@ -13,7 +13,7 @@ DELAY_STEP = 0.02 NOTIFIER_STOP_DURATION = 0.5 -# Global CAN interface setting, which can be set through the -i flag to cc.py +# Global CAN interface setting, which can be set through the -i flag to caringcaribou.py # The value None corresponds to the default CAN interface (typically can0) DEFAULT_INTERFACE = None diff --git a/documentation/dcm.md b/documentation/dcm.md index 6de7bc2..7496ff2 100644 --- a/documentation/dcm.md +++ b/documentation/dcm.md @@ -1,6 +1,6 @@ # DCM ``` -$ cc.py dcm -h +$ caringcaribou dcm -h ------------------- CARING CARIBOU v0.x @@ -8,7 +8,7 @@ CARING CARIBOU v0.x Loaded module 'dcm' -usage: cc.py dcm [-h] {discovery,services,subfunc,dtc} ... +usage: caringcaribou dcm [-h] {discovery,services,subfunc,dtc} ... Diagnostics module for CaringCaribou @@ -19,15 +19,15 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py dcm discovery - cc.py dcm services 0x733 0x633 - cc.py dcm subfunc 0x733 0x633 0x22 2 3 - cc.py dcm dtc 0x7df 0x7e8 + caringcaribou dcm discovery + caringcaribou dcm services 0x733 0x633 + caringcaribou dcm subfunc 0x733 0x633 0x22 2 3 + caringcaribou dcm dtc 0x7df 0x7e8 ``` ## Discovery ``` -$ cc.py dcm discovery -h +$ caringcaribou dcm discovery -h ------------------- CARING CARIBOU v0.x @@ -35,7 +35,7 @@ CARING CARIBOU v0.x Loaded module 'dcm' -usage: cc.py dcm discovery [-h] [-min MIN] [-max MAX] [-nostop] +usage: caringcaribou dcm discovery [-h] [-min MIN] [-max MAX] [-nostop] [-blacklist B [B ...]] [-autoblacklist N] optional arguments: @@ -50,7 +50,7 @@ optional arguments: ## Services ```` -$ cc.py dcm services -h +$ caringcaribou dcm services -h ------------------- CARING CARIBOU v0.x @@ -58,7 +58,7 @@ CARING CARIBOU v0.x Loaded module 'dcm' -usage: cc.py dcm services [-h] src dst +usage: caringcaribou dcm services [-h] src dst positional arguments: src arbitration ID to transmit from @@ -70,7 +70,7 @@ optional arguments: ## Subfunc ```` -$ cc.py dcm subfunc -h +$ caringcaribou dcm subfunc -h ------------------- CARING CARIBOU v0.x @@ -78,7 +78,7 @@ CARING CARIBOU v0.x Loaded module 'dcm' -usage: cc.py dcm subfunc [-h] [-show] src dst service i [i ...] +usage: caringcaribou dcm subfunc [-h] [-show] src dst service i [i ...] positional arguments: src arbitration ID to transmit from @@ -93,7 +93,7 @@ optional arguments: ## DTC ```` -$ cc.py dcm dtc -h +$ caringcaribou dcm dtc -h ------------------- CARING CARIBOU v0.x @@ -101,7 +101,7 @@ CARING CARIBOU v0.x Loaded module 'dcm' -usage: cc.py dcm dtc [-h] [-clear] src dst +usage: caringcaribou dcm dtc [-h] [-clear] src dst positional arguments: src arbitration ID to transmit from diff --git a/documentation/doip.md b/documentation/doip.md index e519123..bc3d2b9 100644 --- a/documentation/doip.md +++ b/documentation/doip.md @@ -14,10 +14,10 @@ Supported modes: * testerpresent - Force an elevated diagnostics session against an ECU to stay active * seed_randomness_fuzzer - ECUReset method fuzzing for seed randomness evaluation -As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `cc.py doip discovery -h` or `cc.py doip testerpresent -h` +As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `caringcaribou doip discovery -h` or `caringcaribou doip testerpresent -h` ``` -$ cc.py doip -h +$ caringcaribou doip -h ------------------- @@ -26,7 +26,7 @@ CARING CARIBOU v0.x Loaded module 'doip' -usage: cc.py doip [-h] {discovery,services,ecu_reset,testerpresent,security_seed,dump_dids,seed_randomness_fuzzer} ... +usage: caringcaribou doip [-h] {discovery,services,ecu_reset,testerpresent,security_seed,dump_dids,seed_randomness_fuzzer} ... DoIP module for CaringCaribou @@ -37,16 +37,16 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py doip discovery - cc.py doip discovery -blacklist 0x123 0x456 - cc.py doip discovery -autoblacklist 10 - cc.py doip services 0x733 0x633 - cc.py doip ecu_reset 1 0x733 0x633 - cc.py doip testerpresent 0x733 - cc.py doip security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 - cc.py doip dump_dids 0x733 0x633 - cc.py doip dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 - cc.py doip seed_randomness_fuzzer 2 2 0x733 0x633 -m 1 -t 10 -d 50 -id 4 + caringcaribou doip discovery + caringcaribou doip discovery -blacklist 0x123 0x456 + caringcaribou doip discovery -autoblacklist 10 + caringcaribou doip services 0x733 0x633 + caringcaribou doip ecu_reset 1 0x733 0x633 + caringcaribou doip testerpresent 0x733 + caringcaribou doip security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 + caringcaribou doip dump_dids 0x733 0x633 + caringcaribou doip dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 + caringcaribou doip seed_randomness_fuzzer 2 2 0x733 0x633 -m 1 -t 10 -d 50 -id 4 ``` ## Discovery @@ -55,15 +55,15 @@ Scans for arbitration IDs where an ECU responds to UDS requests. The ID of both the request and the matching response are printed. These are typically used as inputs for other UDS modes. ``` -$ cc.py doip discovery -h +$ caringcaribou doip discovery -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip discovery [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] [-d D] +usage: caringcaribou doip discovery [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] [-d D] optional arguments: -h, --help show this help message and exit @@ -80,15 +80,15 @@ optional arguments: Scans an ECU (or rather, a given pair of request/response arbitration IDs) for supported diagnostics services. ``` -$ cc.py doip services -h +$ caringcaribou doip services -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip services [-h] [-t T] src dst +usage: caringcaribou doip services [-h] [-t T] src dst positional arguments: src arbitration ID to transmit to @@ -105,15 +105,15 @@ Requests a restart of an ECU. It is common for an ECU to support multiple reset types. ``` -$ cc.py doip ecu_reset -h +$ caringcaribou doip ecu_reset -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip ecu_reset [-h] type src dst +usage: caringcaribou doip ecu_reset [-h] type src dst positional arguments: type Reset type: 1=hard, 2=key off/on, 3=soft, 4=enable rapid power shutdown, 5=disable rapid power shutdown @@ -132,15 +132,15 @@ Elevated sessions (often referred to as "unlocked servers") automatically fall b By continuing to send Tester Present messages after a server (ECU) has been unlocked (e.g. by an official diagnostics tool), it can be kept in an unlocked state for an arbitrary amount of time in order to allow continued access to protected services. ``` -$ cc.py doip testerpresent -h +$ caringcaribou doip testerpresent -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip testerpresent [-h] [-d D] [-dur S] src dst +usage: caringcaribou doip testerpresent [-h] [-d D] [-dur S] src dst positional arguments: src arbitration ID to transmit to @@ -156,15 +156,15 @@ optional arguments: Scans a range of Dynamic Data Identifiers (DIDs) and dumps their values. ``` -$ cc.py doip dump_dids -h +$ caringcaribou doip dump_dids -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip dump_dids [-h] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] src dst +usage: caringcaribou doip dump_dids [-h] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] src dst positional arguments: src arbitration ID to transmit to @@ -183,15 +183,15 @@ Requests a security seed after a Hard ECUReset, using the supplied request seque In case that duplicate seeds are found by the tool, it means that the ECU is potentially vulnerable and uses weak random number generation seeded by the system timer. ``` -$ cc.py doip seed_randomness_fuzzer -h +$ caringcaribou doip seed_randomness_fuzzer -h ------------------- -CARING CARIBOU v0.3 +CARING CARIBOU v0.x ------------------- Loaded module 'doip' -usage: cc.py doip seed_randomness_fuzzer [-h] [-t ITERATIONS] [-r RTYPE] [-id RTYPE] [-m RMETHOD] [-d D] stype level src dst +usage: caringcaribou doip seed_randomness_fuzzer [-h] [-t ITERATIONS] [-r RTYPE] [-id RTYPE] [-m RMETHOD] [-d D] stype level src dst positional arguments: stype Session Type: 1=defaultSession 2=programmingSession 3=extendedSession 4=safetySession diff --git a/documentation/dump.md b/documentation/dump.md index 73765cd..a0625ce 100644 --- a/documentation/dump.md +++ b/documentation/dump.md @@ -1,6 +1,6 @@ # Dump ```` -$ cc.py dump -h +$ caringcaribou dump -h ------------------- CARING CARIBOU v0.x @@ -8,7 +8,7 @@ CARING CARIBOU v0.x Loaded module 'dump' -usage: cc.py dump [-h] [-f F] [-c] [W [W ...]] +usage: caringcaribou dump [-h] [-f F] [-c] [W [W ...]] CAN traffic dump module for CaringCaribou @@ -21,7 +21,7 @@ optional arguments: -c Output on candump format Example usage: - cc.py dump - cc.py dump -f output.txt - cc.py dump -c -f output.txt 0x733 0x734 + caringcaribou dump + caringcaribou dump -f output.txt + caringcaribou dump -c -f output.txt 0x733 0x734 ``` diff --git a/documentation/fuzzer.md b/documentation/fuzzer.md index 3cd8d4e..7f4e1d6 100644 --- a/documentation/fuzzer.md +++ b/documentation/fuzzer.md @@ -8,10 +8,10 @@ The fuzzer module supports multiple fuzzing methods. The `random` and `mutate` modes both show which random seed is being used. The seed can be passed in an optional argument to these modes, in order to repeat the sequence of generated messages. -As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific fuzzing mode by specifying the mode followed by `-h`, e.g. `cc.py fuzzer random -h` or `cc.py fuzzer mutate -h` +As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific fuzzing mode by specifying the mode followed by `-h`, e.g. `caringcaribou fuzzer random -h` or `caringcaribou fuzzer mutate -h` ```` -$ cc.py fuzzer -h +$ caringcaribou fuzzer -h ------------------- CARING CARIBOU v0.x @@ -19,7 +19,7 @@ CARING CARIBOU v0.x Loaded module 'fuzzer' -usage: cc.py fuzzer [-h] {random,brute,mutate,replay,identify} ... +usage: caringcaribou fuzzer [-h] {random,brute,mutate,replay,identify} ... Fuzzing module for CaringCaribou @@ -36,10 +36,10 @@ optional arguments: Example usage: -cc.py fuzzer random -cc.py fuzzer random -min 4 -seed 0xabc123 -f log.txt -cc.py fuzzer brute 0x123 12ab..78 -cc.py fuzzer mutate 7f.. 12ab.... -cc.py fuzzer replay log.txt -cc.py fuzzer identify log.txt +caringcaribou fuzzer random +caringcaribou fuzzer random -min 4 -seed 0xabc123 -f log.txt +caringcaribou fuzzer brute 0x123 12ab..78 +caringcaribou fuzzer mutate 7f.. 12ab.... +caringcaribou fuzzer replay log.txt +caringcaribou fuzzer identify log.txt ```` diff --git a/documentation/howtoinstall.md b/documentation/howtoinstall.md index 8c1c473..3153413 100644 --- a/documentation/howtoinstall.md +++ b/documentation/howtoinstall.md @@ -65,11 +65,11 @@ The contents of this file might e.g. be: ##### Test it Run the following command: - cc.py dump + caringcaribou dump If packets are received, everything is good to go! -### Windows 7 +### Windows 7 The simplest solution is to download [VMware Player](https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0) , install a Linux distribution and to follow the Linux guide above. diff --git a/documentation/howtouse.md b/documentation/howtouse.md index ed74767..7ef6146 100644 --- a/documentation/howtouse.md +++ b/documentation/howtouse.md @@ -1,13 +1,13 @@ ## How to use -The best way to understand how to use Caring Caribou is to look at cc.py's help menu: +The best way to understand how to use Caring Caribou is to look at its help menu: - cc.py -h + caringcaribou -h This will list all available modules at the bottom of the output: ``` -$ cc.py -h -usage: cc.py [-h] [-i INTERFACE] module ... +$ caringcaribou -h +usage: caringcaribou [-h] [-i INTERFACE] module ... ------------------- CARING CARIBOU v0.x @@ -35,12 +35,12 @@ available modules: So in order to see usage information for e.g. the `send` module, run - $ cc.py send -h + $ caringcaribou send -h which will show both module specific arguments and some usage examples: ``` -$ cc.py send -h +$ caringcaribou send -h ------------------- CARING CARIBOU v0.x @@ -48,7 +48,7 @@ CARING CARIBOU v0.x Loaded module 'send' -usage: cc.py send [-h] {message,file} ... +usage: caringcaribou send [-h] {message,file} ... Raw message transmission module for CaringCaribou. Messages can be passed as command line arguments or through a file. @@ -60,16 +60,16 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py send message 0x7a0#c0.ff.ee.00.11.22.33.44 - cc.py send message -d 0.5 123#de.ad.be.ef 124#01.23.45 - cc.py send file can_dump.txt - cc.py send file -d 0.2 can_dump.txt + caringcaribou send message 0x7a0#c0.ff.ee.00.11.22.33.44 + caringcaribou send message -d 0.5 123#de.ad.be.ef 124#01.23.45 + caringcaribou send file can_dump.txt + caringcaribou send file -d 0.2 can_dump.txt ``` Any sub-commands (in this case, `message` and `file`) have their own help screen as well. Let's have a look at the `message` option: ``` -$ cc.py send message -h +$ caringcaribou send message -h ------------------- CARING CARIBOU v0.x @@ -77,7 +77,7 @@ CARING CARIBOU v0.x Loaded module 'send' -usage: cc.py send message [-h] [--delay D] [--loop] msg [msg ...] +usage: caringcaribou send message [-h] [--delay D] [--loop] msg [msg ...] positional arguments: msg message on format ARB_ID#DATA where ARB_ID is interpreted @@ -95,7 +95,7 @@ In order to use a non-default CAN interface for any module, you can always provi For instance, in oder to send the message `c0 ff ee` with arbitration ID `0xf00` on virtual CAN bus `vcan0`, you would run - $ cc.py -i vcan0 send message 0xf00#c0.ff.ee + $ caringcaribou -i vcan0 send message 0xf00#c0.ff.ee More information on the different modules is available here: + [dcm-module](https://github.com/CaringCaribou/caringcaribou/blob/master/documentation/dcm.md) @@ -118,9 +118,9 @@ The PiCAN is then connected to a CAN bus that features one or more ECUs. Since w #### The listener Let's start with the listener: - cc.py -h - cc.py listener -h - cc.py listener + caringcaribou -h + caringcaribou listener -h + caringcaribou listener (stop the listener with ctrl-C) @@ -136,9 +136,9 @@ On our system we found two active arbitration IDs - probably sending some import #### Diagnostic discovery - cc.py dcm -h - cc.py dcm discovery -h - cc.py dcm discovery -min 0x003 + caringcaribou dcm -h + caringcaribou dcm discovery -h + caringcaribou dcm discovery -min 0x003 (no need to do discovery on 0x001 and 0x002) @@ -152,11 +152,11 @@ Found diagnostics at arbitration ID 0x0733, reply at 0x0633 Great! Now we now what arbitration ID to use when we look for services and subfunctions: - cc.py dcm services 0x733 0x633 + caringcaribou dcm services 0x733 0x633 This gives us that the service READ_DATA_BY_IDENTIFIER (0x22) is available. 0x22 is typically followed by a two byte parameter ID (PID). The two bytes are in positions 2 and 3 and since we want to try them all we enter both 2 and 3 into the subfunction discovery indices list - cc.py dcm subfunc 0x733 0x633 0x22 2 3 + caringcaribou dcm subfunc 0x733 0x633 0x22 2 3 ``` Loading module 'dcm' @@ -177,9 +177,9 @@ Terminated by user #### XCP discovery Enough with diagnostics, let's investigate XCP in more or less the same way - cc.py xcp -h - cc.py xcp discovery -h - cc.py xcp discovery -min 0x003 + caringcaribou xcp -h + caringcaribou xcp discovery -h + caringcaribou xcp discovery -min 0x003 (no need to do discovery on 0x001 and 0x002) @@ -200,8 +200,8 @@ Found XCP at arb ID 0x03e8, reply at 0x03e9 For XCP you can get more information by running - cc.py xcp info 0x3e8 0x3e9 + caringcaribou xcp info 0x3e8 0x3e9 and you can try to dump parts of the memory by using - cc.py xcp dump 0x3e8 0x3e9 0x1f0000000 0x4800 -f bootloader.hex + caringcaribou xcp dump 0x3e8 0x3e9 0x1f0000000 0x4800 -f bootloader.hex diff --git a/documentation/listener.md b/documentation/listener.md index a2d7d75..a29e0a2 100644 --- a/documentation/listener.md +++ b/documentation/listener.md @@ -1,6 +1,6 @@ # Listener ```` -$ cc.py listener -h +$ caringcaribou listener -h ------------------- CARING CARIBOU v0.x @@ -8,7 +8,7 @@ CARING CARIBOU v0.x Loaded module 'listener' -usage: cc.py listener [-h] [-r] +usage: caringcaribou listener [-h] [-r] Passive listener module for CaringCaribou diff --git a/documentation/send.md b/documentation/send.md index deff1ab..40a0836 100644 --- a/documentation/send.md +++ b/documentation/send.md @@ -1,6 +1,6 @@ # Send ``` -$ cc.py send -h +$ caringcaribou send -h ------------------- CARING CARIBOU v0.x @@ -8,7 +8,7 @@ CARING CARIBOU v0.x Loaded module 'send' -usage: cc.py send [-h] {message,file} ... +usage: caringcaribou send [-h] {message,file} ... Raw message transmission module for CaringCaribou. Messages can be passed as command line arguments or through a file. @@ -20,15 +20,15 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py send message 0x7a0#c0.ff.ee.00.11.22.33.44 - cc.py send message -d 0.5 123#de.ad.be.ef 124#01.23.45 - cc.py send file can_dump.txt - cc.py send file -d 0.2 can_dump.txt + caringcaribou send message 0x7a0#c0.ff.ee.00.11.22.33.44 + caringcaribou send message -d 0.5 123#de.ad.be.ef 124#01.23.45 + caringcaribou send file can_dump.txt + caringcaribou send file -d 0.2 can_dump.txt ``` ## Message ``` -$ cc.py send message -h +$ caringcaribou send message -h ------------------- CARING CARIBOU v0.x @@ -36,7 +36,7 @@ CARING CARIBOU v0.x Loaded module 'send' -usage: cc.py send message [-h] [--delay D] [--loop] msg [msg ...] +usage: caringcaribou send message [-h] [--delay D] [--loop] msg [msg ...] positional arguments: msg message on format ARB_ID#DATA where ARB_ID is interpreted @@ -53,7 +53,7 @@ optional arguments: ## File ``` -$ cc.py send file -h +$ caringcaribou send file -h ------------------- CARING CARIBOU v0.x @@ -61,7 +61,7 @@ CARING CARIBOU v0.x Loaded module 'send' -usage: cc.py send file [-h] [--delay D] [--loop] filename +usage: caringcaribou send file [-h] [--delay D] [--loop] filename positional arguments: filename path to file diff --git a/documentation/troubleshooting.md b/documentation/troubleshooting.md index e17e93e..ac6157a 100644 --- a/documentation/troubleshooting.md +++ b/documentation/troubleshooting.md @@ -4,7 +4,7 @@ This page aims to present solutions to some common errors. ### Missing default configuration file for python-can #### Symptoms -Running `cc.py` and specifying an interface via `-i` gives the following error: +Running `caringcaribou` and specifying an interface via `-i` gives the following error: `NotImplementedError: Invalid CAN Bus Type - None` #### Solution @@ -46,10 +46,10 @@ sudo ip link set vcan0 up ### Missing python-can #### Symptoms -Running `cc.py` gives the following error message: +Running `caringcaribou` gives the following error message: ``` Traceback (most recent call last): - File "cc.py", line 5, in + File "caringcaribou", line 5, in import can ImportError: No module named can ``` diff --git a/documentation/uds.md b/documentation/uds.md index 58a5b4d..916f7ab 100644 --- a/documentation/uds.md +++ b/documentation/uds.md @@ -13,10 +13,10 @@ Supported modes: * dump_dids - Dumps values of Dynamic Data Identifiers (DIDs) * auto - Fully automated diagnostics scan, by using the already existing UDS submodules -As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `cc.py uds discovery -h` or `cc.py uds testerpresent -h` +As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `caringcaribou uds discovery -h` or `caringcaribou uds testerpresent -h` ``` -$ cc.py uds -h +$ caringcaribou uds -h ------------------- CARING CARIBOU v0.x @@ -24,7 +24,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds [-h] +usage: caringcaribou uds [-h] {discovery,services,ecu_reset,testerpresent,security_seed,dump_dids} ... @@ -37,15 +37,15 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py uds discovery - cc.py uds discovery -blacklist 0x123 0x456 - cc.py uds discovery -autoblacklist 10 - cc.py uds services 0x733 0x633 - cc.py uds ecu_reset 1 0x733 0x633 - cc.py uds testerpresent 0x733 - cc.py uds security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 - cc.py uds dump_dids 0x733 0x633 - cc.py uds dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 + caringcaribou uds discovery + caringcaribou uds discovery -blacklist 0x123 0x456 + caringcaribou uds discovery -autoblacklist 10 + caringcaribou uds services 0x733 0x633 + caringcaribou uds ecu_reset 1 0x733 0x633 + caringcaribou uds testerpresent 0x733 + caringcaribou uds security_seed 0x3 0x1 0x733 0x633 -r 1 -d 0.5 + caringcaribou uds dump_dids 0x733 0x633 + caringcaribou uds dump_dids 0x733 0x633 --min_did 0x6300 --max_did 0x6fff -t 0.1 ``` ## Discovery @@ -54,7 +54,7 @@ Scans for arbitration IDs where an ECU responds to UDS requests. The ID of both the request and the matching response are printed. These are typically used as inputs for other UDS modes. ``` -$ cc.py uds discovery -h +$ caringcaribou uds discovery -h ------------------- CARING CARIBOU v0.x @@ -62,7 +62,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds discovery [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] +usage: caringcaribou uds discovery [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] [-sv] [-d D] optional arguments: @@ -82,7 +82,7 @@ optional arguments: Scans an ECU (or rather, a given pair of request/response arbitration IDs) for supported diagnostics services. ``` -$ cc.py uds services -h +$ caringcaribou uds services -h ------------------- CARING CARIBOU v0.x @@ -90,7 +90,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds services [-h] [-t T] src dst +usage: caringcaribou uds services [-h] [-t T] src dst positional arguments: src arbitration ID to transmit to @@ -105,7 +105,7 @@ optional arguments: Scans a diagnostics service ID for supported sub-service IDs. ``` -$ cc.py uds subservices -h +$ caringcaribou uds subservices -h ------------------- CARING CARIBOU v0.x @@ -113,7 +113,7 @@ CARING CARIBOU v0.x Loading module 'uds' -usage: cc.py uds subservices [-h] [-t T] dtype stype src dst +usage: caringcaribou uds subservices [-h] [-t T] dtype stype src dst positional arguments: dtype Diagnostic Session Control Subsession Byte @@ -133,7 +133,7 @@ Requests a restart of an ECU. It is common for an ECU to support multiple reset types. ``` -$ cc.py uds ecu_reset -h +$ caringcaribou uds ecu_reset -h ------------------- CARING CARIBOU v0.x @@ -141,7 +141,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds ecu_reset [-h] [-t T] type src dst +usage: caringcaribou uds ecu_reset [-h] [-t T] type src dst positional arguments: type Reset type: 1=hard, 2=key off/on, 3=soft, 4=enable rapid @@ -162,7 +162,7 @@ Elevated sessions (often referred to as "unlocked servers") automatically fall b By continuing to send Tester Present messages after a server (ECU) has been unlocked (e.g. by an official diagnostics tool), it can be kept in an unlocked state for an arbitrary amount of time in order to allow continued access to protected services. ``` -$ cc.py uds testerpresent -h +$ caringcaribou uds testerpresent -h ------------------- CARING CARIBOU v0.x @@ -170,7 +170,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds testerpresent [-h] [-d D] [-dur S] [-spr] src +usage: caringcaribou uds testerpresent [-h] [-d D] [-dur S] [-spr] src positional arguments: src arbitration ID to transmit to @@ -186,7 +186,7 @@ optional arguments: Scans a range of Dynamic Data Identifiers (DIDs) and dumps their values. ``` -$ cc.py uds dump_dids -h +$ caringcaribou uds dump_dids -h ------------------- CARING CARIBOU v0.x @@ -194,7 +194,7 @@ CARING CARIBOU v0.x Loaded module 'uds' -usage: cc.py uds dump_dids [-h] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] +usage: caringcaribou uds dump_dids [-h] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] src dst positional arguments: @@ -212,7 +212,7 @@ optional arguments: Performs a fully automated diagnostics scan from start to finish, by using the already existing CC modules. ``` -$ cc.py uds auto -h +$ caringcaribou uds auto -h ------------------- CARING CARIBOU v0.x @@ -220,7 +220,7 @@ CARING CARIBOU v0.x Loading module 'uds' -usage: cc.py uds auto [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] [-sv] [-d D] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] +usage: caringcaribou uds auto [-h] [-min MIN] [-max MAX] [-b B [B ...]] [-ab N] [-sv] [-d D] [-t T] [--min_did MIN_DID] [--max_did MAX_DID] options: -h, --help show this help message and exit diff --git a/documentation/uds_fuzz.md b/documentation/uds_fuzz.md index 01caa90..5e82a16 100644 --- a/documentation/uds_fuzz.md +++ b/documentation/uds_fuzz.md @@ -11,10 +11,10 @@ Supported modes: * seed_randomness_fuzzer - ECUReset method fuzzing for seed randomness evaluation * delay_fuzzer - delay fuzzing for targets with weak randomness implemented, to match acquired seed/key pair to the delay in which the seed can be requested -As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `cc.py uds_fuzz seed_randomness_fuzzer -h` or `cc.py uds_fuzz delay_fuzzer -h` +As always, module help can be shown by adding the `-h` flag (as shown below). You can also show help for a specific mode by specifying the mode followed by `-h`, e.g. `caringcaribou uds_fuzz seed_randomness_fuzzer -h` or `caringcaribou uds_fuzz delay_fuzzer -h` ``` -$ cc.py uds_fuzz -h +$ caringcaribou uds_fuzz -h ------------------- CARING CARIBOU v0.x @@ -22,7 +22,7 @@ CARING CARIBOU v0.x Loaded module 'uds_fuzz' -usage: cc.py uds_fuzz [-h] {delay_fuzzer,seed_randomness_fuzzer} ... +usage: caringcaribou uds_fuzz [-h] {delay_fuzzer,seed_randomness_fuzzer} ... UDS seed randomness fuzzer and tester module for CaringCaribou @@ -33,8 +33,8 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py uds_fuzz seed_randomness_fuzzer 100311022701 0x733 0x633 -d 4 -r 1 -id 2 -m 0 - cc.py uds_fuzz delay_fuzzer 100311022701 0x03 0x733 0x633 + caringcaribou uds_fuzz seed_randomness_fuzzer 100311022701 0x733 0x633 -d 4 -r 1 -id 2 -m 0 + caringcaribou uds_fuzz delay_fuzzer 100311022701 0x03 0x733 0x633 ``` ## Seed Randomness Fuzzer @@ -43,7 +43,7 @@ Requests a security seed after a Hard ECUReset, using the supplied request seque If duplicate seeds are found by the tool, it means that the ECU is potentially vulnerable and uses weak random number generation seeded by the system timer. ``` -$ cc.py uds_fuzz seed_randomness_fuzzer -h +$ caringcaribou uds_fuzz seed_randomness_fuzzer -h ------------------- CARING CARIBOU v0.x @@ -51,7 +51,7 @@ CARING CARIBOU v0.x Loaded module 'uds_fuzz' -usage: cc.py uds_fuzz seed_randomness_fuzzer [-h] [-t ITERATIONS] [-r RTYPE] [-id RTYPE] [-m RMETHOD] [-d D] +usage: caringcaribou uds_fuzz seed_randomness_fuzzer [-h] [-t ITERATIONS] [-r RTYPE] [-id RTYPE] [-m RMETHOD] [-d D] stype src dst positional arguments: @@ -89,7 +89,7 @@ That way the exact delay needed to request the user specified seed can be matche In that case, the user can access the security access service of vulnerable ECUs, with just one seed/key pair (it can be obtained in several ways) and no access to the secret key needed to generate the key from the seed. ``` -$ cc.py uds_fuzz delay_fuzzer -h +$ caringcaribou uds_fuzz delay_fuzzer -h ------------------- CARING CARIBOU v0.x @@ -97,7 +97,7 @@ CARING CARIBOU v0.x Loaded module 'uds_fuzz' -usage: cc.py uds_fuzz delay_fuzzer [-h] [-r RTYPE] [-d D] stype target src dst +usage: caringcaribou uds_fuzz delay_fuzzer [-h] [-r RTYPE] [-d D] stype target src dst positional arguments: stype Describe the session sequence followed by the target ECU.e.g. if the following sequence is diff --git a/documentation/xcp.md b/documentation/xcp.md index 70ee7e8..8c95888 100644 --- a/documentation/xcp.md +++ b/documentation/xcp.md @@ -6,7 +6,7 @@ CARING CARIBOU v0.x Loaded module 'xcp' -usage: cc.py xcp [-h] {discovery,info,dump} ... +usage: caringcaribou xcp [-h] {discovery,info,dump} ... XCP module for CaringCaribou @@ -17,9 +17,9 @@ optional arguments: -h, --help show this help message and exit Example usage: - cc.py xcp discovery - cc.py xcp info 1000 1001 - cc.py xcp dump 0x3e8 0x3e9 0x1fffb000 0x4800 -f bootloader.hex + caringcaribou xcp discovery + caringcaribou xcp info 1000 1001 + caringcaribou xcp dump 0x3e8 0x3e9 0x1fffb000 0x4800 -f bootloader.hex ``` ## Discovery @@ -30,7 +30,7 @@ CARING CARIBOU v0.x Loaded module 'xcp' -usage: cc.py xcp discovery [-h] [-min MIN] [-max MAX] +usage: caringcaribou xcp discovery [-h] [-min MIN] [-max MAX] optional arguments: -h, --help show this help message and exit @@ -47,7 +47,7 @@ CARING CARIBOU v0.x Loaded module 'xcp' -usage: cc.py xcp info [-h] src dst +usage: caringcaribou xcp info [-h] src dst positional arguments: src arbitration ID to transmit from @@ -66,7 +66,7 @@ CARING CARIBOU v0.x Loaded module 'xcp' -usage: cc.py xcp dump [-h] [-f F] src dst start length +usage: caringcaribou xcp dump [-h] [-f F] src dst start length positional arguments: src arbitration ID to transmit from diff --git a/setup.py b/setup.py index 66b16e6..e0ee35f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ from setuptools import find_packages, setup -version = "0.5" +version = "0.6" dl_version = "master" if "dev" in version else "v{}".format(version) print(r"""----------------------------------- @@ -55,7 +55,7 @@ } ) -print(r"""----------------------------------------------------------- - Installation completed, run `cc.py --help` to get started ------------------------------------------------------------ +print(r"""------------------------------------------------------------------- + Installation completed, run `caringcaribou --help` to get started +------------------------------------------------------------------- """)