[panda-users] Announcing PANDA 2.0

Brendan Dolan-Gavitt brendandg at nyu.edu
Mon Nov 28 17:46:26 EST 2016


The PANDA team is pleased to announce the initial release of PANDA 2.0.
It's been roughly four years since we first released PANDA, and it's
come a long way, becoming more stable, featureful, and easier to use --
in large part because of fantastic contributions from developers around
the world.

At the same time, though, QEMU has undergone huge changes, and PANDA
hasn't kept up. QEMU now supports new platforms like Mac OS X, has
improved the TCG emulator's performance, and includes countless security
fixes. The main goal of PANDA 2.0 is to re-sync with upstream QEMU,
allowing us to take advantage of all of these improvements. We've also
restructured the repository, which will make it easier to keep up with
upstream changes in the future.

PANDA 1.0 is still available at https://github.com/moyix/panda, but
all new development will be done on PANDA 2.0. Associated projects like
PANDA malrec will be moving to PANDA 2.0 soon.

Getting PANDA 2.0
-----------------

To make migrating to PANDA 2.0 easier, we've left PANDA 1.0 in place at
its original URL. PANDA 2.0 can be found at:

https://github.com/panda-re/panda

PANDA 2.0 can be built on Ubuntu by doing:

curl https://raw.githubusercontent.com/panda-re/panda/master/panda/scripts/install_ubuntu.sh
| bash

If you want to install and run PANDA 2.0 in Docker, you can do:

docker pull pandare/panda

Porting Plugins to PANDA 2.0
----------------------------

We are currently a bit short on documentation on precisely how to
migrate your existing plugins to PANDA 2.0. We will be writing up a
migration guide, but in the meantime you can have a look at what changes
the asidstory plugin needed to work with PANDA 2.0. Most of the changes
stem from the fact that QEMU has split up the CPU state into two parts
rather than a single monolithic CPUState *env.

Known Issues
------------

* Android support has been dropped. PANDA's original support for Android
  was a huge undertaking that required porting over a large number of
  emulated devices from the Android emulator. QEMU's device APIs have
  changed significantly since then, and updating them was not feasible.
  If anyone wants to take on this task, we'd be happy to incorporate the
  changes!
* Record/replay currently does not work with QEMU's q35 machine. The
  underlying issue that QEMU's emulated AHCI controller does DMA in a
  way that bypasses the standard QEMU DMA APIs, which leads to
  record/replay divergence.
* ARM support is currently not finished. We're working on this!
* Because of the large number of changes made to the emulated hardware
  and memory APIs in QEMU, recordings made in PANDA 1.0 will not replay
  under PANDA 2.0.
* Not all plugins have been ported over (and some of the less useful
  ones will probably be left out entirely). More will follow soon!

If you discover any additional issues, please open an issue on Github!

-- 
Brendan Dolan-Gavitt
Assistant Professor, Department of Computer Science and Engineering
NYU Tandon School of Engineering


More information about the panda-users mailing list