Skip to content

@jtpereyda jtpereyda released this May 26, 2019 · 81 commits to master since this release

v0.1.5

Features

  • New curses logger class to provide a console gui similar to the webinterface. Use the session option console_gui to enable it.
    This has not been tested under Windows!
  • Compatibility for Python 3
  • Large test cases are now truncated, unless a failure is detected.
  • When a target fails to respond after restart, boofuzz will now continue to restart instead of crashing.
  • New Session option keep_web_open to allow analyzing the test results after test completion.
  • Process monitor creates new crash file for each run by default.
  • Long lines now wrap in web view; longer lines no longer need to be truncated.
  • Process monitor now stores crash bins in JSON format instead of pickled format.
  • Process monitor in Windows will use taskkill -F if taskkill fails.

Fixes

  • Web server no longer crashes when asked for a non-existing test case.
  • EINPROGRESS socket error is now handled while opening a socket (note: this sometimes-transient error motivated the move to retry upon connection failure)
Assets 2

@jtpereyda jtpereyda released this Mar 12, 2019 · 199 commits to master since this release

v0.1.4

Features

  • New Session options restart_callbacks, pre_send_callbacks, and post_test_case_callbacks to hand over custom callback functions.
  • New Session option fuzz_db_keep_only_n_pass_cases. This allowes saving only n test cases preceding a failure or error to the database.
  • Added logic to find next available port for web interface or disable the web interface.
  • Removed sleep logs when sleep time is zero.

Fixes

  • Windows process monitor now handles combination of proc_name and/or start_commands more reasonably
  • Windows process monitor handles certain errors more gracefully
  • Fixed target close behavior so post send callbacks can use the target.
  • Fixed a dependency issue in installation.
Assets 2

@jtpereyda jtpereyda released this Feb 18, 2019 · 251 commits to master since this release

v0.1.3

Features

  • Socket Connections now allow client fuzzing.
  • Log only the data actually sent, when sending is truncated. Helps reduce database size, especially when fuzzing layer 2 or 3.
  • Target recv function now accepts a max_recv_bytes argument.

Fixes

  • Fixed install package -- now includes JavaScript files.
Assets 2

@jtpereyda jtpereyda released this Nov 17, 2018 · 269 commits to master since this release

v0.1.2

Features

  • Clearer error message when procmon is unavailable at fuzz start.
  • Web UI now refreshes current case even when snap-to-current-test-case is disabled.

Fixes

  • Web UI no longer permits negative test cases.
  • Fix Windows procmon regression.
  • Minor fixes and UI tweaks.
Assets 2

@jtpereyda jtpereyda released this Oct 2, 2018 · 284 commits to master since this release

v0.1.1

Features

  • New boo open command can open and inspect saved database log files.
  • Unix procmon now saves coredumps by default.
  • Improved "Cannot connect to target" error message.
  • Improved API for registering callbacks.
  • Made the global REQUESTS map available in top level boofuzz package.

Fixes

  • Handle exceptions when opening crash bin files in process monitor.
  • Fix Block.__len__ to account for custom encoder.
Assets 2

@jtpereyda jtpereyda released this Aug 8, 2018 · 312 commits to master since this release

v0.1.0

Features

  • Web UI
    • Statistics now auto-update.
    • Test case logs now stream on the main page.
    • Cool left & right arrow buttons to move through test case
  • New Session parameter receive_data_after_fuzz. Controls whether to execute a receive step after sending
    fuzz messages. Defaults to False. This significantly speeds up tests in which the target tends not to respond to
    invalid messages.
Assets 2

@jtpereyda jtpereyda released this Jul 29, 2018 · 333 commits to master since this release

v0.0.13

Features

  • Web UI
    • Test case numbers are now clickable and link to test case detail view.
    • Test case details now in color!
  • FuzzLoggerDB
    • Added FuzzLoggerDB to allow querying of test results during and after test run. Saves results in a SQLite file.
    • Added Session.open_test_run() to read test results database from previous test run.
  • New Session.feature_check() method to verify protocol functionality before fuzzing.
  • Process Monitor
    • Unify process monitor command line interface between Unix and Windows.
    • Added procmon option proc_name to support asynchronously started target processes.
    • procmon is now checked for errors before user post_send() is called, reducing redundant error messages.
    • Improved procmon logging.
    • Process monitor gives more helpful error messages when running 64-bit application (unsupported) or when a process is
      killed before being attached
  • Logging Improvements
    • Target open() and close() operations are now logged.
    • Added some optional debug output from boofuzz runtime.
    • Improve capability and logging of messages' callback methods.
  • New Session & Connection Options
    • Add Session receive_data_after_each_request option to enable disabling of data receipt after messages are sent.
    • Session skip argument replaced with index_start and index_end.
    • Session now has separate crash thresholds for elements/blocks and nodes/messages.
    • Give SocketConnection separate timeouts for send()/recv().
  • Ease of Use
    • Target.recv() now has a default max_bytes value.
    • Added DEFAULT_PROCMON_PORT constant.
    • Session.post_send()'s sock parameter now deprecated (use target instead).

Fixes

  • Fixed bug in which failures were not recognized.
  • BitField blocks with ASCII format reported incorrect sizes.
  • Fixed bug in s_update.
  • Handle socket errors that were getting missed.
  • Fixed process monitor logging when providing more or less than 1 stop/start commands.
  • Show graceful error on web requests for non-existent test cases.
  • get_max_udp_size() was crashing in Windows.
  • String padding was not always being applied.
  • String was not accepting unicode strings in value parameter.
  • String was skipping valid mutations and reporting wrong num_mutations() when size parameter was used.
  • Unix and Windows process monitors now share much more code.

Development

  • Added unit tests for BitField.
  • Cleaned up CSS on web pages.
  • Added a unit test to verify restart on failure behavior
Assets 2

@jtpereyda jtpereyda released this Apr 16, 2018 · 434 commits to master since this release

0.0.12

Features

  • Test cases now have descriptive names
  • Added Session methods to fuzz a test cae by name: fuzz_by_name and fuzz_single_node_by_path

Fixes

  • Fixed test case numbers when using fuzz_single_case
Assets 2

@jtpereyda jtpereyda released this Nov 23, 2017 · 457 commits to master since this release

0.0.11

Features

  • Set Session check_data_received_each_request to False to disable receive after send.

Fixes

  • Dosctring format fixes.
Assets 2

@jtpereyda jtpereyda released this Nov 5, 2017 · 467 commits to master since this release

0.0.10

Features

  • Add Session ignore_connection_reset parameter to suppress ECONNRESET errors.
  • Add Session ignore_connection_aborted parameter to suppress ECONNABORTED errors.

Fixes

  • Fix Session class docstring formats.
Assets 2
You can’t perform that action at this time.