목록Study/MISC (17)
촉촉한초코칩
코드 분석//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..
코드//Name: chall.c//Compile: gcc chall.c -o chall -no-pie -fno-stack-protector#include #include #include #include int main(int argc, char *argv[]){ if(argc == 2){ char filename[10]; char cmd[20]; int ruid = 0; int euid = 0; memcpy(filename, argv[1], sizeof(filename)); snprintf(cmd, 19, "cat %s", filen..