falconre / falcon

Binary Analysis Framework in Rust
Apache License 2.0
549 stars 47 forks source link

0.5.0 #87

Closed endeav0r closed 4 years ago

endeav0r commented 4 years ago

@emmanuel099 This adds an option to translators, allowing all unhandled instructions to be lifted to intrinsics. This is also an API-breaking change, so 0.5.0 bump.

Anything you want to throw in/change that may be API breaking?

emmanuel099 commented 4 years ago
  1. Make use of rustc-hash in Graph which brings some nice performance gains for large CFGs (esp. after loop unrolling and function inlining) (https://github.com/emmanuel099/falcon/commit/585a5a9a729b289274387c8e473f377672f15c23)
  2. Placeholder in nop would be great (https://github.com/falconre/falcon/issues/71)
  3. Conditional operation would be awesome (https://github.com/falconre/falcon/issues/71)

When 2. and 3. are in place I can finally get rid of all my ugly downstream hacks (https://github.com/emmanuel099/falcon/commit/4cac5d2d6939eb252323ab532ce4538cc11e6d3d and https://github.com/emmanuel099/falcon/commit/3842c0aeb81f998eeb9905bfca14a60bbe994731) :)

If 2. and 3. are OK with you, I'll try to implement one/both of them.

endeav0r commented 4 years ago

Yeah, let’s start hacking things up, and merge them into this PR?

emmanuel099 commented 4 years ago

@emmanuel099 This adds an option to translators, allowing all unhandled instructions to be lifted to intrinsics.

Thanks, really nice change :) Shall we add this option to program_recursive_verbose and friends as well?

emmanuel099 commented 4 years ago

@endeav0r Sorry. Unintentionally pushed my forked master to upstream master, instead of the correct branch :/ Fixed now.

FYI this PR is not merged.

endeav0r commented 4 years ago

lol