Part Number: MSP430FR6989
Tool/software: Code Composer Studio
Hi
I need to run the fuzzer for my code specifically AFL fuzer. How can I fuzz the CCS code using AFL. If any other is suitable for CCS compiled code please let me know.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: MSP430FR6989
Tool/software: Code Composer Studio
Hi
I need to run the fuzzer for my code specifically AFL fuzer. How can I fuzz the CCS code using AFL. If any other is suitable for CCS compiled code please let me know.
Hi,
I haven't heard about this tool before, therefore my initial impressions may not be 100% accurate.
Looking at this tool information on its technical white paper, it seems that in principle it successively runs a given x86 binary executable with a single input that is continuously modified to test the behaviour of the running code. To perform that, it seems to require a massive amount of RAM (for MSP430 standards) to store its code coverage information.
Given that code cross compiled in an x86 architecture cannot be executed natively on the host, that complicates things immensely.
At first it would require a device simulator in the host to cut time on the process of launching a debug session, flashing the device run and transfer code coverage data from the target device. CCS does not have simulators.
As a second detail, the tool seems to operate on a single source of input data. However, embedded systems tend to have multiple sources of data (ADCs, serial ports, timers, etc.) that would have to be properly translated to some sort of stymulus file. Also, randomly changing the incoming bits of a serial port will simply cause the peripheral to either discard the input data or throw an error flag, with minimal or no interaction with the code.
At last, I could see it being used to validate specific sections of the code where heavy algorithm processing is necessary - these tend to be very data-driven and could benefit from the randomness of data. However, this would still need to go through the slow (comparatively speaking) debugging process in a remote target device.
Hopefully I understood the functionality of the tool, but please feel free to make any additional comments, ok?
Regards,
Rafael