일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 투 포인터
- syscall
- 스위핑 알고리즘
- 이진 탐색
- ROP
- 문자열 처리
- 이분 탐색
- 브루트 포스
- 수학
- off by one
- 연결리스트
- 동적 계획법
- 포맷스트링버그
- heap
- fsb
- OOB
- 스택
- 이진트리
- BOF
- DFS
- BFS
- 완전 탐색
- 다이나믹 프로그래밍
- House of Orange
- 백트래킹
- 에라토스테네스의 체
- 분할 정복
- tcache
- RTL
- 큐
- Today
- Total
목록study (11)
SDJ( 수돈재 아님 ㅎ )
이 글에서는 Python3에서 collections.deque를 통해 스택과 큐를 구현하는 방법에 대해 서술하고자 한다. collections.deque의 경우 '덱' 자료구조를 사용하기 위해 쓸 수도 있지만, 사실 덱 자체가 '스택'과 '큐'의 형태로 사용할 수 있기 때문에 스택이나 큐를 사용하고싶을 때 이것을 사용하면 된다. 기본적인 사용법은 다음과 같다. >>> import collections >>> S = collections.deque() >>> S deque([]) 이런식으로 덱 하나를 만들어 주면 이것을 가지고 스택, 큐 처럼 사용이 가능해진다. collections.deque()에서 제공하는 기본적인 함수는 아래와 같다 append(x) - x를 deque 오른쪽에 추가한다. append..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
이전(예전) 글에서 RTL에 대해 배웠다. 몇 달전 쓰다가 만 글인데 새롭게 고쳐쓰려고 다시 갈아엎었다 RTL chaining을 위한 사전 지식. 2020/02/04 - [study/pwnable] - [Exploitation Technique] RTL 기법 ( Return-to-libc ) 이전 RTL 글에서 나는 쉘을 따고나서 함수의 끝이 yyyy나 YYYYYYYY에서 끝나는 것을 알았고, 이 글에서 쓸 내용은 이제 그것을 가지고 무엇을 어떻게 할지에 대해 짱구를 굴리는 글이다. 글은 RTL chaining 32 bit RTL 64 bit RTL 로 구성되어있다. 이 글을 읽고 나면... RTLchaining과 유사하지만 더 재밌는 ROP(Return Oriented Programming)를 보러가자..
정수론 수업을 듣다가 페르마 수에 대한 내용이 나왔는데 그냥 궁금해서 찾아봤다 대학교가 전체싸강으로 결정나서.. 공부하는데 나태해질까봐 글이라도 적어서 기억해보자는 느낌으로다가... 먼저 페르마 수란 $F_n = 2^{2^n} + 1$인 수를 의미한다. 페르마는 이 $F_n$은 모두 소수라고 어림짐작했는데 실제로는 $0\leq n\leq 4$인 $n$에 대해서는 소수가 맞지만 $n = 5$인 $F_5 = 2^{2^5} + 1 = 4294967297 = 641 \times 6700417$로 인수분해가 가능한 합성수라는것이 밝혀졌다. 페르마 수의 몇가지 기본 속성 속성 1) $1 \leq n$ 에 대해 $F_n = (F_{n-1}-1)^2+1$이 성립한다. 증명 $ \begin{align*} (F_{n-1}..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
시스템 Exploitation 기법중 RTL에 관한 글이다. RTL ( Return-to-libc ) 기법 32 bit RTL 64 bit RTL 로 구성되어있다. 이 글을 읽고 나면... RTL을 연속적으로 트리거하는 RTL chaining에 대해 알아보자. 2020/05/28 - [study/pwnable] - [Exploitation Technique] RTL chaining RTL ( Return-to-libc ) ? 먼저 linux 바이너리에는 Dynamic Linking을 했ㅇ르 시 라이브러리 공유를 위해 코드영역이나 데이터영역에 libc가 로드되어 있다. RTL이란 이렇게 남아있는 libc를 가지고 NX를 우회하는 기법을 의미하는데, NX는 stack과 같은 부분에 execute 권한을 지워..
포너블을 하면서 새로운 기법(?)을 찾아서 글로 적어두려 한다. 사실 기법이라기 보다는 그냥 잡기술이 맞는거 같은데 원래 scanf()의 서식문자에 맞지 않는 문자를 넣으면 버퍼링이 걸려서 바로 나간다는 점은 알고 있었는데, 이번과 같은 경우는 처음 보았기 때문에 더욱 놀라웠다. 이번 기술에 너무 감명(?) 받아 예시를 들고자 하여 바이너리를 만들었다. IDA로 바이너리를 까보면 main과 win 함수가 주어진다. 간단히 보자면 n을 크게 입력하면 반복문 입력을 하면서 bof가 발생하는 것을 볼 수 있다. 그래서 처음 win의 함수 주소를 bof를 통해 ret에 덮으면 끝나는 문제이다. 하지만 문제점은 Canary가 존재한다. bof가 있다 하더라도 canary를 우회하지 않으면 의미가 없다. 그래서 이..
현재 본인은 Pwn을 공부하기 위한 Ubuntu 16.04 TLS가 설치되어 있다. 이 Ubuntu 16.04를 서버로 돌리고 php를 공부할 수 있게 AMP를 설치하고자 한다. 설치는 아래 주소를 보고 진행했다. https://webnautes.tistory.com/1028 Ubuntu 16.04에 LAMP ( Apache2, MySQL , PHP7) 설치하는 방법 Apache2 웹서버, MySQL 데이터베이스 서버, PHP를 Ubuntu에 설치하는 과정을 소개합니다. LAMP는 운영 체제와 오픈 소스 소프트웨어 스택의 조합으로 Linux, Apache, MySQL, PHP의 첫글자만 가지고 만든 약어입니.. webnautes.tistory.com sudo apt update && sudo apt up..