Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cart — Python으로 작성된 CaRT 라이브러리 구현으로, 파일의 (비)비활성화(un)inerting을 위한 도구입니다. | Kitploit
도구/GitHubGitHub/cybercentrecanada/cart
Defensive ToolsEncryption/Decryption ToolsMalware AnalysisDigital ForensicsCryptography
GitHubcybercentrecanada/cart

cart

Python으로 작성된 CaRT 라이브러리 구현으로, 파일의 (비)비활성화(un)inerting을 위한 도구입니다.

저장소 보기
53741년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CaRT (압축 및 RC4 전송)

Latest Stable Release

CaRT 파일 형식은 악성코드 및 관련 메타데이터를 저장/전송하는 데 사용됩니다. 악성코드를 실행할 수 없도록 무력화하고 암호화하여 안티바이러스 소프트웨어가 CaRT 파일을 악성코드로 탐지하지 못하게 합니다.

장점

  • 빠름(FAST): CaRT는 파일을 압축하는 것만큼 빠릅니다.
  • 스트리밍(STREAMING): CaRT는 zlib 및 RC4를 사용하므로 파일을 스트리밍 방식으로 인코딩할 수 있습니다.
  • 메타데이터(METADATA): CaRT는 파일 자체와 동일한 파일에 파일 메타데이터를 저장할 수 있으며, 전체 파일을 읽지 않고도 메타데이터를 읽을 수 있습니다.
  • 해시 계산(HASH CALCULATION): CaRT는 파일을 인코딩하면서 파일의 해시를 계산하고 해당 정보를 푸터에 저장합니다.
  • 크기(SIZE): CaRT 파일은 압축을 사용하므로 일반적으로 원본 파일보다 작습니다. (CaRT에 대량의 메타데이터가 저장되는 경우는 예외입니다.)

STIX v2와 함께 CaRT 사용하기

이제 STIX v2가 인코딩에 JSON을 사용하므로, STIX 보고서를 CaRT 형식으로 직접 번들링할 수 있습니다. CaRT가 파일을 인코딩하면 파일과 동일한 접두사를 가진 *.cartmeta 파일에서 메타데이터를 추가합니다. 따라서 STIX 보고서를 .cartmeta 파일로 저장하면 결과 CaRT 파일에 전체 STIX 보고서가 포함됩니다.

예를 들어:

root@kitploit:~
$ ls
  file.exe            - 인코딩할 파일
  file.exe.cartmeta   - file.exe의 STIX 보고서

$ cart file.exe
$ ls
  file.exe            - 인코딩할 파일
  file.exe.cartmeta   - file.exe의 STIX 보고서
  file.exe.cart       - file.exe와 해당 STIX 보고서를 모두 포함하는 CaRT 파일

형식 개요

필수 헤더 (38바이트)

CaRT에는 다음과 같은 필수 헤더가 있습니다.

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

여기서 VERSION은 1이고 RESERVED는 0입니다. 대부분의 경우 파일을 복호화하는 데 사용되는 RC4 키는 필수 헤더에 저장되며 항상 동일한 값입니다(원주율(pi)의 처음 8자리를 두 번 사용한 값). 그러나 CaRT는 키를 재정의할 수 있는 옵션을 제공하며, 이 경우 필수 헤더에 널(null) 바이트가 저장됩니다. 파일을 unCaRT하려면 키를 알아야 합니다...

선택적 헤더 (OPT_HEADER_LEN 바이트)

CaRT의 선택적 헤더는 JSON 직렬화된 헤더의 OPT_HEADER_LEN 바이트 RC4 blob입니다.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

데이터 블록 (N바이트)

CaRT의 데이터 블록은 zlib 압축 후 RC4로 암호화된 블록입니다.

root@kitploit:~
RC4(ZLIB(block encoded stream))

선택적 푸터 (OPTIONAL_FOOTER_LEN 바이트)

선택적 헤더와 마찬가지로 CaRT의 선택적 푸터는 JSON 직렬화된 푸터의 OPT_FOOTER_LEN 바이트 RC4 blob입니다.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

필수 푸터 (28바이트)

CaRT는 파일을 필수 푸터로 끝내며, 이 푸터를 통해 전체 파일을 읽지 않고도 푸터를 읽고 해시를 반환할 수 있습니다.

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

명령줄 인터페이스

pip 패키지를 설치하면 CaRT 라이브러리와 CaRT CLI에 모두 액세스할 수 있습니다.

CaRT CLI의 옵션에는 다음과 같은 우선순위가 적용됩니다.

  • CLI의 모든 옵션에는 기본값이 있습니다.
  • 기본값은 ~/.cart/cart.cfg의 옵션으로 재정의됩니다.
  • 구성 파일의 값은 CLI 옵션으로 재정의됩니다.

