스크립트, 도구 및 정보를 역 엔지니어 Samsung의 Exynos 셀룰러베이스 밴드 플랫폼, 코드 명 Shannon. 이 도구는 8 월 5 일 Black Hat USA'2020에서 "Samsung 's Shannon Baseband를 모방하는"Talk "Emulating Samsung의 Shannon Baseband"를 위해 출시되었습니다.
reversing/ghidra/ShannonLoader modem.bin 로딩하기위한 ghidra 확장. https://github.com/grant-h/shannonfirmware의 모든 펌웨어 이미지는 로더에 대한 CI 테스트 중에로드하여 호환성을 보장합니다.
reversing/ghidra/scriptsShannon Modem 이미지에 주석을 달 수있는 Ghidra Post-Loading Python 스크립트. 여기에는 디버그 문자열 복구 및 자동 명명 기능이 포함됩니다. Shannonloader로로드 한 후 사용하십시오.
reversing/modem RAW modem.bin 추출 스크립트는 서브 부품 및 기타로 개발 된 스크립트.
reversing/btlBTL (Back Trace Log) 파일을 다시 구문 분석하는 스크립트 및 정보. 이들은 모뎀 충돌 / 덤프 중 또는 "CP RAM 로깅"기능을 통해 포함됩니다. 이들은 실제 실행 모뎀의 압축 로그 파일입니다.
firmware/펌웨어 획득 및 일부 추출 된 데이터 덤프에 대한 정보.
다음은 Ghidra와 함께이 펌웨어를 되돌리기위한 빠른 자습서입니다.
modem.bin 파일을 추가로 추출했는지 확인하십시오. 압축 된 경우 바이너리를 UNLZ4로 확인하십시오.ShannonLoader.zip 릴리스를 대상으로합니다.modem.bin 파일을 선택하십시오. 이 파일의 로더는 자동으로 "삼성 섀넌 모뎀 바이너리"로 선택됩니다. 이 보이지 않으면 올바른 파일을로드하고 확장자를 올바르게 설치했는지 확인하십시오. GHIDRA 디버그 콘솔 (스플래시 화면의 오른쪽 하단)을 열어 오류가 있는지 확인하십시오.ShannonTraceEntry.py Python 스크립트를 실행하십시오. ~/ghidra_scripts (linux)의 사용자 홈 디렉토리에 스크립트를 배치하거나 관리자의 경로를 추가하십시오. 이 스크립트는 분석 전에 모든 트레이스 디버깅 정보를 식별하고 디아 스착 데이터를 피합니다.log_printf 함수의 회복이 파손되어 이진 전체에서 분해가 깨지도록합니다. 이것을 선택 취소하지 않으면 수입을 처음부터 다시 시작해야합니다.ShannonRename.py 실행하십시오. 이렇게하면 이진을 탐색하는 데 도움이되지만 이름은 휴리스틱으로 결정되므로 품질이 다를 수 있습니다. 기각 이름이 같은 함수에는 숫자 접두사가 추가됩니다.주변을 간단히 살펴 보려면 2017 모뎀 이미지에 대한 GHIDRA 프로젝트를 수출했습니다.
저장소 라이센스는 MIT입니다. 참고 : 최상위 라이센스는 전체 저장소가 아닌 SPDX 마킹을 명시 적으로 포함하는 파일 만 포함합니다. 다른 파일의 경우 라이센스가 없을 수도 있고 (예 : 바이너리 덤프, 펌웨어) 다른 허용 라이센스가 포함되어있을 수 있습니다.