Recaf


Java 프로그램의 복잡성을 추상화하여 쉽게 사용할 수 있는 현대적인 Java 바이트코드 편집기입니다.
다운로드
기능
- 높은 수준 또는 낮은 수준에서 Java 바이트코드를 쉽게 편집 (성가신 부분 없음)
- Recaf 내 편집기 기능은 컴파일된 Java 애플리케이션의 복잡한 세부 사항을 추상화합니다:
- 상수 풀
- 스택 프레임 계산
- 필요할 때 와이드 명령어 사용
- 그리고 더!
- 컨텍스트에 민감한 액션이 있는 쉽게 탐색 가능한 인터페이스
- 표준 Java 및 Android 애플리케이션 지원
- 여러 디컴파일러를 전환할 수 있으며, 모든 매개변수를 완전히 구성 가능
- 내장 컴파일러로 디컴파일된 클래스를 다시 컴파일 가능, 일부 참조 클래스가 없어도 지원 (지원되는 경우, 코드 복잡성 및 난독화에 따라 지원 수준이 다를 수 있음)
- 간단한 문법의 바이트코드 어셈블러 및 지원 도구
- 메서드 내 임의 지점에서 지역 변수 및 스택 값 상태 확인
- 인덱스 대신 이름으로 변수에 접근하여 더 명확한 디스어셈블 코드 보기
- Java 소스 코드 조각을 바이트코드 시퀀스로 자동 변환
- 다양한 콘텐츠 검색: 문자열/숫자 상수, 클래스 및 멤버 참조, 명령어 패턴
- 난독화된 코드 해독 도구
- 리버스 엔지니어링 도구를 충돌시킬 목적으로 제작된 특수 클래스 파일은 Recaf에서 열릴 때 자동으로 패치됨
- 특수하게 제작된 jar/zip 파일은 JVM이 읽는 방식으로 읽혀, 리버스 엔지니어링 도구를 속여 잘못된 데이터를 표시하게 하는 교묘한 트릭을 우회
- 난독화된 클래스 및 그 멤버 자동 이름 변경 지원
- 클래스 및 멤버 수동 이름 변경 지원 (이 매핑을 다양한 매핑 형식으로 내보내 다른 도구에서 사용 가능)
- 일반적인 난독화 전략을 단순화하는 바이트코드 변환기
- 계측 기능으로 실행 중인 Java 프로세스에 연결
- 그 외 더 많은 기능
전체 기능 목록은 사용자 문서에서 확인할 수 있습니다.
스크립팅 및 플러그인
Recaf는 거의 모든 기능을 모듈식 API를 통해 노출합니다. 동작 자동화는 스크립트나 더 복잡한 상황을 위한 플러그인을 통해 쉽게 수행할 수 있습니다. 추가 기능은 API에서 제공하는 훅을 등록할 수 있는 플러그인을 통해 추가할 수도 있습니다.
자체 스크립트나 플러그인을 만들려면 개발자 문서, 특히 "플러그인 및 스크립트" 섹션을 참조하세요.
명령줄
Recaf는 명령줄 애플리케이션으로 실행할 수 있으며, 특히 시작 시 제공된 스크립트와 함께 사용할 때 유용합니다. 모든 현재 실행 인수는 애플리케이션 인수로 --help를 전달하여 확인할 수 있습니다.
개발 환경 설정
git clone https://github.com/Col-E/Recaf.git으로 저장소를 클론하세요.
IDE에서 프로젝트를 열거나 gradle로 빌드를 생성하세요.
IDE:
build.gradle 파일에서 프로젝트를 가져옵니다.
- 메인 클래스를
software.coley.recaf.Main으로 설정하여 실행 구성을 생성합니다.
IDE 없이:
gradlew build 실행
- 출력 위치:
recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar