Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Injection for Xcode USAMI Kosuke Fenrir Inc.
Slide 2
Slide 2 text
Injection for Xcode ͱ » ιʔείʔυมߋ࣌ɺ࠶Ϗϧυͳ͠Ͱमਖ਼͕ө͞ΕΔ » ઌͷ try! Swift Tokyo 2018 Ͱհ͞Ε͍ͯͨ » ʢ2ɿ։ൃऀπʔϧͱܦݧͷ࣌ؒࢿʣ
Slide 3
Slide 3 text
Xcode ͷϓϥάΠϯʁ » ҎલϓϥάΠϯ͕ͩͬͨ Xcode 8 Ҏ߱͑ͳ͘ͳͬͨ » ݱࡏɺಠཱͨ͠ΞϓϦͱͯ͠͞Ε͍ͯΔ
Slide 4
Slide 4 text
༨ஊ » Injection.app Apple Script Λ͍ͬͯΔ » Xcode ͷݱࡏͷϓϩδΣΫτΛΔ » γϛϡϨʔλͰ࣮ߦதͷΞϓϦΛࠩ͠ସ͑Δ
Slide 5
Slide 5 text
Inject ͷ͔ͨ͠ » Xcode ͱ Injection.app ΛͦΕͧΕىಈ͢Δ » Xcode : iOS γϛϡϨʔλ্Ͱσόοά࣮ߦ͢Δ » Injection.app : » File Watcher ʹνΣοΫΛೖΕΔ » ϝχϡʔ͔Β Inject Source Λ࣮ߦ͢Δ » ιʔείʔυΛमਖ਼ɾอଘ͢Δͱ Inject ͞ΕΔ
Slide 6
Slide 6 text
͋ΕɺԿมΘΒͳ͍͚Ͳʁ » ΦϒδΣΫτࣗମ͙ࠩ͢͠ସ͑ΒΕ͍ͯΔ » View ͷ࠶දࣔউखʹ͞Εͳ͍
Slide 7
Slide 7 text
͜͏͢Εେৎ » ҎԼͷͲͪΒ͔Ͱ Inject ࣌ͷॲཧΛ࣮͢Δ » injected ϝιουΛ࣮ » INJECTION_BUNDLE_NOTIFICATION ͷϋϯυϥΛ࣮
Slide 8
Slide 8 text
༨ஊɿInjection ͬͯͲ͏͍͏ Έʁ » มߋͨ͠ιʔείʔυΛίϯύΠϧͯ͠ՃͰϦϯΫ͢Δ » ϦϯΫͨ͠όΠφϦΛγϛϡϨʔλͷϓϩηεʹϩʔυͤ͞Δ » ݹ͍࣮Ͱͳ͘৽͍࣮͠Λݺͼग़͢Α͏ʹ͢Δ
Slide 9
Slide 9 text
ͦΕɺͲ͏ͬͯɾɾɾʁ » ͠Εͬͱॻ͍͚ͨͲ݁ߏେมͳ͜ͱͯ͠ΔͬΆ͍ » ίϯύΠϧίϚϯυΛΔͨΊʹϏϧυϩάΛݟͨΓͱ͔ » ϓϩηεؒ௨৴ܦ༝ͰγϛϡϨʔλͷϓϩηεͷϝϞϦΛॻ͖ ͑ͨΓͱ͔ » Objective-C ͷ߹ Swizzling Ͱ৽͍࣮͠ʹࠩ͠ସ͑Δ » Swift ͷ߹ vtable ॻ͖͑Ͱ৽͍࣮͠ʹࠩ͠ସ͑Δ
Slide 10
Slide 10 text
Injection ͷ͍Ͳ͜Ζ » ͪΐͬͱͨ͠มߋΛ͙͢ʹөͤ͞ΒΕΔ » View ͱؔͳ͍ͱ͜Ζʹ͍͍͢ » View ͷௐΛ͍ͨ͠߹ injected ϝιου͔Β؆୯ʹมߋͰ͖ ΔΑ͏͓ͯ͘͠ » View ͷઃఆΛ͢ΔϝιουΛ͓ͯ͘͠