본문 바로가기

just-coding-it

내가 만든 javascript 코드의 난독화를 해보자

요즘은 javascript를 사용하여 여러 프로덕트를 만들수 있다. 웹 프론트뿐만 아니라 크롬 익스텐션을 만들어서 배포할수도 있고 electron기술을 사용해서 데스크톱 프로그램을 만들어서 배포할수도 있다.

 

그런데 이렇게 만들어서 배포한 프로그램. 역공학이 너무 쉽지는 않을까. 위에 기술한 웹 기반 프로그램들은 본질적으로 javascript코드가 공개될수밖에 없다. 완벽하게 보호하진 못하더라도 난독화를 통해 역공학을 어렵게 만드는 방법을 알아보자.

 

javascript-obfuscator라는 라이브러리를 사용해서 난독화를 할 수 있다. 특히 나는 vite를 사용해서 빌드를 했기 때문에 vite-plugin-javascript-obfuscator라는 plugin을 추가하는 방법으로 난독화를 했다.

 

아래는 vite.config.ts 이고 난독화 옵션은 본인이 알아서 작성하면 된다. 옵션은 https://obfuscator.io/ 에서 직접 조정해가며 결과를 확인할 수 있다.

import obfuscatorPlugin from "vite-plugin-javascript-obfuscator"

export default defineConfig({
  plugins: [
    obfuscatorPlugin({
        options: {
            compact: true,
            simplify: true,
            ...
        },
    }),
  ],
}