You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
memflowup should __not__ be installed or ran as root or via sudo. By default rust installs cargo and all binaries installed via cargo on a per-user basis. This means running the installation as root will result in memflowup being placed in `/root/` (because it is the root user's home directory) and will also only be accessible from the root user.
41
36
42
37
### 2. Installing plugins
43
38
44
-
When running `memflowup` for the first time it is recommended to use the interactive mode and install memflow from the stable branch.
45
-
46
-
Installing packages system-wide will place all plugins in `/usr/local/lib/memflow`.\
47
-
Installing packages per user will place all plugins in `$HOME/.local/lib/memflow`.
39
+
To get started quickly, you can pull all available plugins from the default registry:
48
40
49
-
You might also want to build all packages from source for now.
41
+
```
42
+
> memflowup pull --all
43
+
```
50
44
51
-
memflow will later automatically look in both of those directories (and the current working directory) for plugins.
45
+
This will download and install all memflow plugins from the registry (http://registry.memflow.io).
52
46
53
-
Please make sure to __not__ run memflow as root (see the [note](#note) above)
47
+
You can also view available plugins before installing:
48
+
```
49
+
> memflowup registry ls
54
50
```
55
-
> memflowup interactive
56
-
do you want to build packages from source? [y/N]: y
57
-
Running in interactive mode. You can always re-run memflowup to install additional packages, or to different paths.
58
-
do you want to install the initial packages system-wide? [Y/n]: n
59
-
which channel do you want to use? [stable/DEVELOPMENT]: development
60
-
Available packages in dev channel:
61
-
0. memflow-win32 - CorePlugin
62
-
1. memflow-native - CorePlugin
63
-
2. memflow-qemu - CorePlugin
64
-
3. memflow-coredump - CorePlugin
65
-
4. memflow-pcileech - CorePlugin
66
51
67
-
Type packages to install by number, name, or type * for all:
68
-
*
52
+
Or install specific plugins:
53
+
```
54
+
> memflowup pull win32
55
+
> memflowup pull native
56
+
> memflowup pull qemu
57
+
```
69
58
70
-
...
71
-
Initial setup done!
59
+
To see what plugins are currently installed locally:
72
60
```
61
+
> memflowup plugins ls
62
+
```
63
+
64
+
memflow will automatically look for plugins in the installation directories and the current working directory.
73
65
74
-
It is always possible to re-run interactive mode and redo the initial setup.
66
+
Please make sure to __not__run memflow as root (see the [note](#note) above).
75
67
76
-
### 2. Updating plugins
68
+
### 3. Building plugins from source (optional)
77
69
78
-
To update all the installed plugins simply run `memflowup update`:
70
+
If you prefer to build plugins from source, you can install directly from GitHub repositories:
You can safely ignore the warning about the 'detached HEAD' state. This happens because we are checking out a specific tag in the memflow repo.
111
-
112
105
And run one of the examples:
113
106
```
114
107
> cargo run --example process_list -- --os native
115
108
```
116
-
This examples runs the process_list example (which just lists all processes on the system) using the [`memflow-native`](https://github.com/memflow/memflow-native) plugin. This plugin simply proxies your local OS calls to memflow (as in using [process_vm_readv](https://man7.org/linux/man-pages/man2/process_vm_readv.2.html) and [process_vm_writev](https://man7.org/linux/man-pages/man2/process_vm_writev.2.html)).
109
+
This example runs the process_list example (which just lists all processes on the system) using the [`memflow-native`](https://github.com/memflow/memflow-native) plugin. This plugin simply proxies your local OS calls to memflow (as in using [process_vm_readv](https://man7.org/linux/man-pages/man2/process_vm_readv.2.html) and [process_vm_writev](https://man7.org/linux/man-pages/man2/process_vm_writev.2.html)).
117
110
118
111
If everything went well you should see a list of all open processes:
119
112
```
@@ -123,7 +116,6 @@ If everything went well you should see a list of all open processes:
123
116
...
124
117
```
125
118
126
-
127
119
## Windows
128
120
129
121
### 1. Installing memflowup
@@ -145,87 +137,90 @@ info: checking for self-update
145
137
info: cleaning up downloads & tmp directories
146
138
```
147
139
148
-
After setting up cargo properly you can install memflowup via cargo:
140
+
The recommended way to install memflowup is through our automated script:
You can safely ignore the warning about the 'detached HEAD' state. This happens because we are checking out a specific tag in the memflow repo.
222
217
In case you are missing git you can install it from [here](https://git-scm.com/download/win).
223
218
224
219
And run one of the examples:
225
220
```
226
221
> cargo run --example process_list -- --os native
227
222
```
228
-
This examples runs the process_list example (which just lists all processes on the system) using the [`memflow-native`](https://github.com/memflow/memflow-native) plugin. This plugin simply proxies your local OS calls to memflow (as in using [ReadProcessMemory](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory) and [WriteProcessMemory](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory)).
223
+
This example runs the process_list example (which just lists all processes on the system) using the [`memflow-native`](https://github.com/memflow/memflow-native) plugin. This plugin simply proxies your local OS calls to memflow (as in using [ReadProcessMemory](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory) and [WriteProcessMemory](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-writeprocessmemory)).
229
224
230
225
If everything went well you should see a list of all open processes:
231
226
```
@@ -243,3 +238,51 @@ If everything went well you should see a list of all open processes:
243
238
244
239
...
245
240
```
241
+
242
+
## Additional Commands
243
+
244
+
For more advanced usage, memflowup provides several additional commands:
245
+
246
+
### Getting help
247
+
```
248
+
> memflowup help
249
+
```
250
+
251
+
### Managing plugins
252
+
```
253
+
# Remove a specific plugin
254
+
> memflowup plugins remove coredump
255
+
256
+
# List all locally installed plugins
257
+
> memflowup plugins ls
258
+
259
+
# Clean up old plugin versions
260
+
> memflowup plugins clean
261
+
```
262
+
263
+
### Working with registries
264
+
```
265
+
# List all available plugins in the registry
266
+
> memflowup registry ls
267
+
268
+
# Configure a custom registry
269
+
> memflowup config set registry http://my-registry.io
270
+
> memflowup config set pub_key_file /home/user/key_file.pub
271
+
```
272
+
273
+
All plugins in the memflow-registry are signed and the signature is checked by memflowup during the download process. Using a custom registry requires setting up the appropriate public key that was used for signing the files in the registry.
274
+
275
+
## Troubleshooting
276
+
277
+
### Mac OS Issues
278
+
If you are using Mac OS and encounter an error building proc-macro2, run:
279
+
```
280
+
> xcode-select --install
281
+
```
282
+
283
+
### Migrating from memflowup 0.1
284
+
If you're upgrading from an older version of memflowup:
285
+
1. Delete all system-wide installed plugins in `/usr/lib/memflow`
286
+
2. Delete all installed plugins for the current user in `~/.local/lib/memflow`
287
+
3. Delete the `/etc/memflowup` folder
288
+
4. Reinstall all plugins via `memflowup pull --all`
0 commit comments