KEYnote 42 English - Fall 2021 | Page 11

PROTECTION

AxProtector JavaScript

JavaScript can look back on a long and storied history as a script language , originally for in-browser use or client-side processes , but now matured for complex frameworks for Rich Internet Applications ( RIA ). JavaScript also made the leap onto the server side several years ago and is now regularly used as a language for scripting applications , relying on Node . js or Electron as the development platforms that underlie many popular software packages like Visual Studio Code or Slack .
Wibu-Systems introduced the ability to encrypt JavaScript applications with Version 10.80 of CodeMeter Protection Suite .
The mechanism AxProtector JavaScript operates just like its counterpart for Python : It encrypts functions directly in the source code , which does not need to be changed in any way . Simply by integrating AxProtector JavaScript in the build system , the original code can be encrypted and placed into a JavaScript file ready for execution .
This can take any one of three forms :
■ Either the complete JavaScript application is encrypted , with license checks added automatically ( basic configuration ),
■ The JavaScript application is encrypted in individual modules , allowing individual features to be activated by the user ( custom licensing ),
■ or AxProtector JavaScript is used only as protection against reverse engineering without the user needing any license at all ( IP Protection Mode ).
The software developer can choose exactly which functions and classes are to be encrypted by means of a simple configuration file .
Secure execution The functions are encrypted and signed in the script files created as part of the protection process . The new CodeMeter Protection Suite Runtime ( CPSRT ) is included to check these during runtime , decrypt , and execute the code in the machine ’ s memory , and then remove it again for added security .
The newest AxProtector technology is used to stop would-be attackers from tampering with the native components , making it virtually im-
010100101010101010100101010 101010010101010010101010101 001010101010101001010010101 010010101010101001010101010 101001010010100101001010101
JavaScript 010101010010101010010101010 101001001010101010101001010
Source Code 010101010010101010101001010
101010101001010010100101001 010101010010101010101010101 010101010101010101101010100
Encrypt / Protect
CodeMeter Protection Suite
Node Application
01010010101010101010 010101010101001010101
Protected
00101010101010010101
JavaScript
010101010100101010101 01010010101010101001
Code
Application runs ( protected )
Figure 1 : Code encryption
11