v0.27
Fuddly 0.27
This release brings several enhancements and new features as well as
fixing bugs and doing some cleanup. Here under what is the most
noteworthy.
Highlighted New Features
-
Add a Knowledge Infrastructure (refer to the documentation) which enables
to:- to dynamically collect data from Target/Probes, and extract
information from it through dedicated handlers to create knowledge - to add knowledge about the target under tests (like kind of OS,
used programming language, hardware, and so on) - to leverage this information in relevant fuddly subsystems (e.g.,
fuzzing a Filename typed-node with tTYPE will adapt the test cases
depending on the OS/Language/..., if this information is available)
- to dynamically collect data from Target/Probes, and extract
-
Multiple targets can now be used at the same time in all relevant
places of the framework.It makes possible to sequence different actions through various systems
or on the same system but through different kinds of interfaces
(represented by different targets); and to react on feedback retrieved
from all the stimulated targets in a centralized way.
Enhancements
- Some value types got enhanced to support more options and/or
provide more fuzzing cases:INT_str()
,String()
. - Scenarios can now be defined at project level through
Project.register_scenarios()
- Some disruptors got enhanced, especially
tTYPE
that now includes
tSEP
test cases and go beyond.C
andtSEP
have been slightly
improved. - New generic disruptor created:
OP
. - Feedback logs have been harmonized
- Add a configuration facility to Fuddly shell (through
config
command) - Add support in
fmkDB.py
for users to confirm or disprove automated
impact analysis. - Disruptors and scenario Steps get the ability to mark data as
altered or valid in order to enable different handling at Target
level - Add a parameter to describe values of an
INT()
object - NetworkTarget, LocalTarget and TestTarget got improved
- Data modeling got enhancements and bug fixes:
- Non-terminal nodes support now finite+random attributes combination
- Add support for absorption of non byte-aligned nodes
node_builder.RegexParser
useINT_str()
instead ofString()
in more cases- Fix
NT.unfreeze(recursive=True)
incorrect behavior in some condition - ...
- Helpers/Templates enhancements:
- XML helpers provide now way more flexibility.
- Add JSON helpers
- Add a new method
DataModel.validation_tests()
which is called automatically
by fuddly own non-regression tests - Add
send_loop
cosmetics for nicer display (enable it viaconfig shell send_loop aligned True
)
API change
- Due to a change in fmkDB structure, previous fmkDB versions are
not recognized anymore. - Generic and specific parameters that can be specified for
Generators, Disruptors and Operators are now merged into a single
kind of parameters in order to simplify the API. - The class
FeedbackHandler
becomesFeedbackGate
. ProbeStatus
get the new propertyvalue
that replace
set_status
/get_status
methods.- When iterating the
FeedbackGate
, the source parameter which was a string
is now aFeedbackSource
. FmkShell.do_send_loop_noseed
is now the defaultdo_send_loop
.FmkShell.do_send_loop
which was keeping a seed is now renameddo_send_loop_keepseed
.- Refactor
DataModel.absorb()
toDataModel.create_node_from_raw_data()
. - Align semantics of raw format within fmkdb.py and the
Logger()
class.