본문 바로가기

전체 글109

[Reversing] 어셈블리어 C로 변환하기 #2 주어진 어셈블리어 main의 명령은 0으로 초기화를 한 변수 3개를 선언하는 것이다. int a, b, c = 0; main에서 L2로 점프하므로 아래 명령으로 이동한다. 그럼 [rbp-12]의 값과 9를 비교하는데 [rbp-12]는 c이다. jle는 만약 앞의 값이 뒤의 값보다 작거나 같으면 점프하라는 의미다. 그러므로 if문을 사용해 표현할 수 있다. 그런데 C언어에서는 jle를 으로 표현해야 한다고 한다. * http://blog.naver.com/PostView.nhn?blogId=67sooon&logNo=10166748134 if (c > 9) c는 9보다 작음으로 조건에 만족해 L5로 점프하게 된다. eax에 c를 넣어 0으로 만든 다음 cdq를 이용해 eax와 edx를 확장한다. 그리고 sh.. 2020. 9. 22.
[Wargame_Dreamhack] rev-basic-3 보호되어 있는 글 입니다. 2020. 9. 22.
[Reversing] PE Header 개념 정리 & wow64 fs redirection PE 파일 PE는 Portable Executable은 이식 가능한 실행 파일이라는 뜻으로 하나의 실행 파일을 여러 운영체제에서 실행 가능하다는 의미다. 유닉스 실행 파일 형식인 COFF(Common Object File Format)을 기반으로 exe, dll, obj, sys 등의 확장자를 가진 파일들이 이에 해당한다고 볼 수 있다. PE 파일 종류 1. 실행 계열 : exe, scr 2. 드라이버 계열 : sys, vxd 3. 라이브러리 계열 : dll, ocx, cpl, drv 4. 오브젝트 계열 : obj VA와 RVA VA > 프로세스 가상 메모리의 절대주소 RVA > ImageBase로부터의 상대주소 (메모리에 로딩된 상태) > PE 메모리에 적재되기 전 기본 ImageBase는 0이다. 그.. 2020. 9. 21.
[Network] TCP 프로토콜 개념 정리 TCP 프로토콜이란? 전송 계층(4계층) 프로토콜 중 하나로 IP 위에서 특정 프로세스까지 패킷을 전달하기 위한 프로토콜이다. 특징 신뢰성 > 데이터의 오류나 누락 없이 안전한 전송을 보장한다 > 오류나 누락이 발생한다면 재전송을 수행해 보정한다 연결 지향성 > 논리적인 연결 통로를 통해 데이터를 주고받아 데이터의 전송 순서를 보장한다. > 스트림 기반의 전송방식을 사용해 데이터를 임의의 크기로 나눠 연속해 전송하는 방식을 사용한다. 혼잡 제어 > 네트워크의 혼잡 정도에 따라 송신자가 데이터 전송량을 제어한다. > 혼잡 정도에 대한 판단 기준은 데이터 손실 발생 유무로 판단한다. 만약 누락이 발생했다면 네트워크가 혼잡한 상태로 판단해 전송량을 조절한다. 흐름 제어 > 상대방이 받을 수 있을 만큼만 데이터.. 2020. 9. 20.
[Network] ARP spoofing 개념 정리 ARP Spoofing? 로컬 네트워크(LAN) 상에서 사용자와 게이트웨이 통신 간에 ARP 테이블의 cache 정보를 속이고 끼어들어 도청하는 것이다. 일반적으로 외부와 통신하게 되면 ARP 테이블에 IP주소와 MAC 주소 값이 저장된다. 그럼 공격자는 이를 이용해 저장되어 정보를 IP는 남겨두고 MAC 주소를 공격자 자신의 AMC 주소로 바꾼다. 공격자는 중간에서 자신의 주소로 바꿔 통신 정보를 전송하며 통신 내용들을 몰래 볼 수 있게 된다. 이가 바로 중간자 공격이다. 이때, 공격자가 원래의 목적지로 정보를 보낼 수 있는데 일부 패킷을 변조해 목적지 PC를 좀비 PC로 만들기도 한다. 서버 내에서의 공격 > 공격자가 취약한 서버를 찾아 공격에 성공하면 서버에 악성코드를 삽입해 접속하는 모든 이용자들.. 2020. 9. 20.
[Network] ARP 프로토콜 개념과 실습 Ethernet(이더넷)이란? 데이터 링크(2계층) 프로토콜 중 하나로 기기 고유의 MAC 주소를 갖고 상호간 데이터를 주고받을 수 있도록 만들어진 프로토콜이다. 1. Preamble & SFD (Start Frame Delimiter) Preamble과 SFD는 헤더로 인식되지 않으며 단지 Frame의 시작을 알려주기 위한 정보이다. 크기는 항상 7byte(Preamble)와 1byte(SFC)로 고정되어 있다. 2. Ethernet Header Destination Address : 목적지(송신) MAC 주소 Source Address : 출발지(수신)의 MAC 주소 * 다른 프로토콜 구조와 다르게 목적지 MAC 주소가 출발지 MAC 주소보다 앞에 있음 Length : 상위 계층에 사용된 프로토콜이 .. 2020. 9. 20.