일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- The Loard of BOF
- 파이썬
- XSS Game
- Python
- 생활코딩
- CSS
- BOJ
- siss
- lob
- 기계학습
- 숙명여자대학교 정보보안 동아리
- 풀이
- Javascript
- C언어
- 머신러닝
- hackctf
- c++
- c
- 드림핵
- 웹페이지 만들기
- WarGame
- Sookmyung Information Security Study
- HTML
- 숙명여자대학교 정보보안동아리
- PHP 웹페이지 만들기
- 백준
- BOJ Python
- 자료구조 복습
- SWEA
- hackerrank
- Today
- Total
목록전체 글 (346)
혜랑's STORY
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); string x, y; cin >> x >> y; reverse(x.begin(), x.end()); reverse(y.begin(), y.end()); int sum = stoi(x) + stoi(y); string reverse_sum = to_string(sum); reverse(reverse_sum.begin(), reverse_sum.end()); cout
1. 문제 2. 풀이 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { int n; scanf("%d",&n); int flag = 0; char name[100]; for (int i = 0; i < n; i++) { scanf("%s", name); if (strcmp(name, "anj") == 0) { flag = 1; break; } } if (flag) printf("뭐야;"); else printf("뭐야?"); return 0; } 멤버 수를 입력받고 for문을 돌며 멤버 이름을 입력 받는다. 입력받은 멤버의 이름 중 "anj"가 있으면 flag를 1로 바꾸고 for문을 탈출한다. flag가 1이면 "뭐야;"를 출력하고, 아니면..
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 tc; cin >> tc; string x; for (int T = 0; T > x; string reverseX = x; reverse(reverseX.begin(), reverseX.end()); int sum = stoi(x) + stoi(reverseX); string temp = to_string(sum); int flag = 1; for (..
1. 문제 2. 풀이 void bonAppetit(int bill_count, int* bill, int k, int b) { int sum = 0; for(int i=0; i
1주차 C언어 1. 문제 모든 사람이 한 번씩 악수를 한다고 하였을 때 총 몇 번 악수를 하게 되는지 구하시오. 2. 풀이 int handshake(int n) { return n*(n-1)/2; } 악수하는 횟수를 구하는 것은 확률적으로 보았을 때 다음과 같은 수식으로 계산할 수 있다. n(n-1)/2 이는 n명의 학생 중 두 명씩 뽑을 수 있는 경우의 수와 같고(nC2) 이를 수식으로 나타내면 위와 같이 나타낼 수 있게 되는 것이다. 3. 결과
1. checksec 64bit 파일이고 아무런 보호기법도 걸려있지 않다. 2. IDA IDA로 살펴본 결과 start() 함수가 하나 존재했다. 3. 확인해야 할 목록 Libc offset "pop rax; ret" "syscall" "/bin/sh" 명령어가 저장된 영역 Find "/bin/sh" -> 0x41250 Find "pop rax ; ret" -> 0x41018 Find "syscall ; ret" -> 0x41015 4. Exploit from pwn import * #context.log_level = 'debug' binary = "./moving-signals" context.binary = binary #쉘코드 적용 대상 바이너리의 환경 자동 설정 p = process(binary..
SROP는 sigreturn 시스템 콜을 이용하여 레지스터에 원하는 값을 저장할 수 있다. 해당 기법을 이용하여 원하는 시스템 함수를 호출할 수 있다. x86과 x64의 signal & signal handler 동작은 동일하다. Example Code //gcc -g -o sig64 sig.c #include #include struct sigcontext sigcontext; void handle_signal(int signum){ printf("Signal number: %d\n", signum); } int main(){ signal(SIGINT, (void *)handle_signal); while(1) {} return 0; } Debugging handle_signal 함수에 BP를 설정하고..
SROP는 sigreturn 시스템 콜을 이용하여 레지스터에 원하는 값을 저장할 수 있다. 해당 기법을 이용하여 원하는 시스템 함수를 호출할 수 있다. Signal signal은 프로세스에게 이벤트가 발생했음을 알린다. 또한 다른 프로세스에게 시그널을 전송 할 수 있다. 원시적인 형태의 IPC(InterProcess Communication)로 사용 할 수도 있음 자기 자신에게 시그널을 보내는 것도 가능 signal은 일반적으로 커널이 송신하며, 다음과 같은 이벤트 종류가 있다. 하드웨어 예외가 발생한 경우 사용자가 시그널을 발생시키는 터미널 특수 문자 중 하나를 입력한 경우 Interrupt character(Control + c) Suspend character(Control + z) 소프트웨어 이벤..