본문 바로가기

전체 글

(171)
제 12회 정보보호올림피아드 본선후기 제 12회 정보보호올림피아드에 참가하는건 이번이 처음이였고 운좋게 예선문제를 몇개 풀어 본선에 진출할 수 있었습니다.우선 본선 장소는 국회의원회관에서 진행하였고 ip 설정을 한 후에 대회를 5시간? 동안 진행하였습니다.본선 진출자는 총 21명 이였고 문제는 reversing, pwnable, network, misc, 아두이노 등의 분야가 나왔고쉬웠던 Q5 문제와 Q10 문제를 풀고 운좋게 순위권안에 들어 동상을 수상할 수 있었습니다. 제 12회 중고생 정보보호올림피아드 기사 - 데일리시큐 Q10 번 문제 같은 경우는 구글링 문제였는데 1. 로버타 윔리엄스는 시에라 엔터테인먼트의 사장이자 게임개발자이며 게임업계에서 가장 유명한 여성일 것이다. 2. 그무렵 두 사람은 로버타의 동화에 기반을 둔 게임인 마법..
제 12회 정보보호올림피아드 예선풀이 제 12회 정보보호올림피아드 예선풀이 입니다.정보보호올림피아드는 처음으로 이번년도에 참가하게 되었는데 예선 문제 중에 Q2, Q5, Q10 번 문제를 풀어서 운좋게 본선에 올라 갈 수 있었습니다. 먼저 Q2 문제는 ssh에 접속하여 elf파일을 다운받아 IDA로 보면서 똑같이 코딩해보았습니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include #include #include int main(){ int i, j, ii,n; char s1[14] = "12tholympiad"; int seed = 0; for (i = 0; s1[i]; i++) seed += i..
[C] 파일 하위 디렉토리 까지 탐색 코드 원래 C언어로 구현한 하위 디렉토리 탐색 기능은 구글링을 통해 찾으려 했으나 현재 디렉토리 파일 목록 출력 예시코드만 무지하게 많았고 정작 윈도우 서브 디렉토리 탐색 소스는 잘 보이지 않았다. 그래서 재귀를 이용해 하위 디렉토리 까지 볼수 있도록 C: 경로를 예시로 코드를 짰다. [C: 경로 하위 디렉토리 까지 탐색코드] 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 #pragma warning ( disable : 4996 ) #incl..
[C] 파일 확장자 변경 예시 처음에 배열에 문자열을 바꿔주고 대입하여 rename 함수를 통해 확장자를 변경하려 했으나 이상하게 파일 PATH가 절대경로 로 지정이 되어있어야 rename이 적용이 되었다.그래서 _splitpath 를 통해 파일 path 를 분리하고 sprintf 를 통해 확장자를 변경하여 rename을 해주었다.[파일 확장자 변경 예시]123456789101112131415161718192021222324252627282930#pragma warning ( disable : 4996 )#include #include #include #include void ChangeExt(char *path, char *newext){ char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fna..
[C] 파일 or 디렉토리 식별 [파일 디렉토리 식별 예시 코드]123456789101112131415161718192021222324252627282930313233343536373839#pragma warning ( disable : 4996 )#include #include int isFileOrDir(char* s); int main(void) { char* filename = "C:\\test"; int result = isFileOrDir(filename); if (result == 1) puts("파일입니다."); else if (result == 0) puts("디렉토리입니다."); else //result == -1 puts("그런 파일 또는 디렉토리는 없습니다."); return 0;} int isFileOrDir(c..
ASIS CTF Final 2017 Write up (ABC Reversing challenge) ASIS CTF Final 2017 write up ABC Reversing Challenge ASIS CTF에 나왔던 ABC라는 리버스 엔지니어링 문제입니다. 문제 파일: https://github.com/Gyeongje/CTF/blob/master/ASIS%20CTF%20Finals%202017/ABC/abc_b96c97d1229d3275cc9ee51f6b2b3d7c5be36446 처음에 문제를 열고 헤더를 보면 XZ 파일인걸 알수있습니다XZ 확장자로 변경 후 파일을 꺼내 보면 ELF 파일 같은데 헤더가 이상해보입니다. 밑으로 내려보니 역시나 ELF 파일 헤더가 보입니다. 파일 data를 자르고 elf 파일로 변환 후 실행시켜보았습니다. argv 인자를 통해 연산을 진행하는거 같습니다.IDA로 열어보..
YISF 2017 본선 풀이(x) YISF 2017 본선에 나왔던 리버싱 문제 reversing_table-based-aes 입니다.문제파일 https://github.com/Gyeongje/CTF/tree/master/YISF%202017/Reversing-final 해당 파일은 ELF파일이며 암호화된 16자리 문자열을 복호화하면 플래그가 나올것으로 보이는 문제입니다. 메인함수를 보면 aes 128과 흡사한 암호화내용이 보입니다. 일단 메인함수에 있는 암호화 내용과 sub_4006A6, sub_4006A6 함수내용에 있는 암호화로 이루어져 있습니다.암호화는 보통 byte 배열에 있는 값으로 이루어지는데 최대한 비슷하게 프로그램을 짜보았습니다. 1234567891011121314151617181920212223242526272829303..
YISF 2017 write up 2017 청소년 정보보호 페스티벌 예선 대회 풀이 보고서 YISF 2017 write up + Reversing 100 https://github.com/Gyeongje/CTF/tree/master/YISF%202017/Reversing100 그 당시에 정신이 없어서 못풀었던 리버싱 문제 풀이입니다. 실행파일을 간단히 설명하자면 같은 디렉토리 공간안에 "encoder" 이름의 파일이 아닌 다른 파일의 파일텍스트를 41크기만큼 긁어옵니다. (원래 파일텍스트 데이터를 긁어온 변수는 s지만 flag로 추측이 되서 이름을 s에서 flag로 바꿔주었습니다.)후에 flag배열과 앞뒤에 붙어있는 더미문자열을 연산시키는데 연산의 핵심은 *v18 ^= *v19 *v19 = v2 - 10 xor과 -10 입니다 이부분만 ..