Skip to main content

Capstone — Seeing through an unfamiliar binary

One sample, withheld identity, every method you have. Choose an approach, justify it, validate whatever you conclude, and state the boundary of your own result.

Due: 28 May 2027 · Weight: 45%

The brief

Here is a binary and a target function. Nobody is going to tell you what was done to it. Find out as much as you can defend, and be exact about where your defence stops.

This is not “implement a deobfuscator”. Nobody writes a deobfuscator in three weeks, and the course has spent twelve weeks showing you that the hard part is not the implementation. The deliverable is a justified analysis.

What you are given

One sample from the course corpus, with its treatment label and its result files withheld, prepared as a teaching derivative. What comes with it:

Two things follow from that design, and you should plan around both. Ground truth exists, so a conclusion can be checked and a wrong one will be found. And the comparator is matched, so “it is bigger than the clean one” is available to you immediately and is worth nothing on its own.

Some samples in the pool have a known failure in them. If your sample is one of those, finding and localising the failure is the strongest result available to you — and reporting a success that is not there is the weakest.

What you submit

A report, ten to fifteen pages, and a working directory containing the files a marker needs to follow it — extracted expressions, graphs, solver queries and their outputs, test vectors, scripts. The report is what is marked; the directory is what makes it checkable.

The report needs these parts, in whatever order serves the argument:

How it is marked

Look at the weights. Validation is worth as much as the analysis, and limitations are worth more than communication.

That is the course’s whole argument turned into a rubric. Two of the results you have studied — a rewrite whose graph shrank from 56 blocks to 10 in one consistent Miasm convention and returns the wrong value, and a lift whose IR verifies and miscomputes 3,917 of 4,118 inputs — would each have passed any review that marked only the analysis and the output. Both were caught by the validation step, and only by the validation step.

So a report that concludes less and validates what it concludes will outscore a report that concludes more. Concretely:

Analysis success
A tool ran, produced output, and did not error.
Semantic proof
A property holds — under a stated model, state and path prefix.
Binary rewriting
Bytes changed and a file still loads.
Runtime correctness
The program answered correctly, on the inputs that were actually run.

A strong capstone says, for every conclusion, which of those four it has reached — and notices when it has reached the third without the fourth.

Scope and timing

Three weeks of work, alongside weeks 10 to 12. The realistic scope for that time is one target function analysed properly, not a whole binary surveyed. Reports that try to cover every export arrive thin, and thinness shows up under validation first.

Start with the comparator diff in week 10, choose your methods in week 11, and spend week 12 on validation and the limitations section. The limitations section is the one markers read first, so write it early and keep adding to it rather than composing it the night before.

Declaring your working

The sample is individual. Discussing method choice with others is fine and should be declared; handing over a recovered expression or a patch is not.

Every tool you use is named with its version in the provenance section, and its output is a claim you then have to support — which is, in the end, the whole thing this course has been asking you to do.

The spec

The brief poses the problem and leaves room for a response. The spec is the fixed part: what a marker checks. Some lines can be checked mechanically; the rest call for judgement.

How it is marked

CriterionWeight
Method selection, and the reasons given for it25%
Analysis across more than one representation25%
Validation — what was checked, how, and at what level25%
Limitations and what remains unknown15%
Provenance and communication10%