DAY 1 - 어셈블리언어

i2sec/Reverse Engineering 2014. 4. 25. 23:21

1.리버스 엔지니어링이란?

- 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일을 말한다.

  즉, 실행파일을 분석해 소스코드를 알아내는 일


2.어셈블리언어란?

-기계어와 1:1 대응관계에 있는 언어를 말한다.

3.바이너리 디버거 종류

- Olly DBG

  =http://ollydbg.de

  =동적 악성코드 분석시 사용


- IDA Pro

  =http://hex-rays.com/odapro/idadown.htm

  =그래프뷰 기능 존재, 정적 악성코드 분석시 사용


-WinDBG

  =http://www.microsoft.com/whdc/devtools/debugging/default.mspx

  =MS사에서 제작

 =Kernel + User 디버깅 가능 (명령어로 입력해야되는 것이 단점)


4.레지스터

-cpu내에 존재하는 저장공간으로 읽는 속도가 가장 빠르다



32bit General-Purpose Resgisters (32bit 범용 레지스터)

 EAX

EBP 

 EBX

ESP 

 ECX

ESI 

 EDX

EDI 


 EFlAGS

 

 AF

 CF

OF 

PF 

SF 

ZF 


 EIP

 

 


*EAX 

 =누산기, 산술연산을 저장 하는 공간

 =리턴값 저장에 주로 사용


*EBX

 =간접 주소 저장 공간

 = ex> JMP 1000(1000 주소로 이동) == EBX =1000, JMP EBX


*ECX

 = 반복 카운터(반복문에서 사용)

 = 반복이 한번 진행될때마다 안의 값은 하나씩 감소

 = ECX>0

 = ECX=5  == 5번 반복


*EDX

 = EAX의 보조역할

 = ex>64bit의 값을 EAX에 담을 시 상위 32bit는 EAX에 저장되고 하위 32bit는 EDX에 저장된다.


//EBP와 ESP는 stack과 연관

*EBP

=스텍 프레임의 기준점(고정)


*ESP

=스텍 프레임의 최상단(유동적)


*스텍은 높은 곳에서 낮은 곳으로 변수 생성(그림에서는 올라가고 있지만 실질적으로는 주소 감소)


//ESI 와 EDI는 주소와 연관

*ESI

=시작 주소 저장


*EDI

=도착 주소 저장


*EFALGS

=상태값 저장(0,1) -> 1:set , 0:clear

=종류 : AF,CF,OF,PF,SF,ZF


*AF,CF,OF

=>자리올림=1, 자리내림=0


*PF

=> 짝수=1, 홀수=0


*SF

=> 음수:1, 양수 :0


*ZF

=> 산술 연산 결과 저장

=> (산술연살 결과 = 0) == 1 , 나머지 == 0 


*bit별 명칭 분류

EAX 

 

 4byte(32bit)


 AX

 

 2byte(16bit)

 AH / AL

 

 1byte(8bit)

 

 1byte(8bit)



*64bit 레지스터

=32bit 레지스터 앞에 'E'가 붙는데 이것을 'R'로 바꾸면 된다.

=ex> RAX,RCX,RDX


출처 == i2sec



'i2sec > Reverse Engineering' 카테고리의 다른 글

Day-02 어셈블리어  (0) 2014.04.28

TCP/IP

i2sec/Network hacking 2014. 4. 25. 22:13

1. TCP/IP란?

-일상 생활에서 가장 많이 사용하는 통신 프로토콜


2.TCP/IP 4 Layer



1)네트워크 인터페이스 계층

1.OSI 7 계층의 데이터 링크 계층과 물리 계층에 해당

2.MAC 주소를 통해서 통신

    └> 데이터링크계층의 MAC 계층에 의해 사용되는 48bit의 하드웨어 주소

    어떠한 네트워크 카드도 동일한 MAC주소를 가지지 않는 고유한 주소 (16진수로 표현)

    AA : BB : CC : DD : EE : FF

      │                 └>RANDOM한 값(중복 x)

└>제조사 고유 주소(회사 이름이 나올 수도 있다)


3.CSMA/CD :내부통신을 원할하게 하기 위한 통신 방식

   =Carrier Sense : 네트워크에 작업이 있는지 없는지 확인(충동을 피하기 위해)

   =Multiple access : 아무도 통신하고 있지 않을때 자유롭게 통신

   =Collision Detection : 거의 동시에 통신을 하여 충돌 방생

(충동이 발생하면 잼신호를 생성하는데 잼신호는 Carrier Sense로 돌아가게 한다)


4.Ethernet : 근거리에 위치한 컴퓨터간에 데이터 전송이 가능하도록 하는 통신 기능

    현재 가장 널리 사용되는 LAN연결 방법

    CSMA/CD 사용

   Ethernet 구조

Preamble 

Destination Address 

Source Address 

Ether Type 

Data 

FCS 

