
AEA OTA/IPSW decryption
AEA OTA/IPSW 복호화
get_key.py
requestspyhpkeaastuff
aastuff_standalone
get_key.pypip3 install -r requirements.txt
[!NOTE] 가상 환경을 사용하는 것이 좋습니다:
python3 -m venv .env # only needed once source .env/bin/activate pip3 install -r requirements.txt # only needed once이후 실행 시에는 가상 환경을 활성화하기만 하면 됩니다:
source .env/bin/activate
aastuff/aastuff_standaloneMakefile에 두 가지 옵션을 전달할 수 있습니다:
DEBUG=1: 디버그 빌드 (디버그 출력, 최적화 없음, 디버그 정보)HPKE=1: HPKE 지원으로 빌드 (macOS 14.0+ 필요)make [DEBUG=1] [HPKE=1]
get_key.py로 키 가져오기AEA의 인증 데이터 블롭에 포함된 데이터를 사용하여 복호화 키를 풀어냅니다.
[!NOTE] iOS 18.0 beta 3 이전의 OTA에는 인증 데이터가 포함되어 있지 않습니다. 해당 OTA의 경우 응답과 함께 제공되는 복호화 키를 사용해야 합니다. macOS는 예외이며 항상 인증 데이터가 포함되어 있습니다.
source .env/bin/activate # if you used a virtual environment
python3 get_key.py <path to AEA>
aea decrypt -i <path to AEA> -o <decrypted output file> -key-value 'base64:<key in base64>'
# or
./aastuff -i <path to AEA> -o <decrypted output folder> -d -k <key in base64>
# or, to use the network to grab the private key
./aastuff -i <path to AEA> -o <decrypted output folder> -d -n
IPSW의 경우 언랩된 파일을 얻을 수 있습니다 (예: 090-34187-052.dmg.aea는 090-34187-052.dmg로 복호화됩니다).
에셋의 경우 특별히 제작된 Apple Archive를 얻을 수 있습니다 (다음 섹션 참조).
에셋(OTA 업데이트 포함)은 특별한 방식으로 구성되며 표준(aa) 도구로는 추출할 수 없습니다. 일반적으로 복호화하면 aa로 추출할 수 없는 Apple Archive("에셋 아카이브"라고 함)가 생성됩니다. 이를 추출하려면 aastuff를 사용해야 합니다.
# Decrypt if necessary
aea decrypt -i <path to AEA> -o <decrypted asset archive> -key-value 'base64:<key in base64>'
./aastuff -i <decrypted asset archive> -o <output folder>
aastuff는 아직 복호화되지 않은 에셋 아카이브도 처리할 수 있습니다:
./aastuff -i <path to AEA> -o <output folder> -k <key in base64>
전체 사용법 정보는 ./aastuff -h를 실행하세요.
[!NOTE]
aastuff_standalone에는 파일 목록 및 선택적 추출을 포함한 더 많은 기능이 있습니다. 전체 사용법은./aastuff_standalone -h를 실행하세요.
aastuff는 에셋 아카이브를 추출하기 위해 libAppleArchive의 함수인 AAAssetExtractor를 사용합니다. 그러나 이 API는 매우 빈약하며 선택적 추출과 같은 기능을 제공하지 않습니다.
aastuff_standalone은 (대부분) 표준 libAppleArchive 함수를 사용하여 에셋 아카이브를 추출합니다. 파일 목록 및 선택적 추출과 같은 기능을 제공하지만, 가능한 모든 에셋 아카이브에 대해 완전히 검증되지는 않았습니다.
현재는 둘 다 동일한 방식으로 빌드되고 사용됩니다. aastuff_standalone이 완전히 작동하고 검증되면 aastuff는 더 이상 사용되지 않을 예정입니다.