Blockchain Definition
·
Hacking/Block Chain
Definition | 정의Blockchain Technoloymodern database management technique 현대적인 데이터 베이스 관리 기술▷ 다른 네트워크의 노드들이 체인과 링크로 정보를 공유할 수 있게 해줌 따라서 데이터는 블록에 저장되어있으며, 체인으로 연결되어 있다.이러한 체인은 삭제 및 수정이 불가능하므로 일관성을 유지할 수 있다. Blockchainever-growing ledger in a network*ledger | 원장 : 금융 시스템과 관련된 거래를 기록하는 디지털 또는 물리적 일지블록체인에서의 ledger : 모든 거래 기록이 포함된 증가형 데이터 파일track record of all transactions 모든 거래 내역을 추적해서 기록secure, orde..
함수 호출 규약 (x86, x64)
·
CS/Computer Architecture
Calling Convention | 함수 호출 규약함수 호출 규약 : 함수의 호출 및 반환에 대한 약속한 함수에서 다른 함수를 호출할 때 프로그램의 실행 흐름이 다른 함수로 이동한다. 이 호출된 함수가 반환되면 다시 원래의 함수로 돌아와서 기존의 실행 흐름을 이어나간다. 이때 호출하는 함수를 호출자(caller), 호출되는 함수를 피호출자(Callee)라고 한다. 호출자는 피호출자가 요구하는 파라미터를 전달해줘야하고, 실행이 종료되면 반환 값을 전달받아야한다.  Segment word sizeCalling ConventionParameters in registerStack cleanup by32bits__cdecl Caller__stdcall Callee__fastcallecx, edxCallee__t..
[ make ] makefile 작성하기
·
Linux
개요내가 작성한 소스코드를 gcc로 각각 컴파일하는 것의 불편함을 줄이기 위해 make를 사용한다. make 프로그램이 빌드를 자동으로 수행하려면 각 소스파일의 의존 관계나 빌드 순서, 빌드 옵션등에 대한 정보가 필요하다.이러한 정보를 저장하는 파일이 makefile이다. Make 문법make 문법의 기본 형식은 3 부분으로 구성되어 있다. Target : 생성할 파일 - 특정 레이블을 지정하여 해당 레이블과 관련된 부분만 빌드하는 것이 가능Dependency : Target 생성에 필요한 소스파일이나 오브젝트 파일 등을 나타냄Command : Dependency에 관련된 파일이 수정되면 실행할 명령을 의미Target : Dependency --- Command Command*이때 command 앞은 공..
Docker로 amd64 Linux 환경 설정
·
Linux/Docker
개요리눅스 시스템 등을 공부하면서 x86, x64 환경을 사용해야할 일이 대부분이고, MAC을 사용하는 입장으로써 아주아주 불편했다. 지금까지는 UTM과 같은 가상머신으로 애뮬레이터를 돌리거나, 로컬에서 QEMU를 사용하여 ssh로 연결하는 등의 과정을 통해서 x64 기반의 시스템을 활용해왔다. CTF 문제들 중에 도커를 사용하는 문제들도 존재하고, 아예 독립적인 도커 환경에서 환경을 설정해보고자 시작하게 되었다.  Docker도커는 컨테이너 기반 가상화 도구로, 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있도록 한다. 도커를 사용한다면, 이미지를 기반으로 컨테이너를 실행할 수 있으며, 해당 이미지를 관리하기 쉽다.  Docker Image컨테이너를 만드는 데 사용되는 읽기 ..
부팅과 부트로더
·
CS/OS
부팅PC가 켜진 후에 OS가 실행되기 전까지 수행되는 일련의 작업 과정 의미프로세서 초기화 (멀티코어 관련 처리 포함)메모리와 외부 디바이스 검사 및 초기화부트로더를 메모리에 복사하기OS를 시작하는 과정BIOS (Basic Input / Output System) : 하드웨어와 관련된 부팅 작업POST (Power On Self Test) : BIOS가 수행하는 각종 테스트나 초기화 BIOS메인보드에 포함된 펌웨어(Firmware)의 일종입출력을 담당하는 작은 프로그램PC 메인보드에 롬(ROM)이나 플래시 메모리로 존재전원이 켜지면서 동시에 프로세서가 가장 먼저 실행하는 코드부팅 옵션 설정시스템 전반적인 설정 (Configuration) 관리설정 값으로 시스템을 초기화하여 OS 실행BIOS가 제공하는 기..
운영 모드
·
CS/OS
x86-64 프로세서 (인텔 64비트 호환 프로세서)에는 다섯 가지의 운영 모드가 존재한다. 컨트롤 레지스터와 인터럽트를 통해 각 모드로 전환할 수 있다.   다섯 가지 운영모드가 모두 구현되어야만 OS를 만들 수 있는 것은 아니다. 목적에 따라 몇개의 운영모드는 구현하지 않거나 필요하면 구현하는 방식으로 진행할 수 있기 때문에, 이 중에서도 필수모드와 선택 모드로 구분된다.  운영 모드필수 운영 모드리얼모드프로세서가 전원이 켜지거나 리셋되면 프로세서는 리얼모드로 진입함 (이전에 어떤 상태인지는 상관 없음)16비트 프로세스와 동일하게 동작BIOS(Basic Input Output System)의 여러 기능을 사용할 수 있음 => 디스크 읽기 및 쓰기, 그래픽 모드 전환 등 제공디바이스 드라이버를 제작하지..
[Pwnable] basic_rop_x64
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/29 basic_rop_x64Description 이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x64)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일dreamhack.io Environment Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) Stripped: No..
[Pwnable] rop
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/354/ ropDescription Exploit Tech: Return Oriented Programming에서 실습하는 문제입니다. 문제 수정 내역 2023.04.25: Ubuntu 22.04 환경으로 업데이트하였습니다.dreamhack.ioEnvironment$ checksec rop Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)Canary를 우회하는 과정이 있어야하고, NX bit가 enable이므로 stack 등에 쓰기 ..
SSC
·
CS/Algorithm
SSC : Strongly Connected ComponentSCC : Maximul Subset of Nodes s.t., all Nodes are Reachable from Each OtherHow do you find them?Strongly Connected라는건, 양쪽 방향으로 가는 길이 있다는 것이다.어디서 잡든 다른 노드로 가는 길이 있고, 다시 돌아오는 길이 있다. SSC의 간단한 예시는 cycle 한 노드가 여려 곳에 속하지는 않음만약, 두개의 SCC가 한 노드를 공유한다고 생각하자. -> 그러면 결국 이 두개는 한개의 SCC이다. 따라서 두 컴포넌트가 그냥 합쳐지기 때문에 한 노드를 공유하는 순간 하나의 SCC가 된다.  Let's DFSDFS를 해서 Tree 가 여러개 나왔다고 가정하..
암호화 통신
·
Hacking/Cryptography
터널링인터넷을 사적이며 안전한 네트워크의 일부로 사용하는 기술내부 네트워크 : 데이터의 기밀성을 위한 전용 회선 필요임대회선 사용 : 고비용기존의 인터넷을 임대회선처럼 전용 회선으로 사용 : VPN -> PPTP, L2TF, IPSec, SSL등 암호화 프로토콜 사용 IPSec3계층의 암호화 프로토콜IPv6에서 필수 요소로 운영체제의 일부로 설정되어 있음너무 과도하게 기술적이라는 단점이 있음라우터, 개인 단말 컴퓨터, 침입 탐지 시스템 등에 설치될 수 있음 IP계층 헤더 + IPSec헤더 + 암호화된 IP 데이터 형태로 된다. 내부 네트워크 안에서는 그냥 전송됨*IPSec헤더는 암호화에 필요한 정보 IPSec 주요 기능IKE (키 관리) : 상호 인증 및 대칭키 공유 설정, 두 컴퓨터 간의 보안 연결(S..