= Preamble(8 byte) : 프레임의 시작과 끝을 알려 주는 부분(보내는 부분의 시작과 끝을 알아야 통신이 가능하다)

Destination Address(6 byte) : 프레임이 전송되어야 할 목적지 MAC 주소가 들어가는 부분

Source Address(6 byte) : 프레임을 전송하는 호스트의 MAC주소

=Ether Type(2 byte) : 프레임이 어떤 프로토콜 타입과 연계되어 있는지 명시하는 부분

=Data(46 ~ 1500 byte) : 우리가 실질적으로 보내고 싶은 데이터가 담기는 부분

   필드의 크기가 46 ~ 1500 byte인 이유는 최소 전송크기와 최대전송 크기때문인다.

   최소 전송크기보다 작으면 쓰레기값을 넣어서 전송하고 최대 전송 크기보다 크면 쪼개서 보낸다

=FCS(4 byte) : 프레임의 오류를 체크 , CRC라고도 불림


2)인터넷(IP) 계층

1. 네트워크 계층

  = Forwarding : 패킷이 라우터의 입력 링크에 도달 시 라우터는 패킷을 적절한 출력링크로 이동 시켜야함

     즉, 패킷을 보내주는 것

  = Routing : 송수신자가 패킷을 전송할 때 패킷경로를 결정함 (경로를 하나 지날때 마다 1Hop씩 증가)


2. IP(Internet Protocol)

  =대표적인 네트워크 계층의 프로토콜

  =32bit의 2진수(0,1)로 구성

  =실제 표시는 8bit 단위로 점을 찍고 10진수로 표시

       ex> 192.168.1.67  ==  11000000 . 10101000 . 00000001 . 10000011


3. IP 주소 구성

 = 네트워크 주소 : 호스트가 연결되어 있는 네트워크 확인

 = 네트워크의 호스트 중에 하나의 특정 호스트 확인


Class Type 

Netid 

Hostid 

ex> ip: 192.168.0.24                        ==>  Netid : 192.168.0.0

      subnet : 255.255.255.0                      Hostid : 24

*네트워크 주소와 호스트 주소 구별방법

   1. 같은 네트워크에 존재하는 2개 이상의 IP 비교

   2. 서브넷 마스크 확인


4. IP Class                       Byte1                    Byte2                    Byte3                    Byte4

<----------------><----------------><----------------><---------------->

 Class A

 Netid(255.0.0.0)

 Hostid (2의 24승 개)

 Class B

 Netid(255.255.0.0)

 Hostid (2의 16승 개)

 Class C

 Netid(255.255.255.0)

 Hostid (2의 8승 개)

 Class D

 Multicast address

 Class E

 Reserved for future use

*class D 와 class E는 사용하지 않는다.


5. 사설 IP

=장점 : IP 주소를 절약할 수 있습니다.

    내부에서 외부로는 접근이 가능하지만 외부에서 내부로 접근이 불가능(방화벽 기능)

    외부에서의 웜바이러스나 해킹등에 안전


=단점 : 공유기를 이용하여 인터넷을 사용할 경우 공유기에 따라 가끔 오작동을 하는 경우가 있다.

           외부에서 직접 접근이 불가능하므로 게임이나 기타 P2P프로그램의 일부 기능을 이용하지 못할 경우도 있다.


=사설 IP 대역

  A Class :        Netid       : 10.0.0.0/8

                사용가능 주소 : 10.0.0.0 ~ 10.255.255.254

    subnet mask  :  255.0.0.0


  B Class :        Netid       : 172.16.0.0/16

                사용가능 주소 : 172.16.0.1 ~ 172.31.255.254

    subnet mask  :  255.240.0.0


  C Class :        Netid       : 192.168.0.0/24

                사용가능 주소 : 192.168.0.1 ~ 192.168.255.254

    subnet mask  :  255.255.0.0


* Netid 뒤에 " /8, /16, /24"는 서브넷 비트수를 의미

*C Class의 사설 IP는 B Class부터 시작할 수 있다 그러나 구분짓기 위해서 C Class로 표시






출처 == i2sec

'i2sec > Network hacking' 카테고리의 다른 글

day04 - 네트워크 이론  (0) 2014.04.28
Network + OSI 7 Layer  (0) 2014.04.25
정보통신  (0) 2014.04.25
네트워크 해킹 시작..  (0) 2014.04.23

Network + OSI 7 Layer

i2sec/Network hacking 2014. 4. 25. 20:57

1. 네트워크란?

  -Net +Work : 그물 + 일하다.

  -컴퓨터간의 대화를 나누는 것


2. 네트워크 발전 과정

  음성회선 - PSTN - 디지털 전용회선(일반인터넷) - 데이터 전용교환망 - 종합통신망(IP TV + 인터넷 + IP 전화 를 가능하게 한 것)


3. 네트워크 종류

  - 피어 투 피어 네트워크

