
1. 도구를 통하여 코드 정리
난독화된 JS의 경우 줄 바꿈 없이 전부 한 줄로 되어있는 경우가 많다. 아래 사이트 도구를 통해 코드를 보기 쉽게 만든다. 또는, Notepad++플러그인에서 JSTool → JSFormat을 통해 코드 정리가 가능하다.
Online JavaScript beautifier
Beautify JavaScript, JSON, React.js, HTML, CSS, SCSS, and SASS
beautifier.io
2. 도구를 통하여 난독화 해제
de4js - 다양한 난독화 패턴 자동 분석
https://lelinhtinh.github.io/de4js/
de4js
JavaScript Deobfuscator and Unpacker
lelinhtinh.github.io
Deobfuscator - 일반적인 난독화 패턴 자동 분석
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
AST Explorer - Abstract Syntax Tree로 변환해 구조 분석
AST explorer
astexplorer.net
JSFuck - 자동 난독화 분석
JSfuck Decoder | De-Obfuscator
JSFuck de-obfuscator
JSFuck decoder, de-obfuscator
enkhee-osiris.github.io
3. 수동으로 난독화 해제
1. 코드 기본 분석
Sources 패널에서 대상 JS 파일을 연 후 { } 아이콘(Pretty Print)으로 코드 가독성을 개선한다. 압축된 코드가 자동으로 들여쓰기되며 변수/함수 구조가 명확해집니다. 이때 전체 실행 흐름을 파악하기 위해 전역 변수 선언 위치와 최종 실행 함수를 찾는 것이 첫 번째 과제이다.
2. 컨텍스트 확인
console.log(fn.toString()) // 함수 전체 코드 출력
Object.keys(window) // 전역 스코프 식별자 확인
하단 Console에서 키 변수/함수를 직접 선언하며 초기값을 설정한다. let a = 10; function test() {} 형태로 입력하면 undefined가 출력되지만, 이는 정상적인 선언 과정이다.
3. 실시간 값 검증
최종 실행 지점에 console.log(결과변수)를 삽입하거나, 중단점(BreakPoint) 설정 후 Scope 패널에서 호출 스택을 확인한다. 마우스 오버로 변수 값을 즉시 확인하거나 Watch에 표현식을 등록해 값 변화를 추적한다.
4. 반복문 디버깅
반복문이 포함된 경우 독립 HTML 파일로 환경을 구축한다.
<html><script>
// 대상 코드 전체 복사
debugger; // 자동 중단점 설정
</script></html>
파일을 브라우저로 열면 debugger 명령어에서 실행이 일시정지된다. F5 새로고침으로 반복적으로 테스트 가능하며, 조건부 중단점으로 특정 반복 횟수에서 멈출 수 있다.
5. 변수 포인트 캡처
Sources 패널에서 라인 번호 클릭으로 중단점 설정 후 실행 버튼(Resume script execution)으로 단계별 실행한다. F10(Step over)으로 함수 내부 진입 없이 다음 줄로 이동하며, F11(Step into)로 상세한 호출 흐름을 분석한다.
'분석 TIP > 프로텍션' 카테고리의 다른 글
| Themida 도구 언패킹 방법 (1) | 2025.04.29 |
|---|---|
| VMProtect 메뉴얼 언패킹 방법 (0) | 2025.04.28 |
| Powershell 난독화 풀기 (0) | 2025.04.08 |
| VBScript 난독화 풀기 (0) | 2025.04.06 |
| 도구로 쉽게 난독화 풀기 예시 (0) | 2025.04.02 |