일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #hacking
- #picoCTF2018
- 카이사르
- 시스템해킹
- 리버싱
- 번역
- picoCTF
- dreamhack
- Aleph One
- KOISTUDY
- picoCTF2018
- cryptography
- writeup
- Smashing The Stack For Fun And Profit
- 버퍼오버플로우
- general skills
- 시스템
- grep
- Protostar
- 해설
- reversing
- 해킹 공부
- forensics
- write up
- 스택
- WEB
- Hxd
- 리눅스
- CTF
- 정답
- Today
- Total
목록분류 전체보기 (94)
Security || AI
#include int maze[10][10]={0}; int main() { int x = 1, y = 1; for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { scanf("%d", &maze[i][j]); } } while(maze[x][y] != 2) { maze[x][y] = 9; if(maze[x][y+1] != 1) ++y; else if(maze[x+1][y] != 1) ++x; else break; } maze[x][y] = 9; for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { printf("%d ", maze[i][j]); } printf("\n"); } }
#include int map[101][101] = {0}; int main() { int h, w, n, l, d, x, y; scanf("%d %d", &h, &w); scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d %d %d %d", &l, &d, &x, &y); for(int i = 0; i < l; i++) { if(d == 0) map[x-1][y-1+i] = 1; else map[x+i-1][y-1] = 1; } } for(int i = 0; i < h; i++) { for(int j = 0; j < w; j++) { printf("%d ", map[i][j]); } printf("\n"); } }
#include int map[19][19] = {}; int main() { int put, x, y; for(int i = 0; i < 19; i++) { for(int j = 0; j < 19; j++) { scanf("%d ", &map[i][j]); } } scanf("%d", &put); for(int i = 0; i < put; i++) { scanf("%d %d", &x, &y); for(int j = 0; j < 19; j++) { if(map[x-1][j] == 0) map[x-1][j] = 1; else map[x-1][j] = 0; } for(int j = 0; j < 19; j++) { if(map[j][y-1] == 0) map[j][y-1] = 1; else map[j][y-1..
#include int map[19][19] = {0}; int main() { int put, x, y; scanf("%d", &put); for(int i = 0; i < put; i++) { scanf("%d %d", &x, &y); map[x-1][y-1] = 1; } for(int i = 0; i < 19; i++) { for(int j = 0; j < 19; j++) { printf("%d ", map[i][j]); } printf("\n"); } }
번역한 내용들이 있는 PDF입니다.
Small Buffer Overflows작은 버퍼오버플로우~~~~~~~~~~~~~~~~~~ 버퍼오버플로우하려는 버퍼가 너무 작아 쉘코드를 넣기에도 맞지 않는 경우가 생길 것이고, 우리의 코드의 주소를 덮어쓰는 것이 아닌 명령들로 반환 주소들을 덮어쓸 수 있거나, 문자열 앞에 채우는NOP들의 수가 너무 적어 그들의 주소를 맞추기 어려울 때가 있다. 이런 프로그램들로부터 쉘을 얻으려면 다른 방법을 사용해야 한다. 이 특별한 접근은 프로그램의 환경 변수에 접근할 때만 작동할 수 있다. 우리가 할 것은 우리의 쉘코드를 환경 변수에 위치시키고, 버퍼를 메모리에 있는 변수의 주소로 오버플로우하는 것이다. 이 방법은 쉘 코드를 포함하는 환경 변수를 원하는 크기로 만들 수 있으므로 익스플로잇 방법의 변경도 증가시키다...