HACKCTF - Strncmp
2020. 8. 27. 07:40ㆍCTF's Write-up
해당 문제를 ida로 까보면
변수가 굉장히 많은것을보아 xor연산을 할 것으로 보인다.
자세히 보면 65번 줄의 strcmp_ 가 우리가 아는 strcmp가 아니라 _ 가 붙은 재정의한 함수임으로 확인이 필요하다.
8~9번째줄은 무슨의미인지 모르겠고, key랑 xor하는 것을 보니 key를 찾아야겠다.
보면 public이므로, 어디에선가 쓰이는데 마침 함수명쪽에 check라는 의심되는 함수가 있어서 이를 확인해보았다.
여기를 보면 v3에 대한 이차방정식이 있는데 7을 넣으면 참이되니 key를 7로 알 수 있다.
string을 구했고, xor할 key를 모두 구했으니 복호화만 하면 된다.
코드는 아래와 같다.
1
2
3
4
5
6
7
|
arr = [0x4f, 0x66, 0x64, 0x6c, 0x44, 0x53, 0x41, 0x7c, 0x33, 0x74, 0x58, 0x62, 0x33, 0x32, 0x7e, 0x58, 0x33, 0x74, 0x58, 0x40, 0x73, 0x58, 0x60, 0x34, 0x74, 0x58, 0x74, 0x7a]
result = ""
for i in arr :
result += chr(i^7)
print(result)
|
cs |
실행하면 flag를 획득할 수 있다.
(grin)
'CTF's Write-up' 카테고리의 다른 글
[보호]HACKCTF - Cookie (0) | 2020.09.01 |
---|---|
HACKCTF - Yes or no (0) | 2020.08.27 |
[보호]HACKCTF - Classic Cipher -4 (0) | 2020.08.26 |
DreamHack - environ (0) | 2020.08.25 |
DreamHack - basic_exploitation_001 (0) | 2020.08.24 |