h33p / memflow-applied

Memflow 0.1.0 tutorials
8 stars 1 forks source link

troubles with qemu_procfs connectors cannot run memflow-applied rustc programs because of that #1

Open lukrei opened 6 months ago

lukrei commented 6 months ago

in my project i try to run let connector = unsafe { inventory.create_connector_default("qemu_procfs")? }; it does not work because cargo run gives connector not found error.

user@srvkvm2:~/memflow-applied/scanflow$ sudo cargo run Running /home/user/memflow-applied/scanflow/./runner.sh target/debug/scanflow setcap for target/debug/scanflow 12:46:33 [INFO] scanning "/lib/memflow" for connectors 12:46:33 [INFO] scanning "/usr/lib/memflow" for connectors 12:46:33 [INFO] scanning "/usr/local/lib/memflow" for connectors 12:46:33 [ERROR] unable to find connector with name 'qemu_procfs'. available connectors are: Error: Core(Connector("connector not found"))

user@srvkvm2:~/memflow-applied/scanflow$ memflowup install memflow-qemu-procfs Package 'memflow-qemu-procfs' was not found. Some packages failed to install, try 'memflowup list' to see all available packages.

memflowup interactive Available packages in dev channel:

  1. memflow-win32 - CorePlugin [installed: binary nightly]
  2. memflow-native - CorePlugin [installed: binary nightly]
  3. memflow-qemu - CorePlugin [installed: binary nightly]
  4. memflow-coredump - CorePlugin [installed: binary nightly]
  5. memflow-kcore - CorePlugin [installed: binary nightly]

Type packages to install by number, name, or type * for all:

VS Compile from source: Available packages in dev channel:

  1. memflow-win32 - CorePlugin [installed: git 9d690f]
  2. memflow-native - CorePlugin [installed: git 8b056b]
  3. memflow-qemu - CorePlugin [installed: git 306636]
  4. memflow-coredump - CorePlugin [installed: git 98f2eb]
  5. memflow-kcore - CorePlugin [installed: git 2eea57]
  6. memflow-pcileech - CorePlugin [installed: git edaca4]
  7. memflow-kvm - CorePlugin [installed: git 3e782a]

Type packages to install by number, name, or type for all: Installing memflow-win32 The installed version of memflow-win32 is already the latest version. Installing memflow-native The installed version of memflow-native is already the latest version. Installing memflow-qemu The installed version of memflow-qemu is already the latest version. Installing memflow-coredump The installed version of memflow-coredump is already the latest version. Installing memflow-kcore The installed version of memflow-kcore is already the latest version. Installing memflow-pcileech The installed version of memflow-pcileech is already the latest version. Installing memflow-kvm The installed version of memflow-kvm is already the latest version.

lukrei commented 6 months ago

I tried to update the dependencies to memflow 0.2.0-beta10 as you mentioned in the cloudflow git but here I get error messages during cargo run compilation of scanflow v0.1.0.

error[E0432]: unresolved importmemflow::connector::inventory --> src/main.rs:1:25 | 1 | use memflow::connector::inventory::ConnectorInventory; | ^^^^^^^^^ could not findinventoryinconnector`

error[E0432]: unresolved import memflow::mem::virt_mem::VirtualMemory --> src/main.rs:2:5 2 use memflow::mem::virt_mem::VirtualMemory; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no VirtualMemory in mem::virt_mem

help: consider importing one of these items instead | 2 | use crate::ErrorOrigin::VirtualMemory; | ~~~~~~~~~~ 2 | use memflow::prelude::ErrorOrigin::VirtualMemory; | ~~~~~~~~~

error[E0432]: unresolved import memflow_win32::win32::Kernel --> src/main.rs:5:28 5 use memflow_win32::win32::{Kernel, Win32Process}; ^^^^^^
no Kernel in win32
help: a similar name exists in the module (notice the capitalization): kernel
error[E0432]: unresolved imports memflow_win32::Error, memflow_win32::Result --> src/main.rs:6:21 6 use memflow_win32::{Error, Result}; ^^^^^ ^^^^^^ no Result in the root
no Error in the root
help: consider importing one of these items instead 6 use memflow_win32::{core::error::Error; ~~~~~~~ 6 use memflow_win32::{core::fmt::Error; ~~~~~ 6 use memflow_win32::{crate::LevelFilter::Error; ~~~~~~ 6 use memflow_win32::{crate::PartialError::Error; ~~~~~~~ and 9 other candidates help: consider importing one of these items instead
6 use memflow_win32::{Error, core::fmt::Result;
~~~~~~
6 use memflow_win32::{Error, core::result::Result;
~~~~~
6 use memflow_win32::{Error, memflow::prelude::Result;
~~~~~
6 use memflow_win32::{Error, std::fmt::Result;
~~~~~
and 3 other candidates
error[E0599]: no method named module_list found for struct Win32Process in the current scope --> src/main.rs:24:27 24 let modules = process.module_list()?; ^^^^^^^^^^^ method not found in Win32Process<_, _, Win32VirtualTranslate>
::: /home/luky/.cargo/registry/src/github.com-1ecc6299db9ec823/memflow-0.2.0-beta9/src/os/process.rs:164:8 164 fn module_list(&mut self) -> Result<Vec> { ----------- the method is available for Win32Process<_, _, Win32VirtualTranslate> here
= help: items from traits can only be used if the trait is in scope
help: the following trait is implemented but not in scope; perhaps add a use for it: 1 use memflow::os::Process;

error[E0599]: no associated item named Other found for struct memflow::error::Error in the current scope --> src/main.rs:27:23 | 27 | .ok_or(Error::Other("Could not find the module"))?; | ^^^^^ associated item not found in memflow::error::Error

error[E0599]: no method named virt_read_raw_into found for struct VirtualDma in the current scope --> src/main.rs:38:26 | 38 | process.virt_mem.virt_read_raw_into(base + i, &mut buf).datapart()?; | ^^^^^^^^^^^^^^^^^^ method not found in `VirtualDma<, _, Win32VirtualTranslate>`

error[E0599]: no method named virt_write_raw found for struct VirtualDma in the current scope --> src/main.rs:41:30 | 41 | process.virt_mem.virt_write_raw(base + i, replacestr)?; | ^^^^^^^^^^^^^^ method not found in `VirtualDma<, _, Win32VirtualTranslate>`

Some errors have detailed explanations: E0432, E0599. For more information about an error, try rustc --explain E0432. error: could not compile scanflow due to 8 previous errors `

h33p commented 5 months ago

With 0.2.0 proper out, you should just use 0.2.0. In 0.2, qemu_procfs was renamed to qemu.

You can still install 0.1.x series using provided install.sh script: https://github.com/memflow/memflow-qemu/tree/0.1.5