Challenge: Memgraph Capture the Flag

Flag symbol on grey background

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?”

For those participating in the Digital Lounges, once you’ve discovered the flag, let us know: Visit the #devtools-study-hall channel and use the “Submit your answer” form to share with us.

Register for the Digital Lounges

Visit the Developer Tools Digital Lounge (Requires registration)

Not participating in the Digital Lounges this year? Share what you thought of the challenge (but don’t spoil the answer!) in the Developer Forums using the tag “WWDC21-Challenges,” or on social media using the hashtag #WWDC21Challenges.

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 all our sessions at WWDC21.

Explore WWDC21 Challenges on the Developer Forums

Explore #WWDC21Challenges on social media

Resources



  • WWDC21

Symbolication: Beyond the basics



  • WWDC21

Detect and diagnose memory issues

Read the WWDC21 Challenges Terms and Conditions