Upload
rambler-ios
View
146
Download
2
Embed Size (px)
Citation preview
–Helmut Jahn
“A good engineer thinks in reverse and asks himself about the stylistic consequences of the components and systems he proposes.”
iOS filesystem• /• /bin• /boot• /dev• /sbin• /etc• /lib• /mnt• /private• /tmp• /usr• /var• /Applications
Mach-O executable
*.c/*.m *.out
• Tokenization• Macro / #include expansion• AST producing• LLVM IR generating• Assembly• Object file• Executable
cycriptcycript allows developers to explore and modify running
applications on either iOS or Mac OS using a hybrid of Objective-C++ and Javascript syntax
Tweak
1.Locate executable2.class-dump headers3.Find target view(controller) using Cycript4.Find target method for monitoring5.Trace method for hooking using disassembler6.Write Tweak (using Theos)
Think first
1.No credentials in plists2.No NSLog in release3.Use Keychain4.Be careful with view snapshots5.No Objective-C in security code6.Use SSL pinning
Make disassembling harder
1.Use C functions2.Use #define3.inline methods4.string obfuscation5.decoding tables6.deny attach7.integrity checks8.ASLR