diff --git a/CHANGELOG.md b/CHANGELOG.md index 032fc86..4ddd409 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Improve RMI class loading for plugin classes (454a9fd17653ce3bceba58a9ba989e344ee2c7c7) * Improve `scan` action reliability (#62) * Refactor plugin system ([README](/plugins/README.md)) +* IArgumentProvider now accepts an array of arguments instead of a string (a653e6367260ba46333e596d81da283a64fc80f1) ## v5.0.0 - Dec 23, 2023 diff --git a/README.md b/README.md index 6bb8210..bdecca7 100644 --- a/README.md +++ b/README.md @@ -201,10 +201,11 @@ option. [+] uid=0(root) gid=0(root) groups=0(root) ``` -During the ``call`` action, the argument string is evaluated as a *Java expression* of the following form: ``new Object[]{ }``. Therefore, -you need to make sure that your argument string fits into that pattern. E.g. using ``"id"`` as an argument results in an error, as the argument is -passed as ``id`` to *remote-method-guesser* and the resulting expression ``new Object[]{ id }`` is not a valid *Java expression*. Instead, you need -to use ``'"id"'`` as this leads to ``new Object[]{ "id" }``, which is valid. +During the ``call`` action, the provided arguments are evaluated as *Java expression* by inserting them into the following template: +``new Object[]{ arg1, arg2, arg3, ... }``. Therefore, you need to make sure that your provided arguments fit into that pattern. E.g. +using ``"id"`` as an argument results in an error, as the argument is passed as ``id`` to *remote-method-guesser* and the resulting +expression ``new Object[]{ id }`` is not a valid *Java expression*. Instead, you need to use ``'"id"'`` as this leads to ``new Object[]{ "id" }``, +which is valid. Moreover, primitive types need to be specified in their corresponding object representation (e.g. ``new Integer(5)`` instead of ``5``). Otherwise they cannot be used within the ``Object[]`` array, that is created by the *Java expression*. During the *RMI call*, the corresponding arguments are used