목록list (398)
y0u_bat
[2016] EKOPARTY PWN25 Ultra baby (pwn, 25 points, solved by 261) nc 9a958a70ea8697789e52027dc12d7fe98cad7833.ctf.site 55000 이문제는 bof를 해서, 함수포인터를 조작하여 flag라는 곳으로 실행시키면, 플래그를 뱉는 문제이다. 함수포인터를 1바이트 조작 할 수 있게 되는데, 이걸 이용해서 Flag함수가 실행 되겠끔 하면 된다. from socket import * HOST = "9a958a70ea8697789e52027dc12d7fe98cad7833.ctf.site" PORT = 55000 def recvuntil(t): data = '' while not data.endswith(t): tmp = s.re..
[2016] EKOPARTY PWN100 My first service I (pwn, 100 points, solved by 129) Blacky is taking his first steps at C programming for embedded systems, but he makes some mistakes. Retrieve the secret key for access. 한줄요약: 바이너리를 안주는데, 포맷스트링버그가 있을가 해서 해보았더니 됬다. %x로 릭을 하니 flag가 나왔다.
HDCON System Q.3-1 풀이 엄청 쉬운문제이다. 요약: 오버플로우해서 조건맞추고, 플래그를 담고 있는 ptr 경계선인 null를 덮어서 send할때 플래그까지 출력시키자!
OS-5 BIOS,Booting BIOS는 POST가 완료되고, 여러 장치 검사후 앞부분에 부트로더가 있는지 확인한다. 존재 한다면, 0x7c00 주소에 복사한 후 0x7c00부터 실행된다. MBR(Master Boot Record) 512바이트로 구성되어 있다. OS실행에 필요한 환경을 설정한다 OS이미지를 메모리에 복사하는 일을 한다 BIOS에서 첫번째 섹터 512바이트 중에 가장 마지막 2바이트가 0x55,0xAA인지 검사해서 부트로더 인지 확인한다. BootLoaders.asm [ORG 0x00] [BITS 16] SECTION .text jmp 0x07C0:START START: mov ax,0x07C0 mov ds,ax mov ax,0xB800..
보호되어 있는 글입니다.
how2heap first_fit.c #include #include #include int main(void) { char *a = malloc(512); char *b = malloc(256); char *c; strcpy(a,"this A"); printf("[a]: %s %p\n",a,a); free(a); c = malloc(500); printf("[c]: %p\n",c); strcpy(c,"this C"); printf("[c]: %s %p\n",c,c); printf("[a]: %s %p\n",a,a); } 간단하게 설명하자면, malloc 같은경우 bin이라는 구조가 있고, 크기에 따라 large bin, small bin fastbin으로 나누어지고, fastbin 같은 경우, free..
OS-4 운영모드와 메모리 관리 기법 x86와 x86-64 프로세스에서 지원하는 메모리 관리 기법은 크게 2가지이다. 세그먼테이션(Segmentation) 페이징(Paging) 둘다 모두 메모리를 나누는 것이고 차이점은 세그먼테이션은 원하는크기로 짤라 쓰는 방식이고, 페이징 같은경우에는 정해진 크기로 짤라져 있는 조각을 모아 원하는 크기로 관리하는 방식이다. 세그먼테이션은 세그먼트의 시작주소 or 디스크립터라고 불리는 자료구조의 위치를 설정 해야된다. 페이징은 CR3 레지스터에 페이지 디렉터리라 불리는 자료구조의 물리주소를 설정해야지 사용 가능하다. 리얼 모드의 메모리 관리 방식 최대 1MB까지 주소공간을 사용하며, 세그먼테이션만 지원한다. 세그먼트 크기는 64k로 고정이며, 세그먼트 시작 주소는 코드나..
OS-3 레지스터 레지스터 종류 AX,BX,CX,DX,SI,DI,SP,BP,R8~R15 - 범용 레지스터 CS,DS,ES,FS,GS - 세그먼트 레지스터 CR0,CR1,CR2,CR3,CR4 - 컨트롤 레지스터 범용 레지스터 역할 AX - 산술 연산을 수행할때 누산기로 사용 BX - 데이터의 어드레스를 지정할때 데이터 포인터로 사용 CX - 루프문 or 문자열 카운터로 사용 DX - I/O 어드레스를 지정할때 사용, 산술연산을 수행할때 보조 레지스터로 사용 SI - 문자열에 관련된 작업을 수행할때 원본 문자열의 인덱스로 사용 DI - 문자열에 관련된 작업을 수행할때 목적지 문자열의 인덱스로 사용 SP - 스택의 포인터로 사용 BP - 스택의 데이터에 접근할때 데이터의 포인터로 사용 R8~R15 - x86-..
OS-2 운영모드 운영모드 5가지 운영모드가 존재한다. 운영모드의 종류 리얼모드 - 프로세스 초기상태(전원/리셋)이고 16비트로 동작하며 8086프로세스와 호환 되는 모드이며 최대 1m의 주소공간을 지원한다 보호모드 - 32비트 모드로 동작하며 세그먼트,페이징,멀티태스킹 등의 기능 제공되고 4GB의 주소공간을 지원한다 IA-32e모드 - 32비트 호환모드와 64비트 모드의 두가지 서브모드로 구성되며, 16EB의 주소공간을 지원한다. 시스템 관리 모드 - 전원 관리나 하드웨어 제어 같은 특수 기능을 제공한다. 가상 8086 모드 - 보호모드 내부에서 가상의 환경을 설정하여 리얼 모드처럼 동작한다. 운영모드의 전환 전원/리셋 -> 프로세스는 리얼모드 진입 리얼모드 -> 보호모드 (cr0의 PE비트를 1로 설..
Mac OSX에서 환경구축 명령어 라인 개발자 도구 설치 Cross-compiler를 build하기 위해 Native Compiler가 필요하다. OSX 10.8 Mountain Lion부터는 추가 설치가 필요하다. $xcode-select --install Cross-compiler Build $export TARGET=x86_64-pc-linux $export PREFIX=/opt/cross (설치경로) Home Directory의 .bash_profile or .bashrc 파일을 편집하여, Cross-compiler directory를 PATH 환경변수에 추가한다. GNU Binutils Bulid OS X의 Mach-O형식을 지원하지 않기 때문에 Port를 이용해 설치하는 경우 as ld 등 명..