felberj/binemu

Question

Opened this issue · 3 comments

I saw in this issue: unicorn-engine/unicorn#877 you mentioned implementing something like usercorn but in Rust. Did you make any progress? I'm considering doing this myself, and I'm wondering if you have partial code or general thoughts on the project.

From my memories (last commit was March 2018), this is what I was able to complete:

  • load x86(_64?) elf binaries into unicorn memory
  • implemented a kernel so the binary can do syscalls without touching my host
  • trace the execution (like qira.me)
  • small UI to display the result

At the end I stopped working on it because I was frustrated with rust (this was my first rust project) and the build broke after I added grpc.

My goal was to build a timeless debugger for CTF challenges (like qira.me).

What would be your goal?

I've been working on a binary analysis framework for binaryninja that's written in Rust and I'd like it to be able to emulate entire binaries similar to qiling/usercorn. This will be useful so I can easily switch between concrete/symbolic execution, combine symbolic execution and fuzzing, emulate and instrument malware, etc.

Any chance you can make your repo public or otherwise grant me access to the code? Even if it's broken, it'll reduce the amount of work I have to do if I end up pursuing this route.

Here you go: https://gitlab.com/felberj/tdb

I know nothing about the "state" of the repository, you might want to revert the grpc commit to make it compile again. I released it under the MIT license so you can use it. Feel free to contribute fixes!