: P2P. 망 내에 있는 각각의 컴퓨터는 동등(Peer)계층 다른 모든 컴퓨터에 대하여 서버로서 동작하고 동시에                    클라이언트로서 동작한다.


  - 클라이언트 / 서버 네트워크

: 클라이언트는 다른 프로그램에서 서비스를 요청하는 프로그램이며, 서버는 그 요청에 대한 응답을 해주는               프로그램이다.





LAN : 회사,학원,PC방과 같은 소규모 네트워크

MAN : 도시,구 같은 중간 규모 네트워크

WAN : 나라정도의 대규모 네트워크


4. 네트워크 토폴로지

1.Star Topology : 중앙의 시스템과 개별 호스트는 Point to Point 방식으로 연결되어 있다.


*중앙 집중 방식으로 중앙시스템으로 통제가 용의하나 중앙 이스템이 죽으면 전체 네트워크가 죽는 단점이 있다.


2.Bus topology : 네트워크상의 모든 호스트들이 하나의 케이블에 연결된 형태






*한 시스템이 죽어도 다른 시스템에는 지장이 없다.

 그러나 시스템 오류가 발생 했을 시 찾기 힘들고 관리가 힘들다.(대부분 네트워크 형태)

*터미네이터 : 네트워크상에 떠돌고 있는 패킷들을 지워주는 역할


3.Ring Topology : 버스 토폴로지 형태와 비승, 양 종단이 서로 연결되어 링형을 이룸


*절대 충돌이 발생하지 않는 장점을 가지고 있다.

 토큰이라는 것을 통해 토큰에 정보를 담아 통신을하는데 토큰이 올때까지 대기해야되서 속도가 느리다는 단점이 있  다.


4.Mesh Topology : 모든 네트워크 또는 컴퓨터들이 네트워크상이나 개별적으로 네트워크와 연결된 형태


*네트워크가 끊어질 일이 거의 없어 가용성이 극대화되어 있다.

 비용이 많이 든다는 단점이 있다.


5. OSI 7 Layer

  *정의 : 국제 표준 기관 ISO가 개방형 통신을 할 수 있게 만든 모델, 통신을 위한 7가지 절차


OSI 7 Layer

PDU 

Device 

 7 Layer

 응용(Application) 계층

 

 

  6 Layer 

 표현(Presentation)계층

 5 Layer

세션(Session) 계층

 4 Layer

 전송(Transport) 계층

 Record or Segment

 TCP / UDP, ICMP등

 3 Layer

네트워크(Network)계층 

 Packet or Datagram

 Router, L3 switch

 2 Layer

데이터링크(Datalink) 계층 

 Frame

 Switch, Bridge

 1 Layer

물리(Physical) 계층 

Bit 

 Repeater, Hub


*1 Layer - Physical

-Bit 단위(0,1)

-전기, 기계 기능적인 특성을 이용하여 통신 케이블로 데이터 전송

-대표 장비 : 리피터, 허브


*2 Layer - Data Link 

-Frame 단위

-물리적 링크를 통해 데이터를 신뢰성 있게 전송하는 계층. 네트워크를 통해서 데이터가 전송될 때 전송로 역할

-내부통신(게이트웨이를 빠져나가지 않고 통신)에서 사용되면 MAC주소(PC 고유 주소)를 이용하여 통신한다.

-대표장비 : 브릿지 , 스위치


*3 Layer - Network

-packet 단위

-라우팅 프로토콜을 사용하여 최적의 경로를 선택

-외부통신(게이트웨이를 나가서 통신)에서 사용되며 IP를 이용해서 통신한다.

-대표장비 : 라우터

-ex>네이버 접속하는 실제 형태 : pc -> Gateway -> DNS Server -> www.naver.com


*4 Layer - Transport

-Segment 단위

-프로토콜(TCP, SPX등)과 관련된 계층으로, 오류 복구, 흐름 제어 담당

-두 시스템간의 신뢰성 있는 데이터 전송을 보장

-시스템 종단 간에 투명한 데이터 전송을 양방향으로 행하는 계층

-TCP : 신뢰성 있는 전송 방식 , 신뢰성 검사 때문에 UDP보다 속도가 느리다, 연결지향형



-UDP : 비신뢰성 전송 방식, 신뢰성 검사가 없어 TCP보다 속도가 빠르다, 비연결지향형

    요청이 들어오면 연결이 되어있는지 확인하지않고 일단 보내는 형식



6.INTERNET

-TCP/IP 프로토콜 모음을 사용하는 네트워크들의 집합

 -국내 인터넷 현황










출처 == i2sec


'i2sec > Network hacking' 카테고리의 다른 글

day04 - 네트워크 이론  (0) 2014.04.28
TCP/IP  (0) 2014.04.25
정보통신  (0) 2014.04.25
네트워크 해킹 시작..  (0) 2014.04.23