> For the complete documentation index, see [llms.txt](https://www.pentestwiki.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.pentestwiki.com/web-application/java/java-web-application/class.md).

# class 파일

Java 애플리케이션은 JVM(Java Virtual Machine)에 의해서 실행됩니다. .class 파일은 .java 소스 파일을 컴파일했을 때 생성되는 파일이며, JVM이 읽고 해석 및 실행할 수 있는 Java bytecode 형식의 파일입니다.

.class 파일은 일반적인 네이티브 바이너리(.exe, ELF)와 다르게 클래스, 메서드, 필드, 타입, annotation 등의 메타데이터 정보가 비교적 잘 보존되는 편이기 때문에 디컴파일 시 원본에 가까운 형태로 복원될 가능성이 높습니다.

<figure><img src="/files/mGJdbVJ2cECXiXLFDGqr" alt=""><figcaption></figcaption></figure>

단, 원본과 기능은 동일하지만 유사한 코드로 재구성될 수 있으며, 주석은 기본적으로 모두 제거됩니다.

cfr.jar 파일은 클래스 파일의 디컴파일을 위한 프로그램을 jar 확장자로 압축한 파일이며, [이곳](https://www.benf.org/other/cfr/)에서 다운로드 할 수 있습니다.
