분류 전체보기 177

Dockerfile 주어졌을때 CTF Configuration 정리 & ARM Cross Compile 및 ARM 바이너리 gdb 디버깅 하는법

CTF문제에서 다음과 같이 Dockerfile을 제공해주는 경우가 있다. 이때 만약 문제서버와 동일한 환경에서 바이너리를 실행시키며 디버깅을 하고싶을땐 어떻게 해야할까? 그래서 준비해봤다. 1. docker 파일 이용해서 해당 환경 OS 실행 (docker image생성 -> 컨테이너 생성 -> 컨테이너 접속) 2. 관련 프로그램 설치 (gdb, pwntools) 3. 바이너리가 다른 아키텍쳐(i386가 아닌)에서 컴파일 된 경우, 크로스 컴파일 (처음 실행) 도커 빌드 및 컨테이너 실행 #dockerfile 이용해 image 생성 sudo docker build -t codegatearvm:cgarvm ./ #image 이용해 컨테이너 실행 sudo docker run -i -t -d -p 9080:8..

VADMUD 프로젝트를 마무리하며

논문을 게재했습니다. 제목은 Verification of De-Identification Techniques for Personal Information Using Tree-Based Methods with Shapley Values 입니다. 이게 무슨 뜻이지 싶겠지만 개인정보 비식별 방법론을 AI를 이용해 검증하고, 개인정보 형태의 데이터셋에 가장 효과적인 머신러닝 알고리즘이 뭔지 찾아가는 내용입니다. 데이터 3법 개정으로 가명정보가 활발히 사용되고 있는데, 이미 비식별화가 완료된 데이터셋에 대한 검증은? 이라는 생각에 여기까지 오게되었습니다. 캡스톤 시작할때부터 꼭 개발을 하고싶다는 제 고집에 흔쾌히 PM까지 맡아주고 머신러닝 구현에 핵심적인 데이터 레이블링 방법론을 만들어준 성지누나, 머신러닝 학습..

일기 2022.02.21

바이너리에 ld와 libc 새로 링킹하기 (D_PRELOAD=./libc.so.6 segfault 뜰때 해결하기)

CTF문제에서 libc파일을 제공해줬을때, 이와 같은 명령어로 바이너리를 실행시킬때 내가 원하는 라이브러리가 로드되게 할 수 있다. (LD_PRELOAD는 변수로 설정된 라이브러리를 먼저 로딩시켜주는 환경변수이다.) LD_PRELOAD=./libc.so.6 ./bypass_valid_vtable 이때 이 명령어가 segfault가 뜨는 경우가 있는데, 이걸 해결하는 방법을 적어보고자한다. 문제는 원하는 라이브러리가 로딩은 되었으나, 바이너리 내부에 연결(링킹)되어 있는 libc와 ld는 이와 다르기 때문에 발생한다. 이에 바이너리에 링킹된 libc와 ld도 우리가 원하는 버전으로 맞춰줘야한다. https://github.com/NixOS/patchelf GitHub - NixOS/patchelf: A s..

CTF-pwnable용 Docker 설치 및 사용법

https://spark.kro.kr/110 [Docker] CTF-Pwnable 환경 구축하기 Pwnable 환경 구축하기 macOS를 사용하고 있어서 Pwnable을 할때 VMware에 Ubuntu를 설치해서 사용해왔습니다. 하지만, 저는 128GB를 사용하고 있어서 용량이 늘 부족합니다. 그래서 생각한 것이 docker를 이 spark.kro.kr 이 자료를 참고하였다!! CTF 도커 설치하는법 요 링크에서 Dockerfile을 다운받은 뒤에, 이걸로 도커 컨테이너 컴파일을 진행하면된다. Dockerfile안에 컨테이너 안에 설치할 pwnable 관련 여러 도구들을 자동으로 설치해주는 내용이 다들어가 있어서 설치가 매우 간편하다. https://gist.github.com/LiveOverflow/b..

오버플로우(Overflow) 관련 비슷한 용어 정리

오버플로우(Overflow) : 정해진 영역을 벗어나는 현상 인티져 오버(언더)플로우(integer over/underflow) : 값이 잘려서 의도하지 않은 값이 들어갈 수 있음. 반복문 우회 버퍼 오버플로우(buffer overflow) : 정해진 버퍼 크기를 넘어서 값이 들어감. 값이 잘리지 않음. 스택 오버플로우(stack overflow) : 정해진 스택의 크기를 넘어서 값이 들어감. 힙 오버플로우(heap overflow) : 정해진 힙의 크기를 넘어서 값이 들어감. 스택 버퍼 오버플로우(stack buffer overflow) : 스택 영역에 있는 버퍼가 정해진 크기를 넘어서 값이 들어감. 힙 버퍼 오버플로우(heap buffer overflow) : 힙 영역에 있는 버퍼가 정해진 크기를 넘..

공부/이모저모 2022.02.11

[Dreamhack] Mitigation for Tcache Double Free Bug & Tcache Duplication

dreamhack system hacking roadmap 강의의 Memory Corruption: Double Free Bug 중 Mitigation for Tcache Double Free Bug & Tcache Duplication 강의 내용을 정리해보았다. https://dreamhack.io/learn/116#t719 로그인 | Dreamhack dreamhack.io 학습 후 감동의 글 동적으로 메모리 할당하고 해제를 두번하면 해제된 메모리를 관리하는 free list에 똑같은 메모리 조각 chunk가 두개 연결되는데, 이때 똑같은 크기에 메모리를 할당요청하면 운영체제의 메모리 효율성 + ptmalloc 메모리 할당자 알고리즘 때문에 방금 사용되고 반납된 즉, 해제된 메모리주소를 그대로 할당해..

diff란? - 컴퓨터 파일 비교 유틸리티

https://ko.wikipedia.org/wiki/Diff diff - 위키백과, 우리 모두의 백과사전 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 ko.wikipedia.org 컴퓨터에서 diff는 두 개의 파일 간 차이에 대한 정보를 출력하는 파일 비교 유틸리티이다. 일반적으로 하나의 파일 버전과 동일한 파일의 다른 버전 간의 변경 사항을 보여주는 데 쓰인다. diff는 문서 파일의 줄 사이 변경 사항을 보여준다. https://sourceware.org/git/?p=glibc.git;a=blobdiff;f=malloc/malloc.c;h=80c..

공부/이모저모 2022.02.10
728x90