[Heap Exploit] UAF(Use After Free)기법 이론설명 포스팅 썸네일 이미지

SYSTEM HACKING/PWNABLE&REVERSING

[Heap Exploit] UAF(Use After Free)기법 이론설명

Heap Exploit UAF(Use After Free)기법 이론설명 당분간은 Heap의 취약점 분석을 할 것인데요, 오늘은 UAF(Use After Free)기법입니다. UAF기법을 들어가기 전에, Heap구조가 무엇인지 알아야겠죠? 모른다면, 공부를 조금 하고 다시 돌아오는 것으로 합시다. 아무튼 다들 Heap구조를 어느정도 알고 있다는 전제 하에 진행을 하면, Heap구조는 컴퓨터 안의 메모리 구조 중 사용자가 임의로 사용하는 메모리 공간으로, 대표적으로 malloc함수를 이용해 선언해주고, free함수를 통해 해제를 해준다는 것을 알 수 있습니다. 본격적으로 설명해봅시다. 1. First-Fit 알고리즘 UAF에 대해서 본격적으로 들어가기 전에, First-Fit 알고리즘에 대해서 이해할 필요가..

2019.07.29 게시됨

백준 10699번: 오늘 날짜 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 10699번: 오늘 날짜 풀이(Python)

오늘 날짜 스페셜 저지 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 6038 3780 3458 65.817% 문제 서울의 오늘 날짜를 출력하는 프로그램을 작성하시오. 입력 입력은 없다. 출력 서울의 오늘 날짜를 "YYYY-MM-DD" 형식으로 출력한다. 예제 입력 1 복사 예제 출력 1 복사 2015-01-24 물론 그냥 저 형식으로 오늘 날짜를 print해버리면 되지만, 더 제대로된 방식으로 알아보자. import datetime print(str(datetime.datetime.now())[:10]) 물론 그렇게 알아본 코드도 개짧다. 가볍게 설명을 해보자면 datetime, 즉 우리가 필요한 함수를 들고오고 그것을 string으로 print시킬건데 10글자만 출력시킨것이다.

2019.06.13 게시됨

백준 11022번: A + B - 8풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 11022번: A + B - 8풀이(Python)

A+B - 8 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 9976 7258 6744 74.306% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. 예제 입력 1 복사 5 1 1 2 3 3 4 9 8 5 2 예제 출력 1 복사 Case #1: 1 + 1 = 2 Case #2: 2 + 3 = 5 Case #3: 3 + 4 = 7 Case #4: 9 ..

2019.06.13 게시됨

백준 11021번: A + B - 7풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 11021번: A + B - 7풀이(Python)

t = int(input()) for i in range(t): a, b = map(int, input().split()) print('Case #'+int(i+1)+': '+int(a+b)) 이렇게 하면 런타임 에러가 일어난다. 이 이유는 input함수가 시간을 너무 많이 잡아먹기 때문인데, 이를 해결하기 위해 sys.stdin.readline함수를 이용하였다. 밑의 코드는 sys.stdin.realine이 너무 길어서 read함수라는 다른 함수를 따로 선언해주고 코드를 다시 작성한 것이다. import sys read = sys.stdin.readline t = int(read()) for i in range(t): ab = [int(x) for x in read().split()] print("Ca..

2019.06.13 게시됨

백준 2163번: 초콜릿 자르기 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 2163번: 초콜릿 자르기 풀이(Python)

초콜릿 자르기 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 10798 7589 6540 71.679% 문제 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿을 친구들과 나눠 먹기로 했다. 이를 위해서 정화는 초콜릿을 계속 쪼개서 총 N×M개의 조각으로 쪼개려고 한다. 초콜릿을 쪼갤 때에는 초콜릿 조각을 하나 들고, 적당한 위치에서 초콜릿을 쪼갠다. 초콜릿을 쪼갤 때에는 금이 가 있는 위치에서만 쪼갤 수 있다. 이와 같이 초콜릿을 쪼개면 초콜릿은 두 개의 조각으로 나눠지게 된다. 이제 다시 이 중에서 초콜릿 조각을 하나 들고, 쪼개는 과정을..

2019.06.13 게시됨

백준 3046번: R2 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 3046번: R2 풀이(Python)

R2 성공 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 6939 5822 5374 85.492% 문제 두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 이 숫자를 받아 적는다. 그리고 나서 기쁜 마음으로 1년동안 이 숫자를 외우면서 산다. 상근이는 R1과 R2를 엄청난 고민 끝에 정했다. 작년에는 R1과 R2를 까먹어서 아무 숫자나 정해서 주었기 때문에, 올해는 까먹지 않기 위해서 평균 S도 같이 기억하려고 한다. 오늘은 정인이 생일이다. 5분 후에 상근이는 생일 선물로 두 숫자 R1과 R2를 말해주어야 하지만, ..

2019.06.13 게시됨

백준 2558번: A + B -2 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 2558번: A + B -2 풀이(Python)

A+B - 2 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 38252 27925 25703 75.426% 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 3 a = int(input()) b = int(input()) print(a+b)

2019.06.12 게시됨

백준 10430번: 나머지 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 10430번: 나머지 풀이(Python)

나머지 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 49726 29919 27587 61.585% 문제 (A+B)%C는 (A%C + B%C)%C 와 같을까? (A×B)%C는 (A%C × B%C)%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 (A%C + B%C)%C, 셋째 줄에 (A×B)%C, 넷째 줄에 (A%C × B%C)%C를 출력한다. 예제 입력 1 복사 5 8 4 예제 출력 1 복사 1 1 0 0 a, b, c = map(int, input().split()) print((a+b)%..

2019.06.12 게시됨

백준 10869번: 사칙연산 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 10869번: 사칙연산 풀이(Python)

사칙연산 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 58040 32684 29861 58.297% 문제 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 입력 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000) 출력 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다. 예제 입력 1 복사 7 3 예제 출력 1 복사 10 4 21 2 1 a, b = map(int, input(). split()) print(a+b) print(a-b) print(a*b) print(int(a/b)) print(a%b) map이란 함수는 참 좋아요ㅎ

2019.06.12 게시됨

백준 1008번: A/B 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 1008번: A/B 풀이(Python)

A/B 성공스페셜 저지 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 128 MB 110958 32627 29093 34.029% 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다. 예제 입력 1 복사 1 3 예제 출력 1 복사 0.33333333333333333333333333333333 예제 입력 2 복사 4 5 예제 출력 2 복사 0.8 a, b = map(int, input(). split()) print(a/b)

2019.06.12 게시됨

백준 10998번: A x B 풀이(Python) 포스팅 썸네일 이미지

Coding_Algorithm/백준 풀이

백준 10998번: A x B 풀이(Python)

A×B 성공 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 44681 33784 31661 76.758% 문제 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A×B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 2 예제 입력 2 복사 3 4 예제 출력 2 복사 12 a, b=map(int, input(). split()) print(a * b)

2019.06.12 게시됨