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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mtk_bp — MediaTek 베이스밴드 펌웨어를 분석하고 리버스 엔지니어링하기 위한 도구로, 파일 추출, 심볼 파싱, 모뎀 바이너리용 Ghidra 통합을 지원합니다. | Kitploit
도구/GitHubGitHub/nccgroup/mtk_bp
Embedded Systems SecurityStatic AnalysisReverse EngineeringMobile SecurityHardware SecurityBinary AnalysisFirmware Analysis
GitHubnccgroup/mtk_bp

mtk_bp

MediaTek 베이스밴드 펌웨어를 분석하고 리버스 엔지니어링하기 위한 도구로, 파일 추출, 심볼 파싱, 모뎀 바이너리용 Ghidra 통합을 지원합니다.

저장소 보기
76202개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

MediaTek BP 펌웨어 도구

이 저장소에는 MediaTek 모뎀 펌웨어와 관련된 Kaitai 기반 파일 형식 정의와 이러한 파일 형식을 다루기 위한 몇 가지 기본적인 명령줄 도구가 포함되어 있습니다. Kaitai IDE를 사용하면 mtk_structs 디렉터리에 있는 Kaitai 정의(*.ksy 파일)로 파일을 대화형으로 탐색할 수도 있습니다.

이 정의들을 기반으로 한 md1img 파일용 Ghidra 로더는 https://github.com/nccgroup/ghidra-mtk-loader에서 사용할 수 있습니다.

다음은 XT2205-1_TESLA_TMO_12_S2STS32.71-118-4-2-6-3_subsidy-TMO_UNI_RSU_QCOM_regulatory-DEFAULT_cid50_CFC.xml.zip을 https://mirrors.lolinet.com/firmware/lenomola/tesla/official/TMO/에서 가져와 사용한 예시입니다:

md1img 컨테이너 풀기

md1_extract.py는 md1img에 포함된 파일을 추출합니다:

root@kitploit:~
$ ./md1_extract.py ../XT2205-1_TESLA_TMO_12_S2STS32.71-118-4-2-6-3_subsidy-TMO_UNI_RSU_QCOM_regulatory-DEFAULT_cid50_CFC/md1img.img --outdir ./md1img_out/
extracting files to: ./md1img_out
md1rom: addr=0x00000000, size=43084864
        extracted to 000_md1rom
cert1md: addr=0x12345678, size=1781
        extracted to 001_cert1md
cert2: addr=0x12345678, size=988
        extracted to 002_cert2
md1drdi: addr=0x00000000, size=12289536
        extracted to 003_md1drdi
cert1md: addr=0x12345678, size=1781
        extracted to 004_cert1md
cert2: addr=0x12345678, size=988
        extracted to 005_cert2
md1dsp: addr=0x00000000, size=6776460
        extracted to 006_md1dsp
cert1md: addr=0x12345678, size=1781
        extracted to 007_cert1md
cert2: addr=0x12345678, size=988
        extracted to 008_cert2
md1_filter: addr=0xffffffff, size=300
        extracted to 009_md1_filter
md1_filter_PLS_PS_ONLY: addr=0xffffffff, size=300
        extracted to 010_md1_filter_PLS_PS_ONLY
md1_filter_1_Moderate: addr=0xffffffff, size=300
        extracted to 011_md1_filter_1_Moderate
md1_filter_2_Standard: addr=0xffffffff, size=300
        extracted to 012_md1_filter_2_Standard
md1_filter_3_Slim: addr=0xffffffff, size=300
        extracted to 013_md1_filter_3_Slim
md1_filter_4_UltraSlim: addr=0xffffffff, size=300
        extracted to 014_md1_filter_4_UltraSlim
md1_filter_LowPowerMonitor: addr=0xffffffff, size=300
        extracted to 015_md1_filter_LowPowerMonitor
md1_emfilter: addr=0xffffffff, size=2252
        extracted to 016_md1_emfilter
md1_dbginfodsp: addr=0xffffffff, size=1635062
        extracted to 017_md1_dbginfodsp
md1_dbginfo: addr=0xffffffff, size=1332720
        extracted to 018_md1_dbginfo
md1_mddbmeta: addr=0xffffffff, size=899538
        extracted to 019_md1_mddbmeta
md1_mddbmetaodb: addr=0xffffffff, size=562654
        extracted to 020_md1_mddbmetaodb
md1_mddb: addr=0xffffffff, size=12280622
        extracted to 021_md1_mddb
md1_mdmlayout: addr=0xffffffff, size=8341403
        extracted to 022_md1_mdmlayout
md1_file_map: addr=0xffffffff, size=889
        extracted to 023_md1_file_map

주요 모뎀 펌웨어는 md1rom 파일(000_md1rom)에 있습니다. nanoMIPS 바이너리 리버스 엔지니어링에 대해서는 nanoMIPS Ghidra 확장을 참조하세요.

디버그 심볼 나열하기

mtk_dbg_extract.py는 md1_dbginfo(md1_file_map이 제공하는 전체 파일 이름)에서 심볼을 가져와 Ghidra의 ImportSymbolsScript.py 스크립트로 가져올 수 있는 텍스트 형식으로 출력합니다.

root@kitploit:~
$ ./mtk_dbg_extract.py symbols DbgInfo_NR16.R2.MT6879.TC2.PR1.SP_LENOVO_S0MP1_K6879V1_64_MT6879_NR16_TC2_PR1_SP_V17_P38_03_24_03R_2023_05_19_22_31 | tee debug_symbols.txt
INT_Vectors 0x0000084c f
brom_ext_main 0x00000860 f
INT_SetPLL_Gen98 0x00000866 f
PLL_Set_CLK_To_26M 0x000009a2 f
PLL_MD_Pll_Init 0x000009da f
INT_SetPLL 0x000009dc f
INT_Initialize_Phase1 0x027b5c80 f
INT_Initialize_Phase2 0x027b617c f
init_cm 0x027b6384 f
init_cm_wt 0x027b641e f
...

일부 디버그 정보 파일(예: 예제 펌웨어의 md1_dbginfodsp)에는 여러 파일에 대한 심볼이 포함되어 있습니다. 현재는 각 파일의 심볼이 #로 시작하는 구분 줄과 함께 순서대로 출력됩니다. 예:

root@kitploit:~
# 0x000010 DSP_USIP0 
_ss_reset_entry 0x00000000 l
_vector_excpetion_veneer 0x00000404 l
...
# 0x081c4b DSP_USIP1 
_ss_reset_entry 0x00000000 l
_vector_excpetion_veneer 0x00000404 l
...
# 0x2cb407 DSP_SCQ16 SCQ16_LTE_ROCODE
void_lte_dmrs_comm_cell_info_trace___uint___uint 0x0003aff8 l
void_inv_cholesky_4x4_vst_func_Q3_VMLmvpvHalf_Q3_VMLmvpvHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpvHalf_Q3_VMLmvpvHalf_Q3_VMLmvpvcHalf_Q3_VMLmvpsHalf___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint___uint 0x0004a5ab l
...

이 주석 줄은 ImportSymbolsScript.py에서 지원되지 않으므로, 분할은 수동으로 수행해야 합니다. (TODO: 각 항목에 대한 심볼 텍스트 파일을 출력하는 옵션)

도구 다운로드