전체 글

·Pwnable/Kernel
1. musl이란?리눅스 커널 기반의 운영체제용으로 고안된 표준 라이브러리이다.표준을 준수하는 libc 구현체를 개발하는 것을 목적으로 개발했다. (특징)- 가볍고 빠르며 간단하고 무료이다.- 표준 준수하고 안정성 측면에서 정확성을 추구  2. musl-gcc 설치ex)// test.c#include int main(){ printf("Hello World\n"); return 0;} 컴파일할 코드는 c언어를 접했다면 한번쯤은 봤을 hello코드이다.musl.cc 바이너리들이 모여있는 아래 링크에서 원하는 아키텍처에 따라 다운 받으면 된다.(http://musl.cc/#binaries)- x86_64 : "x86_64-linux-musl-native.tgz"- arm : "aarch64-linux-mus..
1. serial통신 터미널 연결1 - usb연결 수 /dev에서 찾기2 - screen명령어를 통해 터미널로 접속 (1) usb연결 후 /dev에서 찾기 /dev 폴더에 "ls /dev/*usb*"를 했을 때 처음에는 아무것도 표시가 안된다.하지만 usb를 연결한 이후에 다시 확인하면 (사진1)과 같이 새로운 표시된다.- cu : 시리얼 통신에 사용되는 컨트롤러를 의미- tty : 시리얼 장치의 터미널을 의미  (2) screen명령어를 통해 터미널로 접속"screen [tty.로 시작하는 파일명] [시리얼 통신 속도]"를 통해 터미널에 접속할 수 있다.screen /dev/tty.usbserial-0001 115200 [시리얼 통신 속도]- 데이터가 전송되는 속도를 비트 단위로 나타낸다.- 초당 전송..
·Pwnable/stack
1. Shellcoding란?1-1. 개요 (Shellcode란?)익스플로잇을 위해 제작된 어셈블리 코드 조각이다.어셈블리어와 기계어 코드는 일대일 대응이기 때문에 공격자가 rip를 주입한 shellcode로 옮긴다면 cpu에게 원하는 명령을 하도록 유도할 수 있게 된다. [shellcode작성법을 알아야하는 이유]수행할 대상의 아키텍처와 운영체제 그리고 수행 목적에 따라 어셈블리어는 다르게 작성되어야 한다. 아키텍처별로 자주 사용하는 쉘코드를 공유하는 사이트가 있지만 해당 쉘코드들은 범용적으로 작성되었기 때문에 제대로 작동이 안 될 가능성이 있다. 따라서 타겟 시스템에 맞는 최적의 쉘코드를 상황에 따라서 언제든지 작성할 수 있어야한다. => 쉘코드 모음 사이트 : http://shell-storm.or..
slepber
Greedun의 발전 기록소