일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 8086CPU레지스터
- 밑바닥부터시작하는딥러닝
- 알고리즘
- 정보보안
- 버퍼오버플로우
- C언어알고리즘
- 딥러닝
- 신경망
- C언어 알고리즘
- 신경망파이썬
- c언어
- 신경망구현
- BOF
- 활성화함수파이썬
- 백준
- 머신러닝
- 파이썬신경망
- 인공지능
- 스트림암호
- C알고리즘
- 백준알고리즘
- BOJ
- 달고나bof
- 항등함수
- 보안
- 소프트맥스함수
- 파이썬
- FTZlevel10
- 딥러닝파이썬
- 신경망 학습
- Today
- Total
HeeJ's
Strncmp :: HackCTF/Reversing 본문
Strncmp라는 파일을 다운받아 기드라로 열어
main함수를 찾아 주었다.
main 함수를 보면 변수들을 선언하고, 값을 hex로 넣어주고,
scanf로 값을 받아 strcmp_함수로 값을 비교해
일치하면 Good game
일치하지 않으면 Always dig deeper가 뜨는 것 같다.
그래서 strcmp_ 함수를 더블 클릭 해보면
입력되는 parameter 값이 char 형인걸 보아
hex값으로 입력되었던 값을 ASCII코드로 변환해주어야 하는 것 같다.
그리고 그 입력된 값들을 일일이 key 값과 XOR연산 하면서 일치하는지 확인하는 것 같다.
key 값은 무엇일까?
key 변수를 더블 클릭 해보면
strcmp_함수와 check함수에서도 나오는 걸 확인하고,
check 함수를 찾아 들어가봤다.
이 함수에서, key 값을 나타내는 방정식을 찾을 수 있었다.
이 hex 값들을 모두 10진수로 바꿔주면
(key - 14) * key = -49
이 방정식에서 key=7임을 알 수 있었다.
이제 이 main에 있는 변수들과 key 값을 XOR 연산 해주어 flag를 찾아주면 된다.
local_38 = 0x4f; //O
local_37 = 0x66; //f
local_36 = 100; //d
local_35 = 0x6c; //l
local_34 = 0x44; //D
local_33 = 0x53; //S
local_32 = 0x41; //A
local_31 = 0x7c; //|
local_30 = 0x33; //3
local_2f = 0x74; //t
local_2e = 0x58; //X
local_2d = 0x62; //b
local_2c = 0x33; //3
local_2b = 0x32; //2
local_2a = 0x7e; //~
local_29 = 0x58; //X
local_28 = 0x33; //3
local_27 = 0x74; //t
local_26 = 0x58; //X
local_25 = 0x40; //@
local_24 = 0x73; //s
local_23 = 0x58; //X
local_22 = 0x60; //'
local_21 = 0x34; //4
local_20 = 0x74; //t
local_1f = 0x58; //X
local_1e = 0x74; //t
local_1d = 0x7a; //z
"OfdlDSA|3tXb32~X3tX@sX'4tXtz"
코드
#include <stdio.h>
int main(){
char* mystr = "OfdlDSA|3tXb32~X3tX@sX'4tXtz";
for(int i=0;i<28;i++){
printf("%c",*(mystr+i)^0x07);
}
return 0;
}
이렇게 해서 flag를 찾을 수 있었다.
짠!
'<CTF> > <HackCTF>' 카테고리의 다른 글
So easy? :: HackCTF/Forensics (0) | 2020.08.06 |
---|---|
Question? :: HackCTF/Forensics (0) | 2020.08.06 |
Reversing Me :: HackCTF/Reversing (0) | 2020.05.29 |
babyMIPS :: HackCTF/Reversing (0) | 2020.05.29 |
Welcome_REV :: HackCTF/Reversing (0) | 2020.05.15 |