- Pulled the "Conditional Operation" feature we were going to implement in 0.5.0.
- Remove duplicated function entries.
- bswap operand width is not dependent on disassembly mode.
- Fixed a bug in il::ControlFlowGraph::merge that sometimes caused invalid graphs to be generated.
- When shifting constants left by very large values, num-bigint would sometimes allocate too much memory and crash. We check for this now, and set the result to 0.
- Added lifter options
- Nop takes a placeholder instruction
- Added Conditional operation
- Added feature "sanity-checks" to abort early on creation of likely bad IL. Used to help check possible lifter errors.
- oblivia-simplex Linting, falcon now passes cargo clippy --all
- capstone4 is now the default capstone.
- emmanuel099 Multiple improvements to the graph library
- emmanuel099 Natural loops detection
- emmanuel099 Use Semi-NCA Algorithm in
compute_immediate_dominators
- anon8675309 Remove docker network dependency
- anon8675309 Added scripts to get set up outside of Docker
- Use instruction address as temporary scalar index
- Multiple x86 semantics fix-ups
- Update goblin to
0.2
- emmanuel099 Fixed implementational defect in Graph::edges_in/edges_out
- emmanuel099 Created SSA tranformation
- jeandudey Ported falcon to Rust 2018 edition.
- emmanuel099 Lifted additional x86 instructions to intrinsics.
- emmanuel099 Fixed computation of dominance frontiers.
- emmanuel099 Drop dedup from scalars and scalars_mut #56
- Added support for capstone4, thanks to github.com/wuggen. Capstone4 support is guarded behind the feature "capstone4".
- Minor touchups for new warnings as rust compiler evolves.
- Close out #48, which was a weird lifting error with odd x86 instructions.
- Created two new methods,
Loader::program_verbose
andLoader::program_recursive
to catch errors when individual functions are lifted. Otherwise, these errors are ignored.
- Upgrade to falcon_capstone 0.3.0 which builds more cleanly and fixes some bindgen oddness.