Fuzzybit is a library for determining possible values of bits in integers based on observed concrete values.
To install fuzzybit (after downloading):
python setup.py install
To install fuzzybit with pip:
pip install fuzzybit
Here is an example of tracking a single bit using the FuzzyBit class:
>>> import fuzzybit >>> b = fuzzybit.FuzzyBit() >>> b.get_value() '?' >>> b.observe_value('0') >>> b.get_value() '0' >>> b.get_entropy() 0 >>> b.observe_value('0') >>> b.get_value() '0' >>> b.get_entropy() 0 >>> b.observe_value('1') >>> b.get_value() '*' >>> b.get_entropy() 1
Here is an example of tracking an integer using the FuzzyInt class:
>>> import fuzzybit >>> x = fuzzybit.FuzzyInt(16) # Create 16 bit integer >>> x.get_value() '????????????????' >>> x.observe_value(0x0ff0) >>> x.get_value() '0000111111110000' >>> x.get_entropy() 0 >>> x.observe_value(0x0000) >>> x.get_value() '0000********0000' >>> x.get_entropy() 8 >>> x.observe_value(0x0dd1) >>> x.get_value() '0000********000*' >>> x.get_entropy() 9