panda-re / panda

Platform for Architecture-Neutral Dynamic Analysis
https://panda.re
Other
2.47k stars 474 forks source link

PANDA container seems broken #1438

Open zestrada opened 7 months ago

zestrada commented 7 months ago

As a result of https://github.com/panda-re/panda/pull/1399, it looks like libpanda moved to /usr/local/lib/panda and we moved away from using the -softmmu suffix.

We set the PANDA_PATH env var in our Dockerfile for dockerized builds, so it appears that those paths may need to be updated and I made an attempt to create the appropriate changes with commit https://github.com/panda-re/panda/commit/10f4e1ad4e660df53061e69778c5356dd837e544 .

I kept running into issues with mod.rs in panda-re, so I attempted to make the approriate change there but I don't have commit access to that repository. Those changes are shown in the diff below:

diff --git a/panda-rs/src/plugins/mod.rs b/panda-rs/src/plugins/mod.rs
index f231049..5192700 100644
--- a/panda-rs/src/plugins/mod.rs
+++ b/panda-rs/src/plugins/mod.rs
@@ -389,28 +389,28 @@ pub struct Plugin {
 }

 #[cfg(feature = "x86_64")]
-const PLUGIN_DIR: &str = "x86_64-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "x86_64/panda/plugins";

 #[cfg(feature = "i386")]
-const PLUGIN_DIR: &str = "i386-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "i386/panda/plugins";

 #[cfg(feature = "arm")]
-const PLUGIN_DIR: &str = "arm-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "arm/panda/plugins";

 #[cfg(feature = "aarch64")]
-const PLUGIN_DIR: &str = "aarch64-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "aarch64/panda/plugins";

 #[cfg(feature = "mips")]
-const PLUGIN_DIR: &str = "mips-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "mips/panda/plugins";

 #[cfg(feature = "mipsel")]
-const PLUGIN_DIR: &str = "mipsel-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "mipsel/panda/plugins";

 #[cfg(feature = "mips64")]
-const PLUGIN_DIR: &str = "mips64-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "mips64/panda/plugins";

 #[cfg(feature = "ppc")]
-const PLUGIN_DIR: &str = "ppc-softmmu/panda/plugins";
+const PLUGIN_DIR: &str = "ppc/panda/plugins";

 impl Plugin {
     pub fn new(name: &str) -> Self {

I think there might be a simpler/more elegant fix than what I've been messing around with here.