Ce niveau est très similaire à Whitehorse. La seule différence est qu'ici la fonction strcpy est utilisée, ce qui interdit l'utilisation de null byte dans l'entrée utilisateur.
On reprend le shellcode précédent en le modifiant légèrement :
nop nop xor r15, r15 mov.b #0x7F, r15 push r15 call #0x454C
Le XOR, MOV, PUSH permet de ne pas utiliser de null byte. Un problème se pose quand même, toutes les instructions se codent sur 4 octets. Si on regarde de plus prêt comment est codé le mov.b #0x7f, rf15, on se rend compte que celle ci contient un null byte : \x7f\x40\x7f\x00. Comme on a bien spécifié qu'un seule octet doit être transféré, il est possible de tricher en modifiant le null byte par une valeur quelconque qui sera ignorée.
Le code réellement assemblé donne : 034303430fef7f407f000f12b0124c45. Et en trichant : 034303430fef7f407f420f12b0124c45.
On ajoute l'adresse du shellcode dans la stack à la fin, et le tour est joué. 034303430fef7f407f420f12b0124c45f043 permet de valider le niveau.
Le principe est exactement le même que sur Whitehorse, la seule différence est l'adresse de la fonction INT.
414141414141414141414141414141414C453C447F permet de valider le niveau.