mgchem's log
Lab2: Bomblab (phase 4)
Study/CS 2023. 10. 8. 02:25

Overview (gdb) disas phase_4 phase_4 함수의 구성을 살펴보자. Defusing phase 4 input int 3개(x, y, z)를 0x14(%rsp), 0xc(%rsp), 0x10(%rsp)에 저장 52 57 y가 0xe = 12보다 작거나 같으면 120으로 120 x가 0보다 크면 64로 64 72 x는 0x3c8과 같아야 함 => x == 968 74 esi에 15 저장 79 edi에 y 저장 83 func4 call eax == 1에 3곱하고 1더하기 14회 하면 7174453 결과가 z와 같아야함 => z == 7174453

article thumbnail
Lab2: Bomblab (phase 3)
Study/CS 2023. 10. 8. 01:51

Overview (gdb) disas phase_3 phase_3 함수의 구성을 살펴보자. 길이가 길다. 주요 부분만 살펴보자. %rsp+0xc, 0x10, 0x14 위치를 rdx, rcx, r8에 미리 저장한다. 입력할 data는 세 개이고 stack의 해당 위치에 저장될 것이다. 입력값을 각각 x, y, z로 두자. 입력한 data 개수가 2개 이하일 경우 폭탄이 터진다. x는 100 이상이어야 한다. Defusing phase 3 input int 3개(x, y, z)를 0xc(%rsp), 0x10(%rsp), 0x14(%rsp)에 저장 x >= 100 임시로 x = 100 60 eax에 x 저장 64 ecx에 x-100 저장 67 edx에 0x2e8ba2e9 = 780903145 저장 72 eax..

article thumbnail
Lab2: Bomblab (phase 2)
Study/CS 2023. 10. 8. 01:46

Overview (gdb) disas phase_2 phase_2 함수의 구성을 살펴보자. Disassembled code를 보고 대략적인 흐름을 파악한다. 1. 0x132d에서 read_six_numbers 함수를 call한다. 숫자 6개를 입력하면 될 것이고, 실질적으로 우리가 집중해서 봐야 할 부분은 입력값을 받은 이 이후가 될 것이다. 2. stack의 가장 앞에 저장된 값이 1 이하면 폭탄이 터진다. 3. 0x1349 ~ 0x1361은 loop이다. 4. %rbx는 index로 초기값은 0x1338에서 1로 주어졌다. stack 내에 저장된 값(아마 우리가 입력한 숫자 6개?)과 loop 내 과정을 통해 만들어진 %eax에 저장된 값을 비교하여 다를 경우 0x1363으로 넘어가 폭탄이 터진다. ..

article thumbnail
Lab2: Bomblab (phase 1)
Study/CS 2023. 10. 7. 13:00

Bomblab bomb-quiet를 해결했으니 이제 본게임으로. Bomblab은 phase 1 ~ phase 6 (+secret phase?) 로 구성되어 있다. 전체 코드를 disassemble하여 읽어보기에는 너무 길기에, gdb를 실행하고 disas phase_1처럼 특정 함수 부분만 disassemble하여 살펴보는 편이 효율적이다. Defusing phase 1 phase_1 처음부터 한 줄씩 실행시키기 위해 phase_1에 breakpoint를 설정한다. phase 1을 해결하면 바로 phase 2로 넘어갈테니 혹시나 실수로 터뜨리는 일을 방지하기 위해 phase_2와 explode_bomb에도 break를 걸어준다. strings_not_equal로 가기 전 0x12f8에서는 %rsi에 0x..

article thumbnail
Lab2: Bomblab (bomb-quiet)
Study/CS 2023. 10. 7. 05:04

Bomblab 시스템프로그래밍 Lab2 Bomblab이 나왔다. 나온지는 지난 9/26부터 시작하여 열흘도 넘었지만 ... 어셈블리어 해석과 gdb 사용이 처음인터라 익숙해지는데 오래도 걸렸다. 학생이 본인의 학번과 이메일 주소를 입력하여 bomb 파일을 요청하면 bomb1, bomb2, bomb3, ... 순으로 배정되는 방식이었다. 직전 과제였던 Lab1: Datalab 제출 마감된 날에 바로 열렸던 것으로 기억하는데, 나는 공지 올라오자마자 배정받았지만 도무지 진도가 나가질 않았다. datalab에서 skeleton code에 내용을 채워넣던 것을 생각하던 내겐 굉장히 당황스러운 과제였다. 배정받은 binary 형식 bomb 파일은 phase_1 ~ phase_6 (+secret phase)로 구성..

article thumbnail
여행 준비 - 3. 페낭 교통편 및 숙소 결정
여행/🇲🇾 - 🇸🇬 2023. 6. 3. 13:52

