아랍어 해석불가.....
하나하나 뭐하는건지 주석을 달다가 55 E1...이부분부터 사용되는것만 해석하면서 했다.
00 00 00 00 55 E1 01 00 00 03 0D 0C 55 E2 00 00 00 00 F2 0C 33 BB 00 00 00 00 F2 DD BB 00 DE CC BB 00 00 00 00 01 DD BB 00 AD CC BB 00 00 00 00 01 DD BB 00 C0 CC BB 00 00 00 00 01 DD BB 00 DE CC BB 00 00 00 00 01 DD BB 00 DE CC BB 00 00 00 00 01 DD BB 00 AD CC BB 00 00 00 00 01 DD BB 00 C0 CC BB 00 00 00 00 01 DD BB 00 DE CC BB 00 00 00 00 01 DD BB 00 DE CC BB 00 00 00 00 01 DD BB 00 AD CC BB 00 00 00 00 01 DD BB 00 C0 CC BB 00 00 00 00 01 DD BB 00 DE CC BB 00 00 00 00 01 AA BB 00 00 00 00 F2 33 BB 01 00 00 00 AE AA BB 02 00 00 00 F3 33 BB 03 00 00 00 DA 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 AA BB 00 00 00 00 F4 33 BB 01 00 00 00 AE AA BB 02 00 00 00 F5 33 BB 03 00 00 00 BF 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 AA BB 00 00 00 00 F6 33 BB 01 00 00 00 AC AA BB 02 00 00 00 F7 33 BB 03 00 00 00 D6 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 AA BB 00 00 00 00 F8 33 BB 01 00 00 00 B6 AA BB 02 00 00 00 F9 33 BB 03 00 00 00 EE 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 AA BB 00 00 00 00 FA 33 BB 01 00 00 00 EE AA BB 02 00 00 00 FB 33 BB 03 00 00 00 C9 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 AA BB 00 00 00 00 FC 33 BB 01 00 00 00 F0 AA BB 02 00 00 00 FD 33 BB 03 00 00 00 A3 66 AB 00 01 99 BB 00 00 02 F9 66 AB 02 03 99 BB 00 00 02 F9 55 E1 01 00 00 03 09 04 55 E0 FF 55 E1 01 00 00 03 02 07 46 41 49 4C 45 44 0A 57 49 4E 0A 45 4E 54 45 52 20 50 41 53 53 20 3A 20 EE 00 00 00 00 00
대충 분석한 결과
write("ENTER PASS
read(0x0,input,0xc)
....
//reg[0]=0xf2
//data[reg[0]]=^data[0xde]
//reg[0]+=0x1
//data[reg[0]]^0xad
xor list
0xde
0xad
0xc0
0xde
0xde
0xad
0xc0
0xde
0xde
0xad
0xc0
0xde
for(i=0;i<0xc;i++)
input[i]^=xorlist[i]
cmp list
0xae
0xda
0xae
0xbf
0xac
0xd6
0xb6
0xee
0xee
0xc9
0xf0
0xa3
for(i=0;i<0xc;i++){
if(input[i]!=cmplist[i])
jmp failed;
}
write("WIN");
exit(0xff);
failed:
write("FAILED");