일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 풀이
- Python
- 백준
- SWEA
- 드림핵
- siss
- 기계학습
- c++
- 숙명여자대학교 정보보안 동아리
- BOJ
- 생활코딩
- Sookmyung Information Security Study
- PHP 웹페이지 만들기
- WarGame
- XSS Game
- CSS
- C언어
- The Loard of BOF
- 숙명여자대학교 정보보안동아리
- hackctf
- 머신러닝
- BOJ Python
- HTML
- c
- 웹페이지 만들기
- hackerrank
- Javascript
- 파이썬
- 자료구조 복습
- lob
- Today
- Total
목록분류 전체보기 (346)
혜랑's STORY
2주차 과제 1. 문제 2. 풀이 int birthdayCakeCandles(int candles_count, int* candles) { int max = 0, cnt = 0; for(int i=1; i
2주차 C언어 1. 문제 2. 풀이 int divisors(int n) { int cnt = 0; for(int i=1; i
1. checksec 64bit 파일이고 Patial RELRO와 NX가 걸려있다. 주어진 바이너리 파일 외에 libc.so.6 파일이 있는 것을 보아 libc.so.6 파일을 사용하여 문제를 푸는 것 같다. 2. IDA read() 함수에서 buf의 크기보다 더 길게 입력받을 수 있기 때문에 bof가 발생한다. 3. Debugging 먼저 프로그램을 실행시켜보았다. 그냥 입력을 받고 종료된다. file 명령어를 통해 확인해 본 결과 stripped된 파일이라는 것을 알 수 있었다. stripped 되었다는 것은 실행에 필요한 부분을 제외한 다른 부분이 없는 것이고 사용자 정의 함수들이 sub_* 이런식으로 되어 있다고 한다. 그래서 심볼도 존재하지 않는다. 출력 함수가 없기 때문에 leak은 불가능하고..
1. checksec 32bit 파일이고 NX와 Partial RELRO가 걸려있다. 지난주에 배웠던 SROP를 사용하여 문제를 풀어보자. 2. IDA main() 함수 look_at_me() 함수 IDA를 통해 바이너리를 열어 보았는데 함수의 개수가 923개로 매우 많았다. 왜 그런지 리눅스 file 명령어를 통해 알아보자. statically linked 파일은 필요한 모든 함수가 바이너리 안에 모두 내장되어 있다. 따라서 파일의 크기는 크지만 함수 주소를 쉽게 구할 수 있다. 그러나 system 함수는 존재하지 않기 때문에 다른 방법을 통해 "/bin/sh"를 실행시켜야 한다. [새로운 개념 : mprotect] mprotect 함수는 NX bit같은 특정 메모리 실행 권한을 변경할 수 있는 함수이..
1. 문제 2. 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t, n, temp; cin >> t; int result[100001]; for (int tc = 0; tc > n; temp = n; memset(result, 0, sizeof(result)); for (int i = 2; i
참고한 블로그 : https://hooongs.tistory.com/334 1. 문제 2. 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); bool result = false; long n; int l, x; cin >> n >> l; for (int i = l; i < 101; i++) { x = n - (i * (i + 1) / 2); //사실상 이 곳의 x는 LX라고 생각하여도 무방함. if (x % i == 0) { x = x / i; if (x..
1. 문제 2. 풀이 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); bool isPrime[1001]; memset(isPrime, true, sizeof(isPrime)); // 에라토스테네스의 체 이용하여 1000까지의 소수 구하기 isPrime[0] = false; isPrime[1] = false; for (int i = 2; i num; while(num--){ cin >> input; if(isPrime[input]) result++; } cout
1. 문제 2. 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a[10], b[10], a_win = 0, b_win = 0; for (int i = 0; i b[i]) ++a_win; else if (a[i] < b[i]) ++..