Solving a multi-binary challenge with IDA MCP
This brief tutorial demonstrates the capability of the Hex-Rays IDA MCP Server in action, especially the multi-binary coordination.
To demonstrate the IDA MCP, we prepared a simple challenge that involves multiple files called ParcelDesk. The idea of the challenge is that you need to enter a parcel identifier and the corresponding collection code to open the door. In our case, we need to obtain the collection code for parcel ZX-4815.
If you're new to IDA MCP, see the Overview and Getting Started first.
Prerequisites
IDA MCP installed
The challenge files downloaded
1. Get started and extract the files
To get started, extract the challenge files into a new folder and open a coding agent there (we used Claude Code with Sonnet 5 for this demonstration). Then ask with an example prompt:
Can you obtain the collection code for parcel ZX-4815 in ParcelDesk.exe?
2. Review the agent's findings
The agent will work for a few minutes, independently calling open_database and execute_python on the relevant binaries. It should come back with an answer like this:
Collection code for parcel ZX-4815:
NORTH-7F29How it was derived (small crackme in
/tmp/parcel-desk):
ParcelDesk.exehashes the parcel ID withDeriveRouteSeed(route_math.dll) — an FNV-1a-style hash over the UTF-16LE bytes, thenrol(x^0x6D3A91E7, 7) + 0x13579BDF→ seed0x894a8a98for "ZX-4815".Since the parcel ID doesn't start with
OLD-, it loadsmanifest_codec.dlland reads its embedded RCDATA resource (ID 201/0xC9), a 46-byte encrypted blob.
DecodeManifestXORs that blob with an xorshift32 keystream seeded byseed ^ 0xC0DEC0DE(plus an incrementing counter starting at 71, step 29).Decoding yields the plaintext manifest:
PDM1|parcel=ZX-4815|locker=17|code=NORTH-7F29|.Verified live against the actual binary via Wine — it printed
ACCESS GRANTED.
What's next?
See Multiplexing to understand how it made this multi-binary coordination possible.
Last updated
Was this helpful?