CaRT CLI에서 사용할 수 있는 옵션은 다음과 같습니다.

root@kitploit:~
사용법: cart [options] file1 file2 ... fileN

            CaRT 파일 형식은 악성코드 및 관련 메타데이터를 저장/전송하는 데 사용됩니다.

            악성코드를 실행할 수 없도록 무력화하고 암호화하여 안티바이러스 소프트웨어가
            CaRT 파일을 악성코드로 탐지하지 못하게 합니다.


positional arguments:
  file

options:
  -h, --help            도움말 메시지를 표시하고 종료합니다
  -v, --version         프로그램 버전 번호를 표시하고 종료합니다
  -d, --delete          작업이 성공하면 원본 파일을 삭제합니다
  -f, --force           출력 파일이 이미 있으면 덮어씁니다
  -i, --ignore          구성 파일의 RC4 키를 무시합니다
  -j JSONMETA, --jsonmeta JSONMETA
                        헤더 메타데이터를 JSON blob으로 제공합니다
  -k KEY, --key KEY     개인 RC4 키를 사용합니다 (base64 인코딩). unCaRT하려면 동일한 키를 제공해야 합니다.
  -m, --meta            CaRT를 추출할 때 메타데이터를 유지합니다
  -n FILENAME, --name FILENAME
                        이 값을 메타데이터 파일 이름으로 사용합니다
  -o OUTFILE, --outfile OUTFILE
                        출력 파일을 설정합니다
  -s, --showmeta        파일 메타데이터만 표시합니다

            CaRT는 파일을 CaRT 처리해야 하는지 unCaRT 처리해야 하는지 스스로 판단할 수 있습니다.

            CaRT 처리되지 않은 파일을 CaRT하려면: cart file1

            CaRT 처리된 파일을 unCaRT하려면: cart file1

            동일한 명령입니다!

CaRT 구성 파일은 다음과 같습니다.

root@kitploit:~
[global]
# rc4_key는 키의 base64 표현입니다
rc4_key: AvUzYXNkZg==
# keep_meta는 CLI의 -m과 동일합니다
keep_meta: True
# force는 CLI의 -f와 동일합니다
force: True

# default_header는 선택적 헤더에서 CaRT에 추가할 키/값 데이터 쌍입니다
[default_header]
poc: Your Name
poc_email: [email protected]

기타 CaRT 라이브러리

Rust 및 Java로 구현된 CaRT 버전도 있습니다. 아래에서 확인하세요.

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java

CaRT (압축 및 RC4 전송)

CaRT 파일 형식은 악성코드 및 관련 메타데이터를 저장/전송하는 데 사용됩니다. 이 형식은 악성코드를 실행할 수 없도록 무력화하고 암호화하여 안티바이러스 소프트웨어가 CaRT 파일을 악성코드로 탐지하지 못하게 합니다.

장점

  • 빠름(FAST): CaRT를 사용하는 것은 파일을 압축하는 것만큼 빠릅니다.
  • 스트리밍(STREAMING): CaRT는 zlib 및 RC4를 사용하므로 전송 중인 파일을 인코딩할 수 있습니다.
  • 메타데이터(METADATA): CaRT는 파일 자체와 동일한 파일에 파일 메타데이터를 저장할 수 있으며, 전체 파일을 읽을 필요 없이 메타데이터를 읽을 수 있습니다.
  • 해시 계산(HASH CALCULATION): CaRT는 파일을 인코딩하는 동안 파일의 해시를 계산하고 해당 정보를 푸터에 저장합니다.
  • 크기(SIZE): CaRT 파일은 압축되어 있으므로 일반적으로 원본 파일보다 작습니다. (CaRT에 대량의 메타데이터가 저장된 경우는 예외입니다.)

STIX v2와 함께 CaRT 사용하기

이제 STIX v2가 인코딩에 JSON을 사용하므로, STIX 보고서를 CaRT 형식으로 직접 그룹화할 수 있습니다. CaRT가 파일을 인코딩하면 파일과 동일한 접두사를 가진 *.cartmeta 파일에서 메타데이터를 추가합니다. 따라서 STIX 보고서를 .cartmeta 파일로 저장하면 결과 CaRT 파일에 전체 보고서가 포함됩니다.

예를 들어:

root@kitploit:~
$ ls
  file.exe            - 인코딩할 파일
  file.exe.cartmeta   - file.exe의 STIX 보고서

$ cart file.exe
$ ls
  file.exe            - 인코딩할 파일
  file.exe.cartmeta   - file.exe의 STIX 보고서
  file.exe.cart       - file.exe와 해당 STIX 보고서를 모두 포함하는 CaRT 파일

