GithubHelp home page GithubHelp logo

Comments (1)

tmikov avatar tmikov commented on April 28, 2024 1

This is a good question. You're correct the compilation of JavaScript into optimized bytecode by Hermes inherently provides a significant level of obfuscation. This is because the bytecode is much more difficult to reverse-engineer compared to minified JavaScript source code.

However, it's important to note that while bytecode is harder to understand than JavaScript, it doesn't make reverse-engineering impossible. It preserves attributes like property names, and depending on compilation flags, function names (those can be disabled by passing -fstrip-function-names). A determined attacker with enough time and resources could potentially still decipher it.

As for applying an additional layer of obfuscation to the bundle.js file, it could potentially add an extra layer of security. Obfuscation can make the reverse-engineering process more time-consuming and complex. It's good to keep in mind that obfuscation is not a foolproof security measure. It's more of a deterrent than a definitive protective measure.

The practical benefit of applying a code obfuscator would largely depend on the specific security needs of your project. If the code contains highly sensitive logic or information, then adding as many deterrents as possible could be beneficial. This is similar to Android apps, which are also compiled to bytecode, yet obfuscators for Android exist.

In conclusion, while Hermes' compilation to bytecode does provide a significant level of obfuscation, but the exact 'level' of obfuscation is challenging to quantify and should not be relied upon as a sole security measure. Additional security practices, such as code obfuscation, could be considered based on the specific needs and context of your project.

from hermes.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.