MASTG-TECH-0113: Obtendo Símbolos de Depuração
Para recuperar símbolos de depuração de binários iOS, você pode usar radare2 para iOS, objdump — iOS ou nm - iOS para inspecionar todos os binários do aplicativo.
radare2¶
Usando radare2 para iOS com o comando is:
r2 -A MASTestApp
[0x100007408]> is~Sec
70 0x00007894 0x100007894 LOCAL FUNC 0 imp.SecKeyCopyExternalRepresentation
71 0x000078a0 0x1000078a0 LOCAL FUNC 0 imp.SecKeyCopyPublicKey
72 0x000078ac 0x1000078ac LOCAL FUNC 0 imp.SecKeyCreateRandomKey
73 0x000078b8 0x1000078b8 LOCAL FUNC 0 imp.SecKeyCreateSignature
74 0x000078c4 0x1000078c4 LOCAL FUNC 0 imp.SecKeyVerifySignature
Alternativamente, você pode usar rabin2 para obter os símbolos executando rabin2 -s MASTestApp.
objdump¶
O trecho a seguir mostra como você pode aplicar objdump — iOS no MASTestApp (o executável principal do aplicativo iOS) com a saída típica de um binário contendo símbolos de depuração. Estes são marcados com o flag d (debug). Consulte a página do manual do objdump para informações sobre vários outros caracteres de flag de símbolo.
$ objdump --syms MASTestApp | grep " d " | grep "swift"
...
0000000000000000 d *UND* MastgTest.swift
0000000000000000 d *UND* __swift_FORCE_LOAD_$_swiftFoundation_$_MASTestApp
0000000000000000 d *UND* __swift_FORCE_LOAD_$_swiftObjectiveC_$_MASTestApp
0000000000000000 d *UND* __swift_FORCE_LOAD_$_swiftDarwin_$_MASTestApp
0000000000000000 d *UND* __swift_FORCE_LOAD_$_swiftCoreFoundation_$_MASTestApp
...
nm¶
Com nm - iOS você pode comparar os símbolos de uma chamada simples para nm com a saída de uma chamada para nm -a. A última também imprime os símbolos de depuração. O comando a seguir mostrará apenas símbolos de depuração em formato diff. Se estiver vazio, não há símbolos de depuração presentes.
$ diff <(nm MASTestApp) <(nm -a MASTestApp)
...
28a228
> 0000000100009928 - 01 0000 FUN _$s10MASTestApp11ContentViewV7SwiftUI0D0AadEP05_makeD4List4view6inputsAD01_dH7OutputsVAD11_GraphValueVyxG_AD01_dH6InputsVtFZTW
30a231
> 000000010000992c - 01 0000 FUN _$s10MASTestApp11ContentViewV7SwiftUI0D0AadEP14_viewListCount6inputsSiSgAD01_dhI6InputsV_tFZTW
31a233,234
> 0000000100009944 - 01 0000 FUN _$s10MASTestApp11ContentViewV7SwiftUI0D0AadEP4body4BodyQzvgTW
> 0000000000000000 - 00 0000 GSYM _$s10MASTestApp11ContentViewVAC7SwiftUI0D0AAWL
32a236
> 000000010000a220 - 01 0000 FUN _$s10MASTestApp11ContentViewVAC7SwiftUI0D0AAWl
...