jehna/humanify
Deobfuscate Javascript code using ChatGPT
해결하는 문제
난독화된 JavaScript 코드의 가독성을 복원합니다. 난독화된 코드는 일반적으로 설명적인 변수 및 함수 이름을 짧고 의미 없는 식별자(a, b, c 등)로 대체하여 사람이 코드를 이해하거나 역공학하기 어렵게 만듭니다. 이 도구는 AI를 사용하여 코드의 문맥을 바탕으로 의미 있는 이름을 제안합니다.
작동 원리
이 도구는 대규모 언어 모델(LLM)과 JavaScript 추상 구문 트리(AST) 파서를 결합합니다. LLM은 주변 코드 문맥을 기반으로 새로운 설명적 식별자 이름을 제안하는 데만 사용됩니다. 코드의 구조와 기능을 동일하게 유지하기 위해 실제 이름 변경은 oxc 라이브러리를 사용하여 AST 수준에서 수행되며, 이는 레시컬 스코프를 처리하고 이름 충돌을 방지합니다.
대상 사용자
난독화된 JavaScript 파일을 분석, 디버그 또는 역공학해야 하는 개발자 및 보안 연구자.
주요 특징
- 멀티 프로바이더 지원: OpenAI, Gemini, Anthropic, Ollama (로컬), OpenRouter 및 Requesty와 함께 작동합니다.
- AST 수준의 정밀도: 이름 변경이 모든 참조를 보존하고 레시컬 스코프를 준수하도록 보장합니다.
- 정적 바이너리: Rust 기반의 단일 바이너리로 배포되어 Node.js나 Python 의존성 없이 쉽게 설치할 수 있습니다.
- Unix 스타일 I/O: stdin 읽기 및 stdout 쓰기를 지원하여
webcrack과 같은 다른 도구와 파이프 연결이 가능합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트