요약
Java 프로그램의 복잡성을 추상화하는 사용하기 쉬운 최신 Java 바이트코드 편집기입니다.
다운로드
- 발사통
- 스냅샷 릴리스
- 독립 릴리스 (현재 4X에는 없음)
특징
- 높은 수준이나 낮은 수준에서 쉽게 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