전체 글

Pwnable/Tech

메모리에 관한 내용 정리(pptx)

나름대로 정리해보았습니다. 메모리 보호 기법을 정리한것과 Heap Chunk에 관해 정리한 내용입니다. -- 아직 채우지 못한 부분이 많아요~--

Pwnable/Tech

Heap - House of Force

House of Force 기법은 top chunk의 size를 조작함으로써 임의의 주소에 힙 청크를 할당 할 수 있는 공격기법이다. 이 기법을 사용하기 위해서는 공격자가 top chunk의 size를 조작하고, 원하는 크기의 힙 청크를 할당 할 수 있어야 합니다. top chunk를 처리하는 _int_malloc코드의 설명입니다. static void * _int_malloc(mstate av, size_t bytes){ INTERNAL_SIZE_T nb; mchunkptr remainder; unsigned long remainder_size; victim = av->top; size = chunksize(victim); if(size >= (nb+MINSIZE)){ remainder_size = s..

Pwnable/Tech

Heap - House of Lore

House of Lore 은 smallbin크기의 힙이 존재할때 bck->fd를 조작하여 임의의 주소에 청크를 할당할 수 있는 공격 기법이다. 이는 할당을 원하는 영역에 Fack chunk를 구성하고 bck->fd를 조작할 수 있다면 원하는 주소에 "힙 청크를 할당" 할 수 있다. but, 방지 코드인 bck->fd를 검증하는 코드가 존재한다. //nb = request size.. if(in_smallbin_range(nb)){ idx = smallbin_index(nb) bin = bin_at(av, idx) if(victim = last(bin) != bin){ if(victim == 0){ //consolidate(av) }else{ bck = victim -> bk // bin->bk(victi..

Pwnable/Tech

시스템 해킹-각 메모리 보호 기법과 기법 우회

1- 메모리 보호 기법의 종류와 각 기법에 대해 간단히 알아봅시다. (본 포스팅 글) 2- 각 메모리 보호 기법을 어떻게 우회할 수 있는지, 알아봅시다. (Next-01) 3- 위 내용을 공부한 후 느낌 4- CTF 문제 추천!! 해주시면 좋을것 같습니다 ㅎㅎㅎ 1- 메모리 보호 기법과 종류 간단하게 메모리 보호 기법들을 보면 ASLR, NXbit(DEP), ASCII-Armor, Canary, RELRO 등이 있습니다. ASLR= Address Space Layout Randomization --> 말그대로 입니다. 설명을 덧붙이자면, 실행 파일의 베이스와 스택, 힙 및 라이브러리의 위치를 포함하여 프로세스의 주요 데이터 영역의 주소 공간 위치를 무작위로 배정하여 메모리와 기타 데이터 주소를 활용해 B..

Reversing

리버스 엔지니어링 - 객체의 동적할당과 해제 --

특징 - 일반 선언과 다르게 스택에 바로 클래스 크기 만큼 할당 하지 않고, 포인터 하나를 선언하여 사용. 즉 메모리 할당 코드 필요. ---> 클래스 크기 = new 사용할때 확인 가능. push 88h ;클래스 크기(uint) call ???@YAPAXI@Z ; operator new(uint) add esp, 4 (스택 정리 __cdecl 함수 규약) mov [ebp+var_8], eax ; eax->포인터 주소 -------->[ebp+var_8] == 포인터 (리버스 엔지니어링 바이블 중 일부를 공부하며 작성했음을 알림니다.)

Reversing

어셈블리어 1장 80x86시스템 CPU 구조

시작하기 앞서 본 내용은 시스템 해킹과 보안 (정보보안 개론과 실습)책을 기반으로 공부하며 적는 글이란것을 알린다. 80x86 시스템 CPU의 구조는 연산장치, 제어장치, 레지스터, BUS 인터페이스로 나눠져있다. 첫번째로 연산장치, 이는 CPU 핵심 부분 중 하나로, 산술과 논리등의 연산을 한다. 연산장치의 구성 요소 1. 내부장치 1.1 가산기: 덧셈 연산 수행 1.2 보수기: 뺄셈 연산 수행, 1의 보수나 2의 보수 방식 이용 1.3 시프터: 비트를 오른쪽이나 왼쪽으로 이동하여 나눗셈과 곱셈 연산을 수행] 2. 관련 레지스터 2.1 누산기: 연산의 중간 결과 저장 2.2 데이터 레지스터: 연산에 사용할 데이터 저장 3.3 상태 레즈스터: 연산 실행 결과로 나타나는 양수와 음수, 자리올림, 오버플로 ..

Kon4
보안 공부하다, 적어보는 노트