반응형
 포스팅 썸네일 이미지

Memo

내것으로 만들어야할 내용들

gdb 설명 http://korea.gnu.org/manual/release/gdb/gdb.html#SEC1 http://korea.gnu.org/manual/release/gdb/gdb.html#SEC1 korea.gnu.org .init_array .fini_array설명 https://wogh8732.tistory.com/228 main 함수가 호출, 종료되는 과정 elf 파일을 보통 디버깅 할때 main문 부터 확인했었다. 하지만 문제를 풀다가 main함수가 호출되기 까지, 종료된 후 의 과정을 알아야 할 필요가 생겨서 간단하게 정리하고자 한다. 1. ELF 헤더 확인 wogh8732.tistory.com _start 설명 https://teamcrak.tistory.com/tag/_start T..

2021.04.14 게시됨

 포스팅 썸네일 이미지

프로그래밍

[C++] 복사 생성자, 깊은 복사와 얕은 복사

C++의 초기화 방법 C++에서는 int num=20; int &ref=num;과 int num(20); int &ref(num);으로 두 가지 초기화 방법이 있고 두 가지 결과 또한 동일합니다. 하지만 이것은 변수와 변수간의 초기화 방법일 뿐이고 객체와 객체간의 초기화 방법은 약간 다른 개념이 추가되어야 합니다. 왜냐하면 객체에는 수많은 복잡한 내용들이 포함되어 있기 때문에 일반 변수와는 차별성을 두어야 합니다. C++에서의 변수와 객체 초기화 소개에 앞서 아래 코드를 먼저 살펴보겠습니다. #include class SoSimple { private: int num1; int num2; public: SoSimple(int n1, int n2) : num1(n1), num2(n2) {} void Sho..

2021.04.14 게시됨

 포스팅 썸네일 이미지

프로그래밍

[자료구조] 스택과 큐

먼저 스택과 큐를 C++를 이용해서 쉽게 구현하기 위해서는 템플릿 함수에 대해서 알고 넘어가야 한다. 템플릿 함수에 대해 간략히 소개해보겠다. 템플릿(Template) 함수란 템플릿 함수란 함수의 return형과 인자형을 int, float, double, char ...등등 여러가지 형으로 자유자재로 변환할 수 있다. 이것을 이용하면 C언어에서 같은 기능을 하지만 return형이 다른 함수들을 여러개 작성할 필요가 없다. template void SelectionSort(T *a, const int n){ for (int i=0;i

2021.04.12 게시됨

 포스팅 썸네일 이미지

War Games/ctf-review

[shakti CTF2021] signal dROPer

문제소스 보호기법 문제 분석 및 페이로드 문제 분석 text file은 살아있으나 아이다 데이터베이스 파일이 날라가서 죄송합니다ㅠㅠㅠ 익스플로잇 코드를 보시면 이해가 빠르실 겁니다. from pwn import * #context.log_level='critical' context.log_level='debug' #p=process("./chall") e=ELF("./chall") puts_plt=e.plt['puts'] puts_got=e.got['puts'] pr=0x0000000000400c03 #pop rdi; ret; dns,port="34.121.211.139", 2222 p=remote(dns,port) for i in range(13): p.sendlineafter("Your Choice ..

2021.04.12 게시됨

 포스팅 썸네일 이미지

프로그래밍

[JAVA] Scanner Class 사용법

Scanner란? C언어의 scanf함수 기능과 비슷한 자바 클래스이다. JDK 1.5부터 사용 가능하고 정수 실수 문자열 등을 입력받을 수 있다. Scanner사용법 import java.util.Scanner; Scanner클래스를 사용하기 위해서는 C언어의 #include 와 같이 import java.util.Scanner;구문을 맨 위에 추가해주어야 한다. 이 과정을 마치면 Scanner 객체를 생성하고 객체에 해당하는 메소드를 사용하는 순서로 키보드의 입력값을 전달받을 수 있다. import java.util.Scanner; public class test{ public static void main(String[] args){ Scanner scanner=new Scanner(System.i..

2021.04.10 게시됨

 포스팅 썸네일 이미지

Pwnable/포너블 정리

Unsafe Unlink 정리

Unsafe Unlink 쓸 수 있는 상황 1. malloc으로 할당 받은 힙의 주소를 전역 변수에서 관리해야 함. 2. 힙 최소 2개이상에 두 번째 힙의 헤더를 조작할 수 있어야 한다. Unlink의 역할 Unlink는 freelist에 있는 힙 청크 중에 중간에 끼어 있는 청크에 메모리가 할당될 때 힙 청크 리스트 노드들 간의 연결관계를 정리해주는 역할을 함. 아래 그림은 P의 위치에 malloc, calloc으로 메모리가 할당될 때 Unlink가 수행하는 동작이다. UnLink 발생 조건 Unlink과정에서 발생하는 취약점을 알기 위해서 소스코드를 분석해보겠다. #define unlink(AV, P, BK, FD) { \ FD = P->fd; \ BK = P->bk; \ if (__builtin_e..

2021.04.07 게시됨

반응형