Reversing/CTF
[HackCTF] Reversing Me
L3m0n S0ju
2021. 9. 10. 22:11
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char *serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}";
char enter[54];
printf("키를 입력하시게 : ");
scanf("%s", enter);
if (strlen(enter) == strlen(serial))
{
for (i = 0; i < strlen(serial) && (enter[i] ^ (i % 2)) == serial[i]; i++);
if (i - 1 == strlen(enter)) printf("정답일세!\n");
}
else
printf("그건 아닐세...\n");
exit(0);
}
문제 코드는 위와 같다. 플래그를 획득하기 위한 조건은 for문에서 루프를 도는동안 if문 조건을 만족시키면 플래그를 획득할 수 있다. 아래 코드를 실행하면 플래그를 획득할 수 있다.
serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"
for i in range(len(serial)):
temp = ord(serial[i])^(i % 2)
print(chr(temp),end='')