memshell-party-cli 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memshell-party-cli",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "Command-line client and MCP server for MemShellParty (party.mem.mk) — generate Java memory shells and probes from the terminal.",
5
5
  "keywords": [
6
6
  "memshell",
@@ -17,7 +17,7 @@ Two equivalent interfaces — pick whichever is available:
17
17
 
18
18
  - **CLI**: `memparty <command> [flags]` (install: `npm install -g memshell-party-cli`, or `npx memshell-party-cli`).
19
19
  - **MCP tools** (if the `memshell-party` MCP server is connected): `list_servers`, `list_config`,
20
- `list_packers`, `list_command_configs`, `list_shell_tool_configs`, `list_obfuscation_options`, `generate_memshell`, `generate_probe`, `bytecode_decode`, `bytecode_transform`, `parse_classname`,
20
+ `list_packers`, `list_command_configs`, `list_shell_tool_configs`, `list_plugins`, `list_remote_options`, `list_obfuscation_options`, `generate_memshell`, `generate_probe`, `bytecode_decode`, `bytecode_transform`, `parse_classname`,
21
21
  `server_version`, `connect_test`, `exec_command`, `download_file`, `upload_file`, `target_save`,
22
22
  `target_note`, `target_list`, `target_remove`, `log_list`.
23
23
 
@@ -36,6 +36,8 @@ memparty config packers # packer parent/child tree
36
36
  memparty config command # Command-tool encryptors & implementation classes
37
37
  memparty config tool-configs # v3+ shell-tool fields & enum choices
38
38
  memparty config obfuscation # v3+ obfuscation options
39
+ memparty config plugins # v3.1+ external plugin metadata/load status
40
+ memparty config remote-options PluginTool target --url https://example.com/options --json
39
41
  ```
40
42
 
41
43
  Add `--json` for machine-readable output. Use the exact strings these return.
@@ -141,6 +143,9 @@ Common tool-specific flags:
141
143
  - Command: `--command-param-name`, `--encryptor RAW|BASE64|DOUBLE_BASE64`, `--implementation-class RuntimeExec|ForkAndExec`, `--command-template`
142
144
  - All webshell tools: `--header-name` / `--header-value` (auth header the shell checks)
143
145
  - Custom: `--shell-class-file path.class` (or `--shell-class-base64`)
146
+ - Any built-in or plugin field: repeat `--tool-option name=value`, or use
147
+ `--tool-config <json|path>`. v3.1 `object` fields use a JSON object, not a stringified scalar.
148
+ `--tool-option` overrides matching `--tool-config` keys and legacy convenience flags.
144
149
  - Injector: `--url-pattern /*`, `--injector-class-name`, `--no-static-initialize`
145
150
  - v3+ obfuscation: `--obfuscate`, `--obfuscation-options enableControlFlow=false,...`,
146
151
  `--obfuscation-scope ALL|MEMSHELL_INJECTOR|INJECTOR|MEMSHELL`; probe also accepts the first two.
@@ -157,6 +162,27 @@ Output:
157
162
  - MCP: `generate_memshell` / `generate_probe` accept an `outputFile` arg with the same
158
163
  behavior (auto-decode by extension, write result echoed back as `outputFile`).
159
164
 
165
+ ### External plugins and remote options (v3.1+)
166
+
167
+ Use `config tool-configs` (MCP `list_shell_tool_configs`) before generation. Its `object` type
168
+ accepts a JSON object. A `ui.kind=remote-select` field describes `itemsPath`, `labelPath`,
169
+ optional `valuePath`, `required`, and `urlQueryParam`. Resolve it with `config remote-options`
170
+ (MCP `list_remote_options`): a string field sends the selected ID; an object field sends the
171
+ whole selected object. Supply `--url`/`url`, or set the environment variable named by
172
+ `urlQueryParam`. The interactive wizard performs the same remote selection; if it is the sole
173
+ visible parameter, it automatically selects the first result.
174
+
175
+ ```bash
176
+ memparty gen -s Tomcat -t PluginTool -y Filter -p DefaultBase64 \
177
+ --tool-option mode=fast --tool-option 'target={"id":"web-1","name":"Web"}'
178
+ ```
179
+
180
+ MCP `generate_memshell` takes `toolOptions: {field: "string"}` or
181
+ `toolOptions: {field: {nested: "object"}}`; `toolOptionJson` is the string-encoded alternative.
182
+ Required remote fields are validated locally when metadata is available. Backend plugin
183
+ `validate()` failures are surfaced unchanged. `config plugins` / `list_plugins` exposes plugin
184
+ metadata and load errors, which are informational and not a trust or permission signal.
185
+
160
186
  ### Agent persistence and bytecode tools
161
187
 
162
188
  For an Agent shell, `--agent-args persist=true` / `--agent-args restore=true` supplies an