본문 바로가기

전체 글

(53)
SHCH CTF - BOF3 BOF3번 문제당 바이너리를 다운 받아 실행 시켜보자 이번 문제도 문자열을 입력 받는당 그냥 아무 문자나 넣어보자 이번에도 지난번과 비슷하게 "Your IQ is .... " 머시기 하며 출력이 된당 그럼 이번에도 IDA로 분석을 해보자! 이번에도 거의 비슷하게 v4변수만 덮어주면 된당 이전과 마찬가지로 buf가 ebp-0x50( 80 ) 만큼 할당이 되어있고 v4변수는 ebp-0x10( 16 )위치에 할당되어 있다. 즉 0x50 - 0x10 64개 만큼 buf를 채우고 저 if 문에 참이 되게 값을 넣어주면 된당 그러나 이전 문제와 마찬가지로 int형 4 byte씩 넣어주어야 하기 때문에 16진수로 변환해 리틀 엔디안 방식으로 넣어주면 된다. 저 11332302 를 16진수로 변환해 주면 "0xACEA..
SMCH CTF - BOF2 (EZ) BOF 2번 문제당 바이너리를 함 받아서 실행시켜 보장 1번과 비슷하게 입력을 받는당 입력으로 A를 여러개 넣어보자 흠 입력을 받아 보니 "Hi aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! Your IQ is 0x00000000!" 라는 문자열이 출력되는 것을 보아 내가 입력 받은 값을 그대로 출력해 주는 같다. 그럼 이쯤에서 IDA로 분석을 해보자. 이전 문제랑 상당히 비슷한 거 같다. 버퍼를 ebp에서 0x54(84) 만큼 esp를 빼 할당하고 그중에서 문자열을 입력받는 부분은 총 64바이트임을 알 수 있다. 그리고 if에서 v4와 4277061을 비교 해서 같으면 flag를 얻을 수 있음을 확인 할 수 있는데, 우리가 입력을 줄..
SMCH CTF - BOF1 (EZ) 우선 문제를 보면 왠지 제목이랑 설명부터 BOF 문제인거 같다 바이너리를 받고 file 명령어로 바이너리의 정보를 봐 보장 이 바이너리는 32bit ELF 형식의 바이너리임을 알 수 있다. 자, 그럼 이제 리눅스 환경에서 실행되는 바이너리임을 확인했으니깐 직접 실행을 시켜 보자 흠 입력을 받아보니 이상한 문자랑 함께 "Your IQ is 0x00000000!"이라는 문자열이 출력되는 것을 볼 수 있다 그럼 이제 본격적으로 IDA로 분석을 해보자 IDA hex ray로 main 함수를 까 보았다. 코드를 분석해보자면 printf와 puts함수로 문자열 3개를 출력하는 것을 확인할 수 있다 그다음 read 함수로 buf에 최대 0x44개(68개) 만큼 입력을 받을 수 있는 것을 확인할 있고, 다음으로 v4변..
C++ STL 모음 C++로 프로그램을 짤 때 유용한 STL들을 정리해 본당 ( 계속해서 추가해나갈 예정 ) STL( Standard Template Library)에는 STACK, QUEUE와 같은 자료구조나 여러 알고리즘들이 들어가 있어 프로그램을 짤 때나 알고리즘 대회에서도 유용하게 사용된다. : 맨 처음에 들어간 데이터가 맨 마지막에 나오는 자료구조 생성 헤더파일 : #include stack data : int 형 데이터를 담을 수 있는 data라는 이름의 스택 생성 data.push(1) : 스택 맨 뒤에 1을 삽입 data.pop() : 스택 맨 뒤에서 데이터 하나를 삭제 data.top() : 스택 맨 뒤에 있는 데이터를 반환 data.size() : 스택에 들어가 있는 데이터의 개수를 반환..
backjoon - 1463 번 [ 1로 만들기 ] 링크 : https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제는 다음과 같다. 흠 우선 문제 조건에서 보듯이 사용할 수 있는 연산은 X%2가 0일 때 X/2, X%3가 0일때 X/3 일때 그리고 X-1이 있다. 이 문제를 풀기 위해서 접근하는 방식은 배열의 크기가 10의 6승만큼 주어지고, 정수 X가 주어지면(X>1일 때, 1은 그냥 몇 번만에 구할 것도 없이 자체 1 이니깐 0) 두 번째 index부터 시작해서(기본의 배열의 0번째 인덱스를 첫 번째 인덱스라고 가정)에서 부터 시 작하여 위에 연산 3개를 활용하여 각각 현재 index i%3==0이 성립할 ..