본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 웹/JS
  3. [JS] 난독화 풀기 - Deobfuscate

[JS] 난독화 풀기 - Deobfuscate

· 댓글개 · KRFile

최근 알아낸 사실인데 아래 2개 사이트 정도면 웬만한 난독화가 대부분 풀립니다. 당연하지만 다 풀리는건 아닌거 같구요

 

1. https://deobfuscate.relative.im/

 

JavaScript Deobfuscator

synchrony ver. 2.2.0 A simple deobfuscator for mangled or obfuscated JavaScript files view on GitHub Deobfuscate Save output if there are any errors, open developer tools > console to see them in a better view

deobfuscate.relative.im

일단 1차로 여기서 전체적으로 난독화 해제를 돌립니다.

여기서 결과물이 만족스러우면 그대로 사용해도 됩니다

 

1-1 https://deobfuscate.io/

위 1번 사이트가 잘 동작하지 않는다면 해당 사이트도 괜찮습니다. 만약에 자기가 난독화된 코드를 붙여 넣었는데 위와 같이 Obfuscator.io 로 난독화된 코드라고 인식되면 Yes를 누르고

 

https://obf-io.deobfuscate.io/

 

Obfuscator.io Deobfuscator

 

obf-io.deobfuscate.io

자동으로 이동되는 해당 사이트에서 난독화를 풀면 됩니다.

물론 붙여 넣기를 했는데 Obfuscator.io 알림이 안뜬다면 그냥 1-1 사이트에서 바로 난독화 해제 작업을 하시면 됩니다.

 

 

2. http://jsnice.org/

 

JS NICE: Statistical renaming, Type inference and Deobfuscation

// Put your JavaScript here that you want to rename, deobfuscate, // or infer types for: function chunkData(e, t) { var n = []; var r = e.length; var i = 0; for (; i < r; i += t) { if (i + t < r) { n.push(e.substring(i, i + t)); } else { n.push(e.substring

jsnice.org

위에서 1차로 나온 결과물에서 함수 이름, 변수명이 아직도 잘 보이지 않으면 여기서 돌려서 변수명, 함수명을 적당히 복구합니다. 여기까지만 해도 대부분 난독화 복구가 끝납니다.

 

주의 : 확인해보니 ES6 문법은 지원하지 않는 거 같습니다. var 이외에 let, const 등을 넣으면 이해하지 못합니다. 따라서 이런 경우엔 아래 3번 GPT를 돌리는걸 추천합니다.

 

3. ChatGPT

이후 변수명이나 함수명이 깨진건 적당히 ChatGPT 한테 코드 주고 복구하라고 시킵니다.

코드 흐름 대부분이 복구된 상태면 ChatGPT가 괜찮게 코드를 분석해서 적당한 변수명이나 함수명을 매겨줄 수 있을겁니다.

 

다만 잘못된 답을 줄수도 있으므로 GPT를 너무 신뢰는 하지 맙시다.

 

 

SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.