Skip to content

Releases: br0kej/bin2ml

Reckless Riddler

23 Nov 21:42
Compare
Choose a tag to compare

New Features:

  • Added support for extracting strings
  • Added support for extracting function bytes, mirroring the REFUSE model outlined in this paper

Full Changelog: v0.4.0...v0.4.1

Vague Pebble

11 Sep 22:00
a4c8e40
Compare
Choose a tag to compare

Fixes

  • The functionality associated with the CFG edge processing has been refactored. This change should reduce the number of errors encountered when processing highly optimised binaries.

Full Changelog: v0.3.2...v0.4.0

Evil Cookie

20 Aug 11:07
cee75a1
Compare
Choose a tag to compare

New Features:

  • Added support for creating r2 pseudo-code based control flow graphs

Tweaks

  • The option for creating pseudo-code is on by default now and any references to opcode have been refactored to disasm to ensure no odd behaviour

Fixes

  • cargo fmt applied throughout

Full Changelog: v0.3.1...v0.3.2

Broken Frostbite

29 Jul 09:14
bc146e0
Compare
Choose a tag to compare

New Features:

  • Added CI to run tests across Stable, Nightly and beta.
  • Added support for generating Control Flow Graphs (CFGs) with pcode basic block features (as text)
  • Added a full test suite for the pcode CFG generation

Fixes

  • Fixed a few warnings due to new features within cargo Fixes #15

Full Changelog: v0.3.0...v0.3.1

Formal Supernova

09 Jun 09:24
Compare
Choose a tag to compare

New Features:

  • Added support for creating linear walks, pairs and function strings from function-level p-code
  • Added support for creating linear walks, pairs and function strings from basic block level p-code.
  • Updated the raw data examples to include the full range of data that can be extracted now.

Fixes

  • decomp generated with IDE/styling annotations will now be saved with _annotations in the path. This should stop decomp generated without being overwritten.
  • Made the CLI options for pcode-func/pcode-bb be the same across extract and generate options.

Breaking Change

  • The pcode-func and pcode-bb format has changed to accommodate for easier loading. Sadly, any previous data won't load correctly and will have to be regenerated.

Full Changelog: v0.2.9...v0.3.0

Chief Clown

20 May 19:38
Compare
Choose a tag to compare

New Features:

  • Added support for extracting decompilation using r2ghidra (closes #12)
  • Added support for extracting PCode at both a function level and a basic block level.
  • Added support for extracting local variable xrefs

Fixes:

  • Fixing the depth-first search sampling for create single or pairs of esil/disasm.

Full Changelog: v0.2.8...v0.2.9

Big Eagle

15 Apr 15:54
Compare
Choose a tag to compare

New Features:

  • Adding support for generating call graphs with TikNib and Tiknib + Finfo function level features.
  • Adding support for generating control flow graphs with disasm and esil instructions as nodes (i.e basic block) features as well as basic block level TikNib features.
  • Enhance the functionality for generating combinations of features with better functionality for combining TikNib and Function Info datatypes together.
  • Ability to dedup binarycorp graphs
  • Added initial input validation for generating artefacts. This only works on single files being processed but catches common use cases. Thanks again to @cielonet for the great suggestion.

Fixes:

  • Fixing several panics thanks to @cielonet bug report
  • Fixing mistakes associated with the big PathBuf/Path refactor.

Full Changelog: v0.2.7...v0.2.8

Iron Mantis

04 Mar 20:21
ddb0239
Compare
Choose a tag to compare

New Features:

  • Experimental support for processing Windows binaries alongside pulling PDB files using the in-built functionality of radare2. A new flag of --extended analysis has been added to the extract command to support recovering C++ virtual tables.
  • Added functionality to generate Global/Binary-level Call graphs with and without features in a similar manner to the function level call graphs.
  • Added functionality to support inplace deduplication which removes/deletes duplicates
  • Added functionality to support chunked deduplication when a single group (i.e the duplicates several binaries from the same source) is very large.
  • Added an experimental/dev feature cli called combos - Aim is to develop this into a generic method of combining data generated from extract.
  • Enhanced the overall test suite with more tests focused on graph generation and deduplication

Fixes:

  • Replaced most file path variable types with Path or PathBuf to make them a bit more flexible.
  • Various additions to resolve unhandled panics when processing/generation.
  • Lots of clippy/tidy up of code to make it more idiomatic rust.

Mad Prodigy

15 Jan 14:47
ad644b1
Compare
Choose a tag to compare

Due to the amount of fixes over the last month or so, we've skipped a version! We were on 0.2.4 but are now on 0.2.6!

New Features:

  • Added support for dropping unk.**** functions from the call graph generation code. unk.*** functions are created by radare2 when there is a call but it cannot work out where it goes too!
  • Added threaded generation to call graph generation
  • Added support for deduplication across the BinKit dataset as well as Trex's dataset (Cisco Talos Binary Similiarity Dataset-2)
  • Added support for generation of tiknib function level metadata information from their paper.
  • Added univeral de-dup support for all types of call graph node types.

Fixes:

  • Added a full test suite for call graph generation/dedup and stomped several bugs. The most impactful being function callees were being created multiple times rather than adding just new edges. This has been tested with and without unk removal too.
  • Amended how the dedup CLI commands work so there is one for cgs and one for esil.
  • With the additional dedup additions, the dedup functionality as a whole has also been tested and a few bugs stomped!

Puzzled Centurion

06 Dec 15:57
dcf81a9
Compare
Choose a tag to compare

New Features:
Expanded the support for adding metadata to graphs to cover all call graph types
Added support for parallel de-duplication of typed call graphs
Updated the Dockerfiles + documentation to have two version. One for just building bin2ml and one which builds bin2ml and radare2 to support in-container processing.
Added data samples for all of the call graph + metadata combinations to the the data samples directory

Fixes
Fixed an issue reported in #4 related to large positive integers not fitting into i64
Fair bit of general tidying, clippy and rustfmt