형식 개요

필수 헤더 (38바이트)

CaRT에는 다음과 같은 필수 헤더가 있습니다.

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

이 헤더에서 VERSION 값은 1이고 RESERVED 값은 0입니다. 대부분의 경우 파일을 해독하는 데 사용되는 RC4 키가 헤더에 저장되며 항상 동일한 값입니다(원주율(pi)의 처음 8자리를 두 번 사용한 값). 그러나 CaRT는 키를 대체하는 방법을 제공하며, 필수 헤더에 널(null) 바이트를 저장하는 방식입니다. 이 경우 CaRT 파일을 해독하려면 키를 알아야 합니다.

선택적 헤더 (OPT_HEADER_LEN 바이트)

CaRT의 선택적 헤더는 JSON 직렬화된 헤더에서 가져온 OPT_HEADER_LEN 바이트 크기의 RC4 blob입니다.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

데이터 블록 (N바이트)

CaRT의 데이터 블록은 먼저 zlib 데이터 압축을 적용한 다음 RC4로 암호화한 블록입니다.

root@kitploit:~
RC4(ZLIB(block encoded stream))

선택적 푸터 (OPTIONAL_FOOTER_LEN 바이트)

선택적 헤더와 마찬가지로 CaRT의 선택적 푸터는 JSON 직렬화된 푸터에서 가져온 OPT_FOOTER_LEN 바이트 크기의 RC4 blob입니다.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

필수 푸터 (28바이트)

CaRT 파일은 필수 푸터로 끝나며, 이 푸터를 통해 전체 파일을 읽지 않고도 푸터를 읽고 해시를 반환할 수 있습니다.

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

명령줄 인터페이스

pip 패키지 관리자를 설치하면 CaRT 라이브러리와 CaRT CLI에 액세스할 수 있습니다.

CaRT CLI의 옵션에는 다음과 같은 우선순위가 적용됩니다.

  • CLI의 모든 옵션에는 기본값이 정의되어 있습니다.
  • 기본값은 ~/.cart/cart.cfg의 옵션으로 대체됩니다.
  • 구성 파일의 값은 CLI 옵션으로 대체됩니다.

CaRT CLI에서 사용할 수 있는 옵션은 다음과 같습니다.

root@kitploit:~
사용법: cart [options] file1 file2 ... fileN

            CaRT 파일 형식은 악성코드 및 관련 메타데이터를 저장/전송하는 데 사용됩니다.

            악성코드를 실행할 수 없도록 무력화하고 암호화하여 안티바이러스 소프트웨어가
            CaRT 파일을 악성코드로 탐지하지 못하게 합니다.


positional arguments:
  file

options:
  -h, --help            도움말 메시지를 표시하고 종료합니다
  -v, --version         프로그램 버전 번호를 표시하고 종료합니다
  -d, --delete          작업이 성공하면 원본 파일을 삭제합니다
  -f, --force           출력 파일이 이미 있으면 덮어씁니다
  -i, --ignore          구성 파일의 RC4 키를 무시합니다
  -j JSONMETA, --jsonmeta JSONMETA
                        헤더 메타데이터를 JSON blob으로 제공합니다
  -k KEY, --key KEY     개인 RC4 키를 사용합니다 (base64 인코딩). unCaRT하려면 동일한 키를 제공해야 합니다.
  -m, --meta            CaRT를 추출할 때 메타데이터를 유지합니다
  -n FILENAME, --name FILENAME
                        이 값을 메타데이터 파일 이름으로 사용합니다
  -o OUTFILE, --outfile OUTFILE
                        출력 파일을 설정합니다
  -s, --showmeta        파일 메타데이터만 표시합니다

            CaRT는 파일을 CaRT 처리해야 하는지 unCaRT 처리해야 하는지 스스로 판단할 수 있습니다.

            CaRT 처리되지 않은 파일을 CaRT하려면: cart file1

            CaRT 처리된 파일을 unCaRT하려면: cart file1

            동일한 명령입니다!

CaRT 구성 파일은 다음과 같습니다.

root@kitploit:~
[global]
# rc4_key는 키의 base64 표현입니다
rc4_key: AvUzYXNkZg==
# keep_meta는 CLI의 -m과 동일합니다
keep_meta: True
# force는 CLI의 -f와 동일합니다
force: True

# default_header는 CaRT 파일의 선택적 헤더에 추가할 키/값 데이터 쌍입니다
[default_header]
poc: Your Name
poc_email: [email protected]

기타 CaRT 라이브러리

Rust 및 Java로 구현된 버전이 있습니다. 다음 주소에서 확인할 수 있습니다.

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java
도구 다운로드