말레이시아 - 싱가포르 여행 준비 기록 말레이시아 - 싱가포르 여행을 결심하기까지 여행 준비 - 1. 여행 기간 및 대략적인 동선 결정 여행 준비 - 2. 쿠알라룸푸르 교통편 및 숙소 결정 5/27 (D - 10) 쿠알라룸푸르 ~ 페낭 교통편 결정 페낭 주 중에서도 조지타운을 중심으로 여행할 생각이었기 때문에 페낭 섬으로 들어갈 방법을 찾아야 했다. 쿠알라룸푸르에서 머물 숙소가 KL Sentral 주변에 위치하고 있어 KL Sentral에서 페낭 조지타운까지의 교통편을 찾기로 했다. KL Sentral은 많은 철도와 운행 노선이 모이는 역이기 때문에 다양한 선택지가 있었다. 교통편은 크게 3가지로, 항공편, 고속버스, 기차(+페리)가 있다. 1. 항공편 (KLIA ~ 페낭 국제공항) 페낭 국제공항은 페낭..

article thumbnail
SM5(`98~`05) SM520 에어컨 필터 교체
일상 2023. 6. 3. 01:59

갑자기 차량 이야기 한참 여행 준비하다 갑작스럽지만 우리 집 차량 에어컨 필터 교체라는 중책을 맡게 되었다. 우리 집은 르노삼성 SM5 1세대(`98~`05 모델) SM520을 운행한다. 연식은 나보다 조금 덜 친구지만 장거리 운행할 일이 거의 없어서 연식 대비 주행거리는 적은 편이다. 그 덕분인지 가끔씩 공업사 들러서 정비하는 정도로 큰 문제없이 굴러갔다. 에어컨필터도 다른 일로 공업사 들를 때 간 김에 같이 교체해서 오곤 했다. 그렇게 마지막 교체 후 꽤 시간이 지나서 다시 에어컨을 사용하는 시기가 돌아왔는데, 켜는 순간 차내에 비염 환자도 알 수 있을 만큼 이상한 냄새가 풍겼다. 에어컨 필터를 교체할 시기가 돌아온 것이다. 이제 여름의 초입이고 앞으로 계속 더워질 텐데, 조만간 딱히 공업사 갈 일도..

article thumbnail
여행 준비 - 2. 쿠알라룸푸르 교통편 및 숙소 결정
여행/🇲🇾 - 🇸🇬 2023. 6. 2. 00:01

말레이시아 - 싱가포르 여행 준비 기록 말레이시아 - 싱가포르 여행을 결심하기까지 여행 준비 - 1. 여행 기간 및 대략적인 동선 결정 5/24 (D - 13) - KLIA2 ~ 쿠알라룸푸르 교통편 결정 우리는 에어아시아 항공을 이용하여 인천 국제공항에서 쿠알라룸푸르 국제공항으로 이동할 예정이다. 에어아시아 항공은 쿠알라룸푸르 국제공항 제2터미널(KLIA2)에 도착하는데, 공항부터 쿠알라룸푸르 시내까지의 거리가 멀다. KLIA2에서 부킷 빈탕(쿠알라룸푸르의 중심지역)까지 도로 기준 57km 내외니... 숙소를 쿠알라룸푸르 내 어디로 잡든 먼저 시내로 들어갈 교통편을 조사할 필요가 있다. 교통편은 크게 3가지로, 공항철도, 공항버스, 택시가 있다. 1. 공항철도 (KLIA Ekspres) 공항철도 홈페이지..

article thumbnail
여행 준비 - 1. 여행 기간 및 대략적인 동선 결정
여행/🇲🇾 - 🇸🇬 2023. 5. 30. 20:43

* 우리는 동남아 여행을 가기로 결정한 게 다소 늦은 편이다. 해외여행을 계획할 때 몇 달 전부터 비행기표 특가 예매하는 경우도 있고, 이 부분은 취향 차이라 생각한다. 적어도 20대 P 남자 3명이서 2주 여행 준비하는 데는 3주 남짓한 시간이면 충분한 듯하다. 5/16 (D - 21) - 의견 조율 당초 계획했던 호주 워홀이 엎어지고 말레이시아/싱가포르 여행으로 의견이 모아졌다. 다만 충분한 고민을 거치지 않고 말레이시아? 싱가포르? 괜찮은 듯~ 수준의 의견 합치라 자세한 조율이 필요하다. 출국일, 입국일, 말레이시아에서 싱가포르로는 언제 넘어갈 건지 등 여행 일정을 아직 아무것도 정하지 않은 상태이다. 일단 떠오르는 대로, 어디서 보고 들은 내용을 바탕으로 브레인스토밍을 진행했다. 나온 내용을 정리..