HI Cyber Con CTF 2026. Reverse engineering.

Entitlement

A right key looks like a hang here. The lab broke both checks and waited it out, 41 minutes in all.

Published 2 November 2026. Challenge by Hidden Investigations.

The brief

Recovered a licence checker from a vendor who takes their intellectual property very seriously. I believe I have the key but why isn't it working?

  • entitlement.zip, 14 KB

In short

A packed license checker wants a serial and an activation code. The serial check is a power map in GF(2^64) that can be inverted, the activation check is a discrete log on an anomalous curve that Smart's attack solves, and a correct pair then runs 11 minutes before the flag appears.

A checker that guards itself

The 15 KB binary unpacks its real code at run time, checks for a tracer and decrypts its bytecode with a hash of itself, so a breakpoint corrupts it. The lab made the code writable, cut the tracer check and dumped the plain bytecode.

The serial is a power in a 64 bit field

A small bytecode machine checks the serial. Read as math, it XORs a constant, raises the value to the 13th power in GF(2^64), XORs a second constant and must land on 30cefbec2e4bc466.

Thirteen can be undone

13 shares no factor with 2^64 minus 1, so the power map is one to one, and the exponent 0x7627627627627627 reverses it. Run backwards from the target, the chain gives the serial 8f7db18bd70e193b.

A curve with exactly p points

The activation code is a 100 bit number k, and the checker wants k times G to equal a fixed point P. The lab drove the binary's own point addition, fitted the curve and found that p times G is zero. The curve is anomalous.

The log becomes a division

On an anomalous curve, Smart's attack lifts both points to the p-adic numbers, where multiplying by p turns the discrete log into a plain ratio. It gave k = 2977e17b118de75b3b4e921a4, and k times G matched P.

A right key that looks like a hang

With both values the checker goes silent for about 11 minutes, running 500 million steps of 2048 bit math to derive its flag key. The lab let it finish. The code k printed the flag, its twin k plus p did not.

The insight

Both locks rest on textbook flaws, a power map that inverts and a curve with exactly p points. The slow last step only makes a right key look wrong.

The flag

hiCTF{>o<_C0ngrats_Her3_1s_Y0ur_HI4_Subscript1on_^_^}

Loading