전체 글 173

x86-64 ISA(Instruction Set Architecture)의 여러가지 이름 (Intel64, IA-32e, EM64T, amd64 이거 다 같은거다)

드림핵 강의에 STAGE 1에 다음과 같은 문구가 등장한다. x86-64는 Intel64, IA-32e, EM64T 또는 amd64라고 불립니다. 이렇게 많은 이명을 갖게 된 이유는 개발 역사가 복잡하기 때문입니다. 해당 내용을 요약해보고자한다. 0. 인텔은 32비트 ISA를 굉장히 잘 만들었음. 1. 인텔은 64비트 ISA를 개발했는데, 이게 잘 안됐음. 2. 그래서 AMD한테 사실상 넘겨줬는데, AMD가 이를 응용해서 넘 좋은 64비트 ISA를 만듬 3. 그래서 인텔은 다시 이걸 이용해서 ISA를 만듬. 이게 x86-64임. 아래는 드림핵의 본문이다. 64비트 아키텍처 개발의 필요성을 느낀 인텔은 2001년 경에 64비트 아키텍처인 IA-64를 발표하고, 이를 이용하는 아이테니움 CPU를 출시했습니다..

공부/JUN STUDY 2022.03.30

컴퓨터의 주소표현 (포인터의 크기 & 표현가능한 메모리 주소가 크면 좋은 이유)

컴퓨터의 주소개념을 이해할때 헷갈리는 가장 큰 이유는 개인적으로 주소를 나타내는 방법도 "숫자"이고 안에 들어가는 값도 "숫자"이기 때문이라고 생각한다. 무슨 말이냐면, 우선 어떤 호텔이 있다고 생각해보자. 이 호텔은 101호부터 503호까지 있는 5층짜리 호텔이다. 자, 이 호텔이 만약 101호부터 1003호까지 있는 10층짜리 호텔이면, 당연히 손님을 많이 받을 수 있을 것이다. 결론부터 이야기하면 컴퓨터에서 표현가능한 메모리 주소가 커지면 좋은이유는 호텔이 커지면(방을 많이 가지면) 손님을 더 많이 받을 수 있는 이유와 같다. 아니 방이 많으면 당연히 많은 손님들을 받을 수 있지 않을까? 어려운 논리가 전혀아니다. 컴퓨터도 표현가능한 주소가 많아질수록, 당연히 넣을 수 있는 데이터가 많아진다. 이게..

공부/JUN STUDY 2022.03.30

WORD에 대해 (CPU가 한번에 다루는 데이터의 단위란?)

컴퓨터에서 WORD란, CPU가 한번에 다루는 데이터의 단위이다. n bit 프로세서(64bit/32bit)라고 이야기할때 이 n이 바로 해당 컴퓨터의 WORD인 셈이다. 사실 WORD라는 단어는 1. CPU가 한번에 다루는 데이터의 단위라는 뜻 2. 16bit 라는 값 그 자체 로 쓰이는데, 우선은 1번 뜻에 집중해서 살펴보자. 자 그러면 CPU가 한번에 다루는 데이터의 단위란 무슨뜻일까? 우선 결론부터 말하면, WORD 단위로 처리되는 일들은 다음과 같은 것들이 있다. 1. CPU안에 있는 ALU(Arithmetic Logic Unit)에서 연산되는 데이터 2. 레지스터 크기 3. 표현가능한 주소의 크기 (포인터의 크기) 4. 버스(BUS)의 대역폭 예를들어 64bit 컴퓨터의 경우, 1. ALU에서..

공부/JUN STUDY 2022.03.30

2022 T3N4CI0US CTF osint-no3 Write Up

[osint] Turkey - OSINT NO.3 The best green juice!! Flag Format : BCTF{} Please mark the space as _ Author : Center https://bit.ly/3D84nRF 다음과 같은 제시문과 함께 사진을 한장 준다. 구글 이미지 검색을 해보니 다음과 같은 사이트를 발견할 수 있었고 커피나 음료수를 파는 매장인 것 같다는 느낌을 받았다. 요 마크에 집중해보니 요 매장이라는 것을 알 수 있었고, BCTF{Joe_&_The_Juice}같은 매장 이름자체는 플래그가 아니더라. 제시문이 best green juice여서 해당 매장에서 파는 초록색 주스 메뉴들을 입력해봤고 결국 정답은 아래에서 찾을 수 있었다. https://www.abo..

2022 T3N4CI0US CTF yemen Write Up

2022 T3N4CI0US CTF 문제의 misc-yemen 문제를 풀어보았다. You can solve the problem without exploits nc 34.125.129.166 10000 flag format : BCTF{()_FULLNAME} [Author] Dolpari nc 서버와 포트를 주고, 해당 주소에 nc로 접속해보면 다음과 같은 화면을 만들 수 있었다. 오잉 설마 포너블? 인가 싶었지만 pwntools interactive로 확인해보니까, 서버에서 돌아가는 서비스가 인풋을 받지를 않는다. (????) p = remote 로 연결하고 p.interactive()로 바로 붙어보니까, 바로 EOF를 만난다. pwntools interactive()에서 Got EOF while rea..

2022 T3N4CI0US CTF Alegeria-BOF Write Up

한국시간 기준으로 2022.3.23 9:00부터 2022.3.25 9:00까지 진행될 2022 T3N4CI0US CTF에 참여했다. 홈페이지 문제로 무려 5시간이 연장되어 25일 14:00까지 진행됐다. 깔끔하게 밤새고 11시부터 금요일 수업을 들으려했으나, 야속하게도 14시까지 꼼짝못하고 컴퓨터 앞에 붙어있었다 ㅠ 각설하고, 가장먼저 요번 CTF의 유일한 Pwnable 문제였던 Algreria-BOF 문제를 풀어보았다. 매우매우 단순한 BOF 문제였다! 코드를 살펴보면 char v4[208] 버퍼에 gets로 길이 검증없이 값을 넣는다! 일단 BOF가 발생하는건 자명한데, RET를 어디로 옮기냐가 문제다. ? 이거 보고 띠용했다. 그냥 뭐 가지고 놀아보자. 아무런 보호기법이 없다. code = b"A"..

CTF 문제 풀기 시작할때 해야하는 것들 정리

1. file 1. 파일 유형 64 / 32 비트 확인 2. 아키텍처(ISA)확인 x86-64 / ARM 3. stripped 여부 확인 => 디버깅 심볼 여부 => main 내가 찾음? 안찾아도 ㄱㅊ? 2. checksec 보호기법확인 3. chmod +x 실행권한없으면 디버깅도 안됨 당연히 permission denied 4. vmmap으로 메모리 영역 권한보기 5. main 찾기 debugging 심볼 없을때 => IDA에서 libc_start_main 따라가며 메인함수주소 찾기 debugging 심볼 있을때 => gdb에서 start

docker ps 와 docker ps -a 의 차이점 (docker container 확인) & docker start vs docker run - 예전에 썼던 컨테이너 rm없이 재사용하기

도커를 다시 쓰려고 docker run 명령어를 해보면, 다음과 같은 오류가 뜰때가 있다. #도커 이미지 확인 sudo docker images #도커 이미지 ID 이용하여 새로운 컨테이너 제작 sudo docker run -i -t -d -p 9080:8080 --name arvm 3c4869872aac jun@ubuntu:~/jun/CTF/20220226/arvm$ sudo docker run -i -t -d -p 9080:8080 --name arvm 3c4869872aac docker: Error response from daemon: Conflict. The container name "/arvm" is already in use by container "a7f4227f8b123eb3dda71d..

Configuration 2022.03.06
728x90