You're only a few steps away from deploying Alkemist:Code into your Ubuntu environment!
1 of 4
Select Ubuntu Distribution
Need to know your distribution? Run this command in a terminal: lsb_release -a. The displayed Release will start with its major release number and/or the Codename will match one of those in parentheses to the left if LFR supports it. Debian instructions are similar to these and can be found on a dedicated Deploy page.
2 of 4
0# Install packages to enable secure download of alkemist-lfr1sudoapt-get -y installwget23# Add RunSafe repo to list of those Ubuntu will check for packages4echo'deb https://runsafesecurity.jfrog.io/artifactory/debian focal main'|sudotee -a /etc/apt/sources.list.d/alkemist.list56# Add RunSafe's GPG public key locally7wget -qO - https://runsafesecurity.jfrog.io/artifactory/api/gpg/key/public |sudo apt-key add -89# Update Ubuntu to include new repo and install alkemist-lfr10sudoapt-get update11sudoapt-get -y install alkemist-lfr12source /etc/profile.d/alkemist-lfr.sh
Run these commands on your system to let it know to look for Alkemist:Code's Load-time Function Randomization (LFR) packages on our servers and then install Alkemist:Code.
3 of 4
Build with Alkemist:Code
0# ALKEMIST_LICENSE_KEY=<your license key> lfr-helper <your build command>12# For example, to build the hello_world.c shown in the next tab you would run:3sudoapt-get -y install gcc4ALKEMIST_LICENSE_KEY=<insert Alkemist license here> lfr-helper gcc -o hello_world hello_world.c
Now that your system contains the files necessary for Alkemist:Code to run, prepend your build commands (make, gcc, g++, etc) with lfr-helper to automatically integrate Alkemist:Code into your existing build process.
The command shown will build the given hello_world.c into an Alkemist:Code-protected program called hello_world, but you can add lfr-helper to any build command, simple or complex.
4 of 4
Verify Alkemist:Code Protection
0# Use ldd to see which libs have been included in the given binary1# ldd <binary name> | grep lfr23# For example, with the hello_world from the previous step4ldd ./hello_world |grep lfr56# This will return a line similar to the one below, but with a different memory address7# $ liblfr.so => /usr/local/lib/liblfr.so (0x7f659d514000)
Each tab shows a different way to confirm that Alkemist:Code has been applied to a given binary. The examples are for the hello_world binary built in the previous step.