목록Study/MISC (18)
촉촉한초코칩

분석문제 파일은 elf 파일이 주어진다. gdb로 해당 파일을 열어보았다. strncmp에서 두 문자열을 비교하고 다르면 193으로 이동한다. 맞으면 아래 명령어를 실행하여 system을 통해 flag가 출력되는 것 같다. strncmp가 실행되기 전에 break를 걸어서 비교하는 문자열을 확인해야 할 것 같다. 이 방법은 아닌 것 같다. (매번 값이 달라짐) strncmp 취약점에 대해 검색해보았다. str1, str2가 있다고 가정했을 때str1 str1 == str2 → 0 str1 > str2 → 양수이런 값이 나온다. 그리고 strncmp가 나오기 전에 8을 edx에 넣는 것으로 보아, 글자수를 비교하는 값은 8개인 것 같다. 그리고 rsi에는 내가 입력한 값, rax에는 비밀번호가 들어있는 ..

코드 분석//Name: chall.c//Compile: gcc chall.c -o chall -no-pie -fno-stack-protector#include #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}int main(int argc, char *argv[]){ unsigned int a = 0; int b = 0; ..

먼저 Thread Mutex가 무엇인지 찾아보았다.Thread Mutex Mutex는 여러 스레드가 동시에 공유 자원에 접근하는 것을 방지하기 위해 사용되는 동기화 메커니즘 동시에 하나의 스레드만 특정 자원에 접근할 수 있도록 보장한다. 흐름을 살펴보면서 분석해본다. 먼저 CreateMutexA를 통해 mutex를 생성한다. 만약 조건문에서 false가 되면, push eax를 통해 hMutex를 스택에 넣고 ReleaseMutex를 실행한다. 만약 조건문에서 true → true로 이어진다면, Thread를 실행하고, CreateMutexA를 실행한다. 여기서도 ReleaseMutex를 실행한다. Mutex 작동 원리는 다음과 같다. Lock (잠금): 스레드가 공유 자원에 접근하기 전에 뮤텍스를 ..

일단 ssh로 접속했다. ssh dream@host3.dreamhack.games -p 포트번호비밀번호를 몰라서 접속이 안된다. cat으로 파일을 출력해보았다. 제공된 문제 파일을 사용했다. 먼저 파일 종류를 확인했다. file dream(파일명)ssh는 비밀번호 대신 key를 이용하여 서버에 접속한다. https://wiki.kicco.com/space/SYS/312049965/ssh+key%EB%A5%BC+%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC+%EC%9B%90%EA%B2%A9%EC%84%9C%EB%B2%84%EC%97%90+%EB%A1%9C%EA%B7%B8%EC%9D%B8+%ED%95%98%EA%B8%B0https://tjrrb4551.tistory.com/entry/Dr..

파일을 다운받으면 wav파일 두개가 나온다. 문제에서 NOAA 15가 궁금해서 찾아보았다. NOAA 15위성이라고 나온다.. 음성파일을 Audacity 프로그램 사용해서 분석해 보았다. 음성파일 분석Audacity만 봐서는 뭔지 모르겠어서 noaa 15 음성파일이라고 검색했더니 아래 사이트가 나왔다. 음성 파일을 이미지 파일로 변환해서 보기로 했다. WXtoImg 프로그램은 완전 자동화된 APT 및 WEFAX 기상 위성 (WXsat) 디코더라고 한다. 최신 버전을 다운받았는데 exe 파일이 없어서 beta버전으로 다운 받았다. → 참고 : https://wxtoimgrestored.xyz/quick-start-guide/두번째 파일을 이미지화했더니 아래처럼 나왔다.이미지에 여러가지 적용해서 글자가 잘..

코드// Name: chall.c// Compile Option: gcc chall.c -o chall -fno-stack-protector#include #include #include #include #include #include #define FLAG_SIZE 0x45void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}int main(int argc, char *argv[]) { char cm..