Welcome_REV
50
32비트 elf파일인데 ida로 까보면 입력값 확인하는 함수를 확인할 수 있고, 함수 내부에 strncmp로 비교하게 되는 base64 문자열을 확인할 수 있다. 그대로 가져와서 디코딩하면 플래그가 바로 나온다.
Reversing Me
100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#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);
}
|
cs |
enter[i] ^ (i%2) == serial[i] 이어야한다.
xor연산은 한 번 더 해주면 원래대로 돌아간다.
enter[i] == serial[i] ^ (i%2)
파이썬으로 코드를 짜서 플래그를 얻었다.
1
2
3
4
5
6
|
serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"
flag = ""
for i in range(len(serial)):
flag1 =ord(serial[i]) ^ (i % 2)
flag += chr(flag1)
print(flag)
|
cs |
Handray
100
음..
엥
수상해보이는 부분 공략
string[i] 이랑 array[i]를 더하나봄
Strncmp
150
Keygen
200
Static
250
BabyMIPS
400
xor
'WAR GAME > HackCTF' 카테고리의 다른 글
HackCTF Pwnable [내 버퍼가 흘러넘친다!!!] 풀이 (0) | 2019.08.29 |
---|---|
HackCTF Pwnable [Basic_BOF #2] 풀이 (0) | 2019.08.29 |
HackCTF Pwnable [Basic_BOF #1] 풀이 (0) | 2019.07.24 |
HackCTF Forensics 카테고리 풀이 (0) | 2019.07.20 |
HackCTF Cryptography 카테고리 풀이 (2) | 2019.07.18 |