Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
In The Middle Of Chatter #2
Search
Takahiro Yoshimura
October 29, 2024
Technology
0
32
In The Middle Of Chatter #2
Somewhat detailed dive to iOS application analysis methodology. (OWASP Saitama MTG #22, talk #1)
Takahiro Yoshimura
October 29, 2024
Tweet
Share
More Decks by Takahiro Yoshimura
See All by Takahiro Yoshimura
Reviewing 2025
alterakey
0
8
Repeat After Me #2
alterakey
0
32
Repeat After Me #1
alterakey
0
31
Slaying 2FA
alterakey
0
20
Ghost Warden
alterakey
0
20
Toxic Oversight
alterakey
0
21
Reviewing 2024
alterakey
0
24
Chaotic Channel
alterakey
0
40
In The Middle Of Chatter #1
alterakey
0
41
Other Decks in Technology
See All in Technology
Snowflakeで実践する、生成AIを活用した「自然言語によるデータとの対話」
nayuts
0
130
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
330
文字列の並び順 / Unicode Collation
tmtms
3
630
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
160
SREには開発組織全体で向き合う
koh_naga
0
390
高度サイバー人材育成専科(後半)
nomizone
0
240
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
130
.NET 10の概要
tomokusaba
0
130
Amazon Quick Suite で始める手軽な AI エージェント
shimy
1
1.2k
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
510
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
140
Identity Management for Agentic AI 解説
fujie
0
290
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
57k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
Rails Girls Zürich Keynote
gr2m
95
14k
Unsuck your backbone
ammeep
671
58k
Statistics for Hackers
jakevdp
799
230k
4 Signs Your Business is Dying
shpigford
186
22k
Into the Great Unknown - MozCon
thekraken
40
2.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
140
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
Transcript
IN THE MIDDLE OF CHATTER 2 OWASP SAITAMA MTG #22,
TALK #1 Image by quinn.anya on flickr, CC-BY-SA 2.0
TEXT SESSION FLAGS ▸ ըɾԻɾެ։: OK Image by Nico Kaiser
on flickr, CC-BY 2.0
TEXT WHO I AM ▸ Takahiro Yoshimura (@alterakey) https://keybase.io/alterakey ▸
Monolith Works Inc. Co-founder, CTO Security researcher ▸ ໌࣏େֶαΠόʔηΩϡϦςΟݚڀॴ ٬һݚڀһ
TEXT WHAT I DO ▸ Security research and development ▸
iOS/Android Apps →Financial, Games, IoT related, etc. (>200) →trueseeing: Non-decompiling Android Application Vulnerability Scanner [2017] ▸ Windows/Mac/Web/HTML5 Apps →POS, RAD tools etc. ▸ Network/Web penetration testing →PCI-DSS etc. ▸ Search engine reconnaissance (aka. Google Hacking) ▸ Whitebox testing ▸ Forensic analysis
TEXT WHAT I DO ▸ CTF ▸ Enemy10, Sutegoma2 ▸
METI CTFCJ 2012 Qual.: Won ▸ METI CTFCJ 2012: 3rd ▸ DEF CON 21 CTF: 6th ▸ DEF CON 22 OpenCTF: 4th ▸ ൃදɾߨԋͳͲ DEF CON 25 Demo Labs (2017) DEF CON 27 AI Village (2019) CODE BLUE (2017, 2019) CYDEF (2020) etc. Image by Wiyre Media on flickr, CC-BY 2.0
TEXT BACKGROUND ▸ LLMͷνϟοτΞϓϦ ʢChatGPT, GPT-4o, Claude .. ʣ ▸
͜ΕΒͷڍಈ…Ͳ͏ͳ͍ͬͯΔͷͩΖ͏͔ ▸ iOS൛ΞϓϦΛର Image by focal5 on flickr, CC-BY-NC 2.0
TEXT DEFEATING DRM ▸ App Store͕ʹ͋ͨΓ҉߸Խ+ॺ໊ ▸ ҉߸Խ͞Ε͍ͯΔͱવಡΊͳ͍ ▸ ҉߸ͷ͍ํʹ͞΄Ͳେ͖ͳͳ͍
→ਖ਼߈๏Ͱ͍͠ ▸ ࣮ʹղಡͤ͞Δͷ͕ྑ͍ɺ͕ ▸ ղಡπʔϧ͕App Storeʹ͋Δ…Θ͚ͳ͍ ▸ ղಡʹjailbreak͕ඞਢ Image by lantzilla on flickr, CC-BY-NC-ND 2.0
TEXT BREAKING OUT OF PRISON ▸ jailbreak ▸ ίʔυॺ໊ݕূػߏΛແޮԽ →Χʔωϧͷ੬ऑੑΛಥ͍ͯϑϥάΛԚછ
▸ checkm8: BootROMʹ͓͚Δuse-after-free →BootROMͳͷͰύονͰ͖ͳ͍ (<A12) ▸ checkra1n (12.x ..14.x) ▸ palera1n (15 .. 16.4, 15 .. 17.x) →2.0ܥ͔Βcheckra1nΛ෦తʹར༻ Image by Prab Bhatia Photography on flickr, CC-BY-NC-ND 2.0
TEXT NOW UNLEASHED, WHERE TO GO? ▸ ରͷΞϓϦΛղಡ͍ͨ͠ ▸ frida-ios-dump
→ϝϞϦμϯϓ͠ΞϓϦΛ࠶ߏ →frida͕ඞཁ ▸ frida: dynamic instrumentation framework! ▸ frida-serverΛattach ▸ APIݺͼग़͠ͷI/OͳͲࡉ෦͔Β੍ޚՄೳʹ Image by Mr. Littlehand on flickr, CC-BY-ND 2.0
TEXT REVERSING ▸ Ghidra: Multi-arch disassembler (NSA) radare2: Binary analysis
framework (pancake et al.) ▸ ؆୯ͷͨΊʹghidraΛ༻ Image by Simon Rankin on flickr, CC-BY-NC-ND 2.0
TEXT REVERSING TAKEAWAYS ▸ ղੳ analyzeHeadless ~/works/claude/t claude -preScript analysisopts_ios.py
-import Payload/ Claude.app/Claude ▸ औΓग़͠ analyzeHeadless ~/works/claude/t claude -postScript out.py -process Claude -noanalysis → out.asm(※) ͕ੜ͞ΕΔͷͰrename ▸ ※out.asmout.py͕উखʹܾΊ͍ͯΔϑΝΠϧ໊ Image by Thomas_H_foto on flickr, CC-BY-ND 2.0
TEXT NOW YOU ARE PIECES ▸ όΠφϦΛೖͯ͠ΞηϯϒϦΛճऩ ▸ ͋ͱ… ࣮ࡍͷղੳΛߦͳ͏
Image by Thomas_H_foto on flickr, CC-BY-ND 2.0
TEXT ANATOMY OF IOS APP ▸ iOSΞϓϦͷߏ ▸ Info.plist: ϝλใ
(_CodeSignature: ॺ໊) ▸ assets.car: Ϧιʔεྨ ▸ Frameworks: ϥΠϒϥϦྨ˞ ▸ (ΞϓϦ໊): Mach-O࣮ߦϑΝΠϧ˞
TEXT INFO.PLIST: METADATA ▸ ϝλใ ▸ ΞϓϦ໊ ▸ ATS ▸
bundle id ▸ ཁٻݖݶ ▸ URLεΩʔϜ etc.
TEXT FRAMEWORKS ▸ ΞϓϦ͕༻͢ΔϑϨʔϜϫʔΫ ▸ Mach-O dylib
TEXT EXECUTABLES ▸ ΞϓϦຊମ ▸ Mach-O executable - ԟʑʹͯ͠େ͖͍ ▸
͞·͟·ͳϥΠϒϥϦ͕੩తϦϯΫ͞ΕΔͨΊ
TEXT DISASSEMBLED CODE ▸ arm64-v8a (كʹarmv7s) ▸ OSʹObjC৭͕͍ͬͯΔͷͰจࣈྻΛղܾͰ͖ ͯ͠·͑APIϨϕϧͷղੳ͍͢͠ ▸
Swiftײ֮తʹC++ίʔυʹ͍ۙ name mangling: ॲཧܥͰdemangleͰ͖Δ͕… ىಈίετ͕ߴ͍ͷͰ͕ඞཁ ▸ AppleʹΑΔ৹͕ࠪ͋ΔͨΊ͔ɺཱͪೖͬͨ͜ͱ Λ͍ͯ͠Δίʔυ͋·ΓΈͳ͍…ͣʢʂʣ
TEXT ARTIFACTS ▸ ݟΔ͖Օॴ ▸ API call ▸ File operation
▸ Network operation ▸ Re fl ection ▸ Dynamic code loading ▸ etc...
TEXT ARTIFACTS: API CALL ▸ API call ▸ ObjC: objc_msgSend
▸ Swift: (mangled name)
TEXT ARTIFACTS: FILE ACCESS ▸ API call ▸ NSFile, NSFileManager,
etc. ▸ ϑΝΠϧΞΫηε
TEXT ARTIFACTS: NETWORK ACCESS ▸ API call ▸ NSURLRequest, etc.
▸ ωοτϫʔΫΞΫηε; ஶ໊ͳϥΠϒϥϦͷݺ ग़͕͜͠ΕʹΘΔ߹͕ԟʑʹͯ͋͠Δ (Alamo fi re, Moya, etc..)
TEXT ARTIFACTS: REFLECTIONS ▸ API call ▸ classFromString, selectorFromString, etc.
▸ ΫϥεηϨΫλΛจࣈྻ͔Βੜ
TEXT ARTIFACTS: DYNAMIC CODE LOADINGS ▸ API call ▸ dlsym
etc. ▸ ϥΠϒϥϦͷϓϩγʔδϟΞυϨεΛऔಘ
TEXT TS2-IOS: AUTOMATE THE ANALYSIS ▸ iOSΞϓϦղੳΛߦͳ͏trueseeing extension ▸ 2.2.5ͰmainϚʔδͨ͠:
ipa͕ղੳՄೳʹʂ ▸ API call, URL, dynamic code loading, syscall, re fl ection, jailbreak detection, debug probe, privacy concerns, obfuscations, assertions, logging, library imports, motion sensor, url scheme, ATS, permission, device requirements, device info probes, entitilements, copyright info, XOR ciphers, statically linked libraries ..
TEXT TS2-IOS: AUTOMATE THE ANALYSIS ▸ dockerͷ߹ͳΒ wc Λ /ext/ios
ͱͯ͠Ϛϯτ ͢Δ͚ͩ ▸ venvʹΠϯετʔϧ͍ͯ͠ΔͳΒpip ▸ ͜Ε͕ೖΔͱtrueseeingͰipaΛ։͚ΔΑ͏ʹ →͋ͱas!;gt report.txtͱ͢ΕऴΘΓ →HTMLͰग़͢ͳΒgh report.html ▸ disasm.tar.gzͱͯ͠ghidraͰdisasm͓ͯ͘͠ →ࠓͷͱ͜Ζ10.3ܥͷΈ
TEXT INSIDE TS2-IOS ▸ ipaͷplistྨΛղಡɾੳ ▸ disasm.tar.gzͱͯ͠·ͱΊΒΕ͍ͯΔ disassembled codeΛಡΜͰಛΛݕग़ ▸
API callΛྨ ▸ Swift symbol demangling ▸ Ϋϥε໊ͷ಄ࣙΛநग़
TEXT INSIDE TS2-IOS ▸ จࣈྻఆͷਪghidra·͔ͤ ▸ จࣈྻఆͷੳΛ༗ޮʹ ▸ fi eldΛେ͖͘औΔ
→લճݟͨΑ͏ͳܗͰpostscriptΛט·ͤΔ
TEXT TS2-SWIFT-DEMANGLE ▸ ໊લ͕ͻͲ͍… ▸ swiftॲཧܥdemanglerΛAPIԽ →swiftॲཧܥͷىಈ͕͗͢ΔͨΊ… ▸ ts2ͱϦϯΫ͢Δ͚ͩ (--link
ts2-swift-demangle)
TEXT TS2-DISASM-GHIDRA ▸ ipa/apkΛ͢ͱghidraͰdisasm͢Δcontainer ▸ docker run --rm -v $(pwd):/out
ts2-disasm- ghidra target.ipa → ͜Ε͚ͩͰdisasm.tar.gzΛੜ ▸ streamingੜ: σΟεΫʹ༏͍͠ ▸ ͨͩແ͔͔ۤ࣌ؒΔ
TEXT CLAUDE: FINDINGS ▸ ͋·Γͳ͍…͕ ▸ ಈతίʔυϩʔυ ▸ PasteboardͷΞΫηε ▸
cydiaͷݕग़ ▸ σόΠεϞσϧφϯόʔͷݕग़
TEXT TAKEAWAYS ▸ iOSΞϓϦੳʹ͓͍ͯݟΔ͖Օॴ ▸ Info.plist: ϝλใ Frameworks: ϥΠϒϥϦྨ˞ (ΞϓϦ໊):
Mach-O࣮ߦϑΝΠϧ˞ ▸ ObjC৭͕·ͩ·ͩڧ͍: call͕จࣈྻఆͰग़ݱ ▸ SwiftC++ʹ͍ۙҹ: demangling͕༗༻ ▸ ࠷৽։ൃಈͱϥΠϒϥϦͷ͕ࣝେࣄ
TEXT TAKEAWAYS ▸ ͳͷjailbreak͔Βͷఠग़ ▸ trueseeingͱghidraͷҖ ▸ disasmͯ͠͠·͑ੳ·ͰҰؾ௨؏ ▸ disasm͕͔͔࣌ؒΔ͕ࣗಈԽՄೳ
(radare2ͰͰ͖Δͱ͍͍ͷ͕ͩ…) ▸ ͱ͍͏͜ͱͰͦΖͦΖiOSਖ਼ࣜରԠ༧ఆ
FIN. 29.10.2024 TAKAHIRO YOSHIMURA (@ALTERAKEY)