
r2pm(radare2 패키지 관리자)용 패키지 데이터베이스로, radare2 플러그인, 스크립트 및 관련 리버스 엔지니어링 유틸리티를 위한 설치 훅과 바이너리 패키지를 제공합니다.
이 저장소는 r2pm -U에 의해 가져와지며 패키지 데이터베이스를 제공합니다.
이 패키지들은 사용자의 홈 디렉터리에 설치되며, radare2용 플러그인/스크립트이거나 r2와 관련된 유틸리티/프로그램일 수 있습니다.
r2pm에 대해서는 https://github.com/radareorg/radare2 를 참고하세요.
$ r2pm -U
$ r2pm -ci r2frida
export R2PM_DBDIR="$PWD/db"
# export R2PM_GITDIR="/path/to/the/root/folder/of/the/local/repository"
# export R2PM_USRDIR="/path/to/usr/dir"
Windows 설치 및 제거 훅은 네이티브 배치 구문을 사용합니다. 실패 시 command || exit /b 1로 명시적으로 중단하세요. 이는 음수 종료 코드도 잡아냅니다. 다른 배치 파일을 호출할 때는 call helper.cmd || exit /b 1을 사용하여 실행이 훅으로 돌아오도록 하세요. 환경 변경은 줄 간에 유지되며, 여러 줄 if/else 블록과 ^ 연속은 일반적인 CMD 규칙을 따릅니다.
r2pm -bi r2frida를 사용하면 소스를 복제하거나 컴파일하지 않고 릴리스된 바이너리를 설치할 수 있습니다. R2V는 릴리스를 선택하며 기본값은 설치된 radare2 버전입니다:
R2V=6.2.2 r2pm -bi r2frida
선택적으로 R2PM_PLATFORMS로 지원되는 운영 체제, 런타임 또는 정확한 타깃을 선언할 수 있습니다:
R2PM_PLATFORMS "linux darwin windows"
# For a portable r2js script instead:
R2PM_PLATFORMS "r2js"
# For a package restricted to 32-bit x86 Linux instead:
R2PM_PLATFORMS "linux-x86-32"
공백으로 구분된 태그는 패키지 검색 필터링을 제어하고 r2pm -sj의 platforms 배열을 채웁니다. termux와 같은 다른 태그도 지원되는 경우 선언할 수 있습니다. 이 선언은 선택 사항입니다: 선언이 없거나 값이 비어 있는 패키지는 설치 훅으로부터 플랫폼을 추론하며 기존 설치 동작을 유지합니다. 정확한 os-arch-bits 트리플릿은 아키텍처와 비트 수를 포함하여 r2pm -H R2PM_TRIPLET과 대조됩니다. 여러 항목은 대안이므로, 트리플릿과 함께 linux를 추가하면 모든 Linux 아키텍처를 허용합니다. JSON은 R2PM_BINSTALL* 훅이 존재할 때 binary: true도 노출합니다. 바로 사용 가능한 스크립트도 바이너리 설치로 간주됩니다. 플랫폼 태그가 모든 릴리스에 대해 바이너리를 보장하지는 않습니다.
패키지는 Unix 셸 명령용 R2PM_BINSTALL()과 Windows 명령용 R2PM_BINSTALL_WINDOWS()를 제공합니다. 이 훅은 소스 체크아웃 없이 실행되며, R2V, R2PM_OS(linux, darwin, windows, ...), R2PM_ARCH(x86, arm, ...), R2PM_BITS(32 또는 64), R2PM_TRIPLET(<os>-<arch>-<bits>, 예: linux-x86-64)을 받고, 일반적인 R2PM_PLUGDIR, R2PM_BINDIR 및 기타 r2pm 디렉터리에 설치합니다. -g는 시스템 플러그인 디렉터리를 선택하며 Unix에서 R2PM_SUDO를 제공합니다.
바이너리 훅은 정확한 버전과 타깃을 선택하고, 자체 도구와 런타임 의존성을 처리하며, R2PM_OFFLINE을 준수하고, 바이너리를 사용할 수 없거나 설치에 실패하면 0이 아닌 값을 반환해야 합니다. R2PM_NEEDS와 R2PM_DEPS는 소스 빌드 전제 조건이며 건너뜁니다. 소스 폴백은 없습니다: r2pm은 오류를 보고하고 사용자에게 -b 없이 다시 실행하도록 요청합니다.
r2frida 훅은 Linux .deb, macOS .pkg, Windows .zip 릴리스 자산을 r2pm 디렉터리로 추출합니다. 사용 가능 여부는 선택된 릴리스에 따라 다릅니다. 아키텍처나 버전이 없으면 다른 릴리스를 사용하는 대신 실패합니다.