How to dig into Apple's app.
Take a peep at .app@griffin-stewie
View Slide
Fenrir Inc.@griffin-stewie
Motive
• ۀͰʮApple ͷ˓˓ΞϓϦ෩ͳײ͡ʯ• ࣮ࡍʹͲ͏ͬͯΔͷ͔ؾʹͳΔ
We can do it!
iOS Simulator ͰͳΒ• Xcode ͷ Attach To Process• ϓϩηε໊͕͔Ε͍͚Δ• ViewDebugging Ͱߏ͕͔Δ• LLDB Ͱ෦࣮͕͔Δ
1. Xcode ͰదͳϓϩδΣΫτΛ։͘2. γϛϡϨʔλͰ Debug Run3. ରΞϓϦΛγϛϡϨʔλͰىಈͤ͞Δ4. Attach To Process5. ViewDebugging ։࢝खॱ
How to find?
ද໊ࣔ ϓϩηε໊ΧϨϯμʔBQQ .PCJMF$BMࣸਅBQQ .PCJMF4MJEF4IPXਤBQQ .BQT/FXTBQQ /FXTϦϚΠϯμʔBQQ 3FNJOEFSTϔϧεέΞBQQ )FBMUI8BMMFUBQQ 1BTTCPPLઃఆBQQ 1SFGFSFODFTJ.FTTBHFTBQQ .PCJMF4.44BGBSJBQQ .PCJMF4BGBSJ࿈བྷઌBQQ $POUBDUTϗʔϜը໘ 4QSJOH#PBSE
Demo
Tips
LLDBͰΰχϣΰχϣ• View Λબ• ӈϖΠϯ OnjectInspector ʹΞυϨε͕͋Δ• Console ʹίϐϖͯ͠ϝιουݺͼग़͠
Swift ͰΖ͏ͱ͢Δͱ• Framework ͷΠϯϙʔτ͕ඞཁ• Ωϟετ͕ඞཁ• ͦͦະͷΞϓϦͩͱʹͳΒͳ͍
͜͜Ͱ Objective-C
Objective-C ͳΒ• Framework ͷΠϯϙʔτ͕ෆཁ• (ิ͕͍Βͳ͍ͳΒ)Ωϟετ͕ෆཁ• ະͰؔͳ͍
Wrap up
ಘΒΕͨݟ• Apple Container ViewController Λଟ༻͍ͯ͠Δ• UIWindow.rootViewController ͕ΧελϜViewController• Ϋϥε໊ͷ໋໊ͷࢀߟ
͓·͚• Ϋϥεͷ෦࣮·ͰݟΔͷςΫ͕͍Δ• LLDB Plugin (Chisel) ศར• ࣮ػͰσόοάγϯϘϧ͕͋Εʁ͕ࣗϏϧυͯ͠ͳ͍ΞϓϦͰ Attach ͯ͠ͷ͚ͧΔ