This project introduces the concept of encryption and decryption techniques used to protect code and preserve intellectual property. Specifically, it explores a method known as obfuscation.
Obfuscation is a specialized process that transforms a readable program into a functionally equivalent but harder-to-understand version. The goal is to make the program less accessible and more challenging to analyze.
The challenge lies in reversing the obfuscation process to restore the code to its original, readable form. This reversal process is known as deobfuscation.
Deobfuscation refers to simplifying or removing obfuscation code to produce a program that is functionally equivalent to the obfuscated one but is easier to understand, based on a chosen complexity metric.
obfusticated_js_file.js: An obfuscated JavaScript file obtained from a GitHub repository.deobfusticated_js_file.js: The final deobfuscated version of the code.
- Language-Specific Understanding: While having knowledge of JavaScript helps, it wasn't a strict requirement for tackling this task.
- Hexadecimal Conversion: Variables and function names encoded in hexadecimal notation were translated into readable ASCII strings.
- Text Editor Functionality: Used the 'search and replace' feature in GEdit to streamline the renaming process.
- Debugging with Console: Leveraged JavaScript's
console.logfunction to gain insights into variable values, aiding in renaming functions and variables.
- Operating System: Debian GNU/Linux 12
- Tools Used:
- GEdit 44.2
- Node.js
- Terminus Console
- Web Browsers: Firefox / Google Chrome
- Browser Extensions: Violentmonkey, Tampermonkey
- Works by adding it as a snippet in the Sources tab under Chrome DevTools.
- Requires refreshing the page after entering the specified URL.
- Works when added as a script in Violentmonkey or Tampermonkey.
- Requires an appropriate script header for execution.

