[unicorn-engine] Re: Using unicorn to replace houdini on Android

  • From: Michael Goffioul <michael.goffioul@xxxxxxxxx>
  • To: unicorn-engine@xxxxxxxxxxxxx
  • Date: Tue, 22 Oct 2019 12:09:56 -0400

On Tue, Oct 22, 2019 at 8:07 AM Nguyen Anh Quynh <aquynh@xxxxxxxxx> wrote:

On Tue, Oct 22, 2019 at 7:19 PM Michael Goffioul
<michael.goffioul@xxxxxxxxx> wrote:

Although I'm interested in the project, I don't think I have enough
expertise to do it on my own. So it would help to get guidance and
contributions to build the initial skeleton/plumbing.

I've looked at it more closely yesterday. First thing was to compile the
unicorn library for Android (I limited emulation to ARM, as that's the only
thing I'm interested in), compile the ARM samples and run them on the
target platform. This seems to work.

Then I looked at the AndroidNativeEmu project, as it seems to do partly
what I want to achieve. I'm thinking about re-using some concepts from it
and implementing them in C++ (also found the elfio C++ library, which could
simplify loading and processing binaries). The required bridge interface is
defined here:
https://android.googlesource.com/platform/system/core/+/refs/tags/android-10.0.0_r6/libnativebridge/include/nativebridge/native_bridge.h#172

The core parts are:
- loading a shared library (loading deps, relocations...)
- building trampoline stubs for a given function

Let me know if you're interested.

yes i am interested, but i have no spare time for it.

keep me updated. i may help a bit here & there.


First step: support compilation with Android-x86 (could be improved, but
does the job for the time being)
https://github.com/goffioul/unicorn/tree/q-x86

Other related posts: