Challenge: Memgraph Capture the Flag

In the "Detect and diagnose memory issues" session at WWDC21, we explored how debugging memory problems can help improve your app’s performance, while “Symbolication: Beyond the basics” showcased debug symbols and how symbolication helps us connect the dots during code debugging. Now, it’s time to put those new skills to work.

If you like solving puzzles, you’re in the right place. One of our engineers has hidden a memory easter egg in our secret app. We're trying to track it down but all we know is that it has format flag_<unknown_string_here>@WWDC. You’ll have to use the command line tools offered by macOS to investigate the memory issue, recover missing symbols, and and capture the rogue flag.

Begin the challenge

To get started, download the challenge .zip attached to this article and unzip the folder. We also have a message from our engineer to get you on the right track: "Memgraph is a special binary plist. What can you find in its properties?”

Download the Memgraph Capture the Flag Challenge material

And once you’ve explored the challenge, check out one solution to find the flag.

Challenge: Solution to “Memgraph Capture The Flag”

The “Memgraph Capture the Flag” challenge invites you to learn and practice memory debugging and symbolication with command line tools. If you haven’t yet attempted the challenge or otherwise don’t want to be spoiled on the necessary steps to complete it, we recommend returning to the...

View now

You can solve these kinds of puzzles and track down memory issues in your own app, too. Try creating reference cycles in your app, saving a memgraph, and tracing them back to your source code. And for more debugging details, check out the WWDC21 sessions below.

Resources

Symbolication: Beyond the basics

Discover how you can achieve maximum performance and insightful debugging with your app. Symbolication is at the center of tools such as Instruments and LLDB to help bridge the layers between your application’s runtime and your source code. Learn how this process works and the steps you can take...

Watch now

Detect and diagnose memory issues

Discover how you can understand and diagnose memory performance problems with Xcode. We’ll take you through the latest updates to Xcode’s tools, explore Metrics, check out the memgraph collection feature in XCTest, and learn how to catch regressions using a Performance XCTest.

Watch now

Read the WWDC21 Challenges Terms and Conditions