CRACK Solution

Length Lock

CRACK strlen + direct compare

In-game screenshot of Length Lock
In-game view
FamilyCRACK Graph0.069 DifficultyTutorial Ring01 IDt02_length_lock

Prerequisites

CEILING

Unlocks

REPEATER

Accepted input FIVE5
Techniquestrlen + direct compare Rulenonzero SampleFIVE5

Walkthrough

Recover the accepted input below, then submit it to the CRACK verifier.

Verifier Listing
; t02_length_lock: a length gate guards the character checks. The input must
; be exactly 5 bytes long; only then are the five stored bytes compared.
; Technique: strlen + direct compare. r0 = 1 on accept. Accept rule: nonzero.
;
; FIVE5 = 0x46 0x49 0x56 0x45 0x35.

        len   r1            ; r1 = input length (the strlen result)
        cmp   r1, 5
        jnz   bad           ; length guard first, before any character check

        mov   r7, 0
        ldb   r0, [r7]
        cmp   r0, 0x46      ; 'F'
        jnz   bad
        inc   r7
        ldb   r0, [r7]
        cmp   r0, 0x49      ; 'I'
        jnz   bad
        inc   r7
        ldb   r0, [r7]
        cmp   r0, 0x56      ; 'V'
        jnz   bad
        inc   r7
        ldb   r0, [r7]
        cmp   r0, 0x45      ; 'E'
        jnz   bad
        inc   r7
        ldb   r0, [r7]
        cmp   r0, 0x35      ; '5'
        jnz   bad

        mov   r0, 1
        ret
bad:    mov   r0, 0
        ret