CSE23 [네트워크] HTTP 기본 모든 것이 HTTPHTTP 메세지에 모든 것을 전송한다.HTML, JSON 등 거의 모든 형태의 데이터를 전송 가능하다 우리가 주로 사용하는 것은 HTTP/1.1 버전이다. 현재 HTTP2, 3이 나왔다. HTTP/1.1, HTTP/2는 TCP를 사용하고, HTTP3은 UDP를 사용한다. HTTP 특징클라이언트 서버 구조무상태 프로토콜, 비연결성HTTP 메시지단순함, 확장가능 클라이언트 서버 구조Request, Response 구조클라이언트는 서버에 요청을 보내고, 응답을 대기서버가 요청에 대한 결과를 만들어서 응답 -> 서로 독립적으로 움직인다는 장점이 있다. Stateful, Stateless 차이상태유지상태유지는 위와 같이 점원(서버)가 클라이언트의 정보를 기억한다.-> 중간에 점원이 바뀌면 안된다.. 2025. 3. 25. [네트워크] URI와 웹 브라우저 요청 흐름 URIuri는 로케이터, 이름 또는 둘 다 추가로 분류될 수 있다.위와 같은 형태로 되어있고, URN은 리소스에 이름을 부여한 것인데, URN이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어있지 않다. uri의 단어 뜻은 이렇다. 자원을 다른 항목과 구분하는데 필요한 정보라는 것을 뜻한다. URL 분석전체적인 구조는 위와 같다. scheme주로 프로토콜을 사용한다.(http, https 등)http는 80포트를 쓰고, https는 443 포트를 사용해서 포트번호는 생략이 가능하다 userinfoURL에 사용자 정보를 포함해서 인증하는 방식인데 거의 사용하지 않는다. host호스트명이다. 도메인명 또는 ip주소를 직접 사용 가능하다 port포트는 접속포트이다. 일반적으로 생략하는데, http는 80.. 2025. 3. 18. [네트워크] 인터넷 네트워크 인터넷 통신클라이언트와 서버가 어떻게 통신할까? 둘 사이가 멀지 않다면 그냥 통신하면 되지만,만약 거리가 멀다면 인터넷을 통해 통신을 해야한다. IP(인터넷 프로토콜)클라이언트와 서버는 ip주소를 통해 서로 정보를 주고받는다.이때 패킷이라는 통신 단위로 데이터를 전달한다.패킷은 위와 같이 ip주소 등의 데이터를 가지고 있다. 정상적인 패킷의 흐름은 위와 같다.하지만, 서버가 꺼져있거나, 중간에 패킷이 사라지거나, 패킷이 순서대로 오지 않거나, 같은 ip를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 문제가 발생할 수 있다 TCP, UDP인터넷 프로토콜은 위와 같이 4계층으로 이루어져있다. 전체적인 프로토콜 계층은 다음과 같다.애플리케이션 계층에서는 웹브라우저가 있고, 이 소켓을 OS에 전달한다.. 2025. 3. 18. [BombLab] 환경설정 만약 윈도우 노트북을 가지고 있고, 우분투가 설치되어있다면 이 과정은 전부 건너뛰어도 됩니다! 이 앱이 있으면 우분투가 설치된겁니다!(버전은 22.04, 24.04 상관 없음) 우리는 x86_64 아키텍쳐를 기반으로 실행되는 밤랩을 해야하는데, 맥북의 경우 arm64 아키텍쳐입니다.따라서 맥북 내에서 이를 실행하는 것은 불가능하고, 우분투 서버를 만들어서 실행해야합니다.(아마 시스템프로그램에서 하는 찐 밤랩은 따로 서버가 있어서 이에 대한 문제는 없을 것입니다.) 윈도우는 우분투를 깔아서 컴퓨터 내에서 실행할 수 있지만, 제가 보기에 우분투를 설치하는 것보다 서버를 만들어서 하는 방법이 더욱 간편해서 우분투 설치가 안되어있으시다면 아래 방법을 따라하시는 것을 추천드립니다. 아주 간단하니까 겁먹지 말고 따.. 2024. 10. 6. [BombLab] phase_6 해설 드디어 마지막이다!마지막인만큼 좀 길다ㅜㅜ phase_6 disassemble이제 이 부분을 보면 6개의 숫자를 입력받는 phase라는 것을 유추할 수 있다. 나는 임의로 1 2 3 4 5 6을 넣어보겠다. 위 코드들을 보면 $r13에 있는 수가 eax로 들어가고, eax에 있는 수에서 1이 한번 빼진 후 5와 비교를 한다.만약 6보다 작거나 같으면 52번으로 넘어가고 그렇지 않으면 폭탄이 터진다.그럼 r13에 우리가 입력한 값들이 들어있다는 것을 유추할 수 있다. 확인해보면맞다. 이를 통해 처음 입력하는 숫자는 6보다 작거나 같아야한다는 것을 알 수 있다. 여기서는 이중 반복문이 실행된다.(32에서 93, 65에서 87)52번으로 분기 한 후 r12d에 1을 더한다. 지금 r12에는 0이 들어있으니까 .. 2024. 9. 11. [BombLab] phase_5 해설 이제 phase_5 해설을 해보겠다. phase_5 disassemblephase_5의 전체적인 코드는 위와 같다.나는 임의로 hispgs를 입력하였다. 를 보면 string_length를 호출하고 리턴값인 eax의 값이 6인지 확인한다.이를 통해 입력되어야 하는 값은 6글자의 string이라는 것을 유추할 수 있다. 그 다음 쭉 내려가보면 eax에 0을 넣는 과정을 거치고 41번부터 70번을 6회 반복한다. 이를 통해 한 글자씩 어떤 변형을 하는구나! 라는 것을 알 수 있다. 이후 strings_not_equal을 통해서 두 string을 비교한다. 이건 phase_1에도 나온 함수이다.이 떄 esi에 특정 주소에 있는 값을 넣는다. 이 값을 꺼내보면flyers라는 string이 나온 걸 볼 수 있다... 2024. 9. 10. 이전 1 2 3 4 다음