분류 전체보기 썸네일형 리스트형 EPROCESS(PEB), ETHREAD(TEB), KPROCESS(PCB), KTHREAD(TCB) EPROCESS(PEB), ETHREAD(TEB), KPROCESS(PCB), KTHREAD(TCB)커널 디버깅을 하면서 몇가지 공부한 사실을 정리한다.EPROCESS(Executive Process)와 ETHREAD(Executive Thread)는 process가 생성될 때 kernel 메모리에 생성되는 구조체이다.user 메모리에 생성되는 구조체로는 이와 대응되게 PEB(Process Environment Block), TEB(Thread Environment Block)가 있다.위와 같은 구조로 프로세스가 관리된다.PEB와 TEB는 system call 호출로 매번 EPROCESS와 ETHREAD에서 정보를 가져오기에는 성능상의 이슈가 발생하기 때문에 존재하는 것이라고 한다.KPROCESS(Pro.. 더보기 segmentation 보호되어 있는 글입니다. 더보기 windows paging - x86, 64 windows paging - x86, 64윈도우 운영체제는 가상 메모리를 사용한다.디버깅을 경험해봤다면 프로그램이 대부분 0x400000의 주소부터 시작하는 것을 볼 수 있는데, 이렇게 동일한 주소에 접근해도 데이터가 프로세스별로 다를 수 있는 것은 바로 가상 메모리 때문이다.0x400000이라는 주소는 논리 주소가 세그멘테이션된 선형 주소이다.선형 주소는 비트별로 나뉘어 페이징을 통해 물리적 주소가 되고, 이 물리적 주소가 실제 메모리 주소가 된다.우리가 디버거에서 보는 주소는 가상 주소, 즉 선형 주소이기 때문에 각 프로세스별로 동일한 메모리에 접근해도 값이 상이할 수 있는 것이다.논리 주소 -> 선형 주소선형 주소 -> 물리 주소AMD64의 paging은 다소 복잡하게 진행될 수 있다.선형 주소를.. 더보기 x-mas ctf 2019 deadfile 2019 x-mas ctf deadfilebinary info[*] '/home/krrr/pwn/x-mas/dead_file/deadfile' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled메뉴형 heap challenge이다. line CODE JT JF K ================================= 0000: 0x20 0x00 0x00 0x00000004 A = arch 0001: 0x15 0x00 0x0d 0xc000003e if (A != ARCH_X86_64) goto 0015 0002: 0x20 0x00 0x00 0x00000000 A = sys_number 0.. 더보기 seccomp_bypass_trick 보호되어 있는 글입니다. 더보기 linux file vtable check bypass linux file vtable check bypassvtable check (glibc >= 2.24)/* _IO_vtable_check Source: https://code.woboq.org/userspace/glibc/libio/vtables.c.html#_IO_vtable_check */ void attribute_hidden _IO_vtable_check (void) { #ifdef SHARED void (*flag) (void) = atomic_load_relaxed (&IO_accept_foreign_vtables); #ifdef PTR_DEMANGLE PTR_DEMANGLE (flag); #endif if (flag == &_IO_vtable_check) return; { Dl_info.. 더보기 pwnable.tw criticalheap 보호되어 있는 글입니다. 더보기 pwnable.tw printable 보호되어 있는 글입니다. 더보기 이전 1 2 3 4 ··· 16 다음