1. gdb
- 다 아는 그 디버거!

2. gdb-peda
- 기본 gdb에서 편의기능만 좀 추가(?) 한 디버거

3. pwndbg
- 안써봤음

4. radare2
- 안써봤음. 그러나 인터페이스는 지림;
1. 정의
- 위키피디아를 인용하면, 실제 값대신에 Symbolic을 추적하는 프로그램 분석을 의미한다.
- 프로그램의 실행 추적을 위해 어떤 Symbolic을 추적하는 것이다.

2. 예제(?)
내용이 좀 길지만... 의미는 아주 간단하다.

symbolic variable로 함수의 return value를 선택한다.
그러므로 위의 예제에서는 read() 함수의 return value인 y를 symbolic variable로 정하고 s라 한다.(y=s)
symbolic execution을 통해, y = 2*y를 거치면 y=2s가 된다.
그리고 다음으로 조건문이 나온다. if y==12 이 조건문을 통과하는데 조건문의 결과가 TRUE이면 2s = 12가 된다.

결국 위와 같은 방식으로 정해진 symbolic variable s를 실행괴정에서 추적하면서 프로그램을 분석하는 것을
symbolic execution이라 한다. 결국 taint analysis에 쓰일 것으로 판단된다.

출처: http://v0nsch3lling.tistory.com/489 [Falling Into Infinity]

----------------------

1. 정의
Symbol = 상징, 부호
Execution = 실행
특정한 값이 아닌 x, y, z와 같은 임의의 문자로 변환하여 프로그램을 구동 시키는 방식을 의미

2. 특징
사람이 프로그램을 살펴볼 때 직관적으로 하던 일들을 컴퓨터에 옮긴 것
즉, 여러 분기문의 조건을 보고 프로그램의 어떤 지점에서 각 변수가 어떤 값들을 갖는지 알아내는 일
컴퓨터는 누적된 path condition을 살펴보고 이를 시도


'Pwnable > Pwnable Theory' 카테고리의 다른 글

리눅스 디버거 종류  (0) 2017.11.16
ROP (Return Oriented Programming)  (0) 2017.07.04
Pwn에 나오는 용어들 정리 (계속해서 추가)  (1) 2017.07.04
1. 기본 지식
- 프로그램을 마음대로 조종할 수 있는 취약점을 발견한 경우
- 코드를 실행시키기 위한 메모리 영역이 없을 경우

2. 알아야할 것
- PLT, GOT
- RTL
- RTL Chain
- DEP, ASLR

- Gadget


1. 가젯(Gadget)
- 가젯이란 ROP(Retrun Oriented Programming)에서 주로 쓰임
- 원래 의미는 코드조각을 지칭했지만 요즘은 RET로 끝나는 연속된 명령어를 뜻함

2. bss영역
- 초기화 되지 않은 전역변수들을 위한 곳으로
- 보통 이 변수들이 0으로 초기화 되있고 이 곳은 주소값이 변하지 않는다.
- 임시스택이라고도 불림

3. PLT(Procedure Linkage Table)
- 프로시저들을 연결해주는 테이블
- 프로그램이 호출하는 모든 함수들을 나열하는 테이블

4. GOT(Global Offset Table)
- 프로그램이 실행후 libc.so 내의 실제 함수 주소가 저장되는 곳

5. DEP(Data Execution Prevention)
- 스택에 실행 권한을 주지않는 기법

6. ASLR(Address Space Layout Randomization)
- 공유라이브러리의 주소를 랜덤하게 바꾸는 기법
- 메모리 보호기법중 하나

7. Leak
- (정확한건 아님)원래는 보이지 않는 영역인데 보이게 하는 것

8. RCE 취약점
- Remote code execution 약자
- drive-by install을 뜻하는 것
 조작된 웹페이지나 이미지 파일을 보는 것만으로도 사용자의 네트워크 외부에서 전송된 실행 코드를 시작가능

9. NX

Never eXecute의 약자로써 스택의 실행권한이 없는, 즉 스택에 실행코드를 넣어도 무효화 된다.


'Pwnable > Pwnable Theory' 카테고리의 다른 글

리눅스 디버거 종류  (0) 2017.11.16
심볼릭 익스큐션(Symbloic Execution)  (0) 2017.11.16
ROP (Return Oriented Programming)  (0) 2017.07.04

+ Recent posts