Badoo Jun 11, 2020

Using Hopper to Investigate an iOS Bug

Article Summary

Alexander Nikishin from Bumble's engineering team cracked open iOS 13's binary code with a disassembler to find a bug Apple couldn't fix for 8 months. What he discovered was a single misplaced bit in a keyboard mask.

When iOS 13 broke phone number autocomplete suggestions in Bumble and Badoo's registration flows, Apple's bug reports went nowhere. Nikishin used Hopper Disassembler to reverse engineer UIKit's private classes, diving into assembly code and bit manipulation to pinpoint exactly why UIPredictionViewController was failing for phone pad keyboards.

Key Takeaways

Critical Insight

A single incorrect bit in UIKit's keyboard type validation mask broke phone number autocomplete, discoverable only through reverse engineering the compiled framework.

The investigation reveals how Apple's iOS 13 refactoring introduced the bug and why symbolic breakpoints became essential for tracking system-level function calls.

Recent from Badoo

Related Articles