Skip to main content

An obfuscator for Robot Framework code

Project description

Robot Framework Obfuscator

The Robot Framework obfuscator is a command line tool which can obfuscate Robot Framework code.

Installing

pip can be used to install the obfuscator:

pip install https://github.com/robocorp/robotframework-obfuscator/archive/master.zip

Note that dependencies must also be installed:

pip install robotframework pip install robotframework-lsp

Dependencies

It depends on Python 3.8+, Robot Framework 4+ and robotframework-lsp 0.29+.

Usage

After installing it, it's possible to run the obfuscator with:

python -m robotframework_obfuscator --dest <dest-dir> <dir-to-obfuscate>

Where <dest-dir> is the directory where the obfuscated sources should be put and <dir-to-obfuscate> is the directory with the sources to obfuscate.

Note that all files from the <dir-to-obfuscate> will be copied to the <dest-dir> but only .robot and .resource files will be obfuscated.

If some keyword should not be obfuscated, it's possible to use the --skip-keyword option to make a call such as:

python -m robotframework_obfuscator --dest <dest-dir> --skip-keyword MyKeyword --skip-keyword AnotherKeyword <dir-to-obfuscate>

If some variable should not be obfuscated, it's possible to use the --skip-var option to make a call such as:

python -m robotframework_obfuscator --dest <dest-dir> --skip-var my_var --skip-var AnotherVar <dir-to-obfuscate>

Caveats

Both keyword names and variable names will be obfuscated. If a given keyword or variable name was referenced in a different way (read from a file, environment variable, etc.), it's possible that the program may fail to execute afterwards, thus, it's suggested that the obfuscated version of the program is run to verify that the behavior is still the same.

Note that keyword names passed to Run Keyword (or other run variants of the Run from the BuiltIn library) are properly translated, but if the target code has a some direct call to run a keyword, it may fail.

It's possible to overcome this by not obfuscating a specific keyword name with the --skip-keyword option.

Also note that if some variable is passed as a parameter to Robot Framework (or through some variables file), it's possible to use the --skip-var option to skip translating those variables.

Notes

Note that the obfuscator may make your program run slower as in many cases an additional keyword evaluation may be needed for each keyword run -- in general, as a rule of thumb, code that need to be fast, should be in Python, so, it shouldn't make much difference, but if the related code has too much logic leveraged in Robot Framework itself, it may make a difference.

Important

This obfuscator is currently in alpha mode. Please run your program with the obfuscated version to make sure that the behavior is still the same.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework-obfuscator-0.0.1.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

robotframework_obfuscator-0.0.1-py2.py3-none-any.whl (14.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file robotframework-obfuscator-0.0.1.tar.gz.

File metadata

  • Download URL: robotframework-obfuscator-0.0.1.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for robotframework-obfuscator-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b2da07b5c239ce9d0b64de1d969c26fa7703bd2c8891e4f75010affc218474f0
MD5 903a95d9a92ee20d2144c115460660ca
BLAKE2b-256 822b05f3482b5320f19e966f8ef28341d869fee9106d638159439f7e9be8663b

See more details on using hashes here.

File details

Details for the file robotframework_obfuscator-0.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: robotframework_obfuscator-0.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for robotframework_obfuscator-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 80897b05ade65f7bfbc7aae3fc99356c9cce86fe0fc57d4a1fbf6f1e51b5b277
MD5 de4f05e61fc75065497c2537da7b349c
BLAKE2b-256 86e358e678b57a0c90e3a8d8b4848e45c5f15551c325ffcd757f24532686d2a7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page