본문 바로가기

Research

[번역] mach-O 와 ELF 의 링킹 과정에 대해 마크오 볼 일이 있어서.. 관련 항목 도장 깨기 하다 읽은 글을 한글로 짜집기 해 보았다.원문 : http://timetobleed.com/dynamic-linking-elf-vs-mach-o/ memprof 를 빌딩하다가 마주친 ELF 와 Mach-O 의 다이나믹 링킹의 유사점과 차이점에 대해 설명한다. PLT - Procedure Linkage TablePLT 는 런타임에 함수 본체의 주소를 저장하는 테이블이다. Mach-O 와 ELF 모두 PLT 를 가지며 이 테이블은 컴파일 타임에 생성된다. 테이블 초기값은 다이나믹 링커를 호출하도록 구성되고, 링커는 호출될 함수의 심볼을 찾는다. 이런 작업방식은 ELF 와 Mach-O 의 하이레벨에선 매우 비슷하지만 구현상의 차이가 있고, 이에 대해 이야기해볼 .. 더보기
Hex-rays Decompilation failure 디컴파일을 시도할 때 아래처럼 IDA 가 징징거리는 경우가 있다. TL;DRcall analysis failed 에러가 난 주소의 함수를 디컴파일하고 다시 오세요. 항상 '어 디컴파일이 안되나 보네 ?' 하고 넘어갔던 에러인데,최근에 codegate 2018 boom 문제를 풀다가 이제서야 알게 된; 내용이라 기록한다. 문제 풀이에 키가 되는 주요 함수 func1::hbc30.. 을 디컴파일하려 하니 나온 메시지로, '0x55555556511B 주소에 있는 인스트럭션이 뭔말인지 모르겠어...' 이다. 저 주소를 직접 찍어가 보면, call 호출부임을 알 수 있다. 함수 분석에 실패했으니. func5::h0a9... 내부에서 다시 디컴파일 호출해 보면, '0x55555556511B 주소에 있는 인스트럭션이.. 더보기
NR advanced exploit lecture 보호되어 있는 글입니다. 더보기
docker template angr 설치용 스크립트 코드로 docker 를 사용하는데 자꾸 초기화됨. # install docker#curl -sSL https://get.docker.com/ | sudo sh # pull the docker image#sudo docker pull angr/angr # run it### cheese: this is command for make new docker containers only#sudo docker run -it angr/angr 마지막 코드인 docker run 명령은 항상 새로운 도커 컨테이너를 만드는 명령어이므로docker start 를 하도록 코드를 만들어야 했음. docker start 는 인자값으로 도커 컨테이너 코드가 필요하며이 container 코드는 docker p.. 더보기
glibc malloc understanding https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/예전에 읽었던 자료 정리 삼아. https://sploitfun.wordpress.com/2015/03/04/heap-overflow-using-malloc-maleficarum/ ptmalloc2 는 기존에 사용 중이었던 dlmalloc 을 fork 한 함수이며 멀티스레드를 지원함.이는 freelist 자료구조가 교체의 원인이 되었는데 (아마 bins 를 얘기하는 듯) 기존의 dlmalloc 의 경우 freelist 자료구조가 모든 쓰레드에서 접근가능했고, 두개의 스레드에서 동시에 malloc 을 할 경우에 하나의 스레드만이 크리티컬 섹션에 진입할 수 있었기 때문에 퍼포먼스가 하.. 더보기
ws filter 보호되어 있는 글입니다. 더보기
동적 메모리 관련 보호되어 있는 글입니다. 더보기
Finding environment variable on GDB GDB 에서 환경변수 찾기 일반 gdb 1 : info variable environ --> x/dwx 2 : x/s *((char**)environ), x/s *((char**)environ+1) PEDA1 ) searchmem SHELL 더보기