angr / angr-management

The official angr GUI.
BSD 2-Clause "Simplified" License
868 stars 109 forks source link

Remote angr #60

Open sraboy opened 5 years ago

sraboy commented 5 years ago

This is a feature request based on a recent discussion regarding CHESS. We're not far enough into the conversation to know whether it would actually be used but it seems like a great idea anyway.

It would be nice if angr could run as a "backend server," a la gdbserver, and angr-management dealt with it through a socket. This would allow, for example, using angr with unicorn and pypy3 to analyze my ARM binary on a Pi while using the UI on my x86-64 box.

zardus commented 5 years ago

It'd be awesome to accomplish this via knowledge base synchronization, so that we could seamlessly receive KB updates from the backend server and integrate them.

ltfish commented 5 years ago

It would be nice if angr could run as a "backend server,"

This is definitely planned. Hopefully it will arrive after our knowledge base and in-memory data store refactor.

ananay commented 5 years ago

This looks great! I did have an approach to this that I would like to share:

A way to achieve this functionality would be to write a wrapper the could communicate with angr. We can have a project called "angr-remote" that can be a node application which sits on top of angr. angr-management can then communicate with that node server and that node server can further communicate with angr. This way, we won't have to modify angr (or change very less code in angr) and achieve this functionality.

zardus commented 5 years ago

I'm all for it, but please no node :-)

In general, we've had pretty bad experiences with piping angr-management through javascript (the original version was a straight-up angular app), and I'd really rather avoid it. rpyc is a great solution that lets us keep everything in angr land, or if we really want to do a REST API, we should keep it all in Python on both ends.

On Mon, Apr 15, 2019 at 5:06 PM Ananay Arora notifications@github.com wrote:

This looks great! I did have an approach to this that I would like to share:

A way to achieve this functionality would be to write a wrapper the could communicate with angr. We can have a project called "angr-remote" that can be a node application which sits on top of angr. angr-management can then communicate with that node server and that node server can further communicate with angr. This way, we won't have to modify angr (or change very less code in angr) and achieve this functionality.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/angr/angr-management/issues/60#issuecomment-483462601, or mute the thread https://github.com/notifications/unsubscribe-auth/ADSzl4JO9z4EGdzlcM06m-xLQrGIi-EBks5vhRQfgaJpZM4apJl3 .