Releases: br0kej/bin2ml
Reckless Riddler
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
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
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 todisasm
to ensure no odd behaviour
Fixes
cargo fmt
applied throughout
Full Changelog: v0.3.1...v0.3.2
Broken Frostbite
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
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 stopdecomp
generated without being overwritten.- Made the CLI options for
pcode-func
/pcode-bb
be the same acrossextract
andgenerate
options.
Breaking Change
- The
pcode-func
andpcode-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
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
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
andesil
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
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 theextract
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 fromextract
. - Enhanced the overall test suite with more tests focused on graph generation and deduplication
Fixes:
- Replaced most file path variable types with
Path
orPathBuf
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
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 byradare2
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 asTrex
'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 forcgs
and one foresil
. - With the additional dedup additions, the dedup functionality as a whole has also been tested and a few bugs stomped!
Puzzled Centurion
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