반응형



① 가상메모리

 - 위치 : 가장 왼쪽 부분

 - 설명 : 프로그램이 실행이 되면 프로세스가 되어 메모리에 올라가는데 이 때의 메모리는 [가상메모리]이다. 가상 메모리는 물리메모리를 효율적으로 사용하기 위해 운영체제가 사용하는 시스템으로 이 때 물리메모리는 컴퓨터 사양에 나오는 메모리( ex, 8G메모리, 16G메모리)를 말한다.


② 기계어코드

 - CPU가 읽어들어 실행하는 코드

 - 알아볼 수 없는 숫자로 되어있다.


③ 어셈블리어

 - 기계어코드와 1:1 매핑하여 사람이 알아보기 쉽도록 만든 언어


④ 주석

 - ;을 이용하여 작성 가능


⑤ 레지스터

 - CPU가 사용하려고 가지고 있는 데이터 

 - EAX (누산기) : 계산에 대한 저장을 하는 데이터, 함수의 결과가 저장되는 레지스터

 - EBX (Base Register) : 다목적으로 사용

 - ECX (Counter Register) : 숫자를 카운팅하기 위해 사용 (ex 반복문)

 - EDX (Data Regiester) : 다목적으로 사용

 - ESI (Source Index) : 암복호화 혹은 데이터 복사 등을 위한 출발지

 - EDI (Destination Index) : 암복호화 혹은 데이터 복사 등을 위한 목적지

 - EBP (Base Pointer) : 스택의 아랫부분을 가리키는 포인터

 - ESP (Stack Pointer) : 스택의 윗부분을 가리키는 포인터

 - EIP (Index Pointer) : CPU가 다음에 실행할 명령어 주소


⑥ 덤프

 - 데이터를 볼 때 많이 사용

 - 컴퓨터의 경우 hex 코드로 저장되어 있는데 이를 영문자로 보여주는 것이 ASCII 코드


⑦ 스택

 - 실제로 데이터가 저장되는 공간

 - 스택은 가상 메모리의 또다른 공간에 따로 존재함

 - ESP와 EBP를 통해 스택이 구성되어있고, Relative 기능을 이용하여 ESP와 EBP로부터 얼마나 떨어져있는지 확인이 가능함.


※ EAX의 구성

 - EAX= Extension AX으로 4바이트(32bit)를 나타냄

    ex) 12345678

 - AX = EAX의 반으로 2바이트(16bit)를 나타냄

    ex) 5678

 - AH / AL = A High와 A Low로 각각 상위와 하위의 1바이트(8bit)를 나타냄

    ex) 56 과 78


※ Ollydbg 단축키

 - Ctrl + F2 : 재시작

 - F8 : 한 스텝(Over) 진행

 - F7 : 한 스텝(Into) 진행

 - Enter : 실행이 아닌 그냥 따라가서 해당 위치 확인

 - Ctrl + g : 해당 주소로 이동

 - F2 : BreakPoint ( udd에 저장되기 때문에 Ollydbg를 끄고 다시 실행해도 남아있다)

 - F9 : 실행 

 - Space bar : Assembly 언어 수정


※ 특정 함수에 대해 알고 싶을 때

 - 구글에 해당 [함수명 + msdn] 으로 검색하면 됌.

 ex) CreateFileA msdn 

 - 접근하면 해당 함수에서 필요로하는 인자값들과 리턴값 등에 대해 자세히 알 수 있음.


 명령어

 - CMP : 두 값을 비교 후 일치할 경우 Zero Flag가 1로 세팅

 - JNZ : Jump if Not Zero의 명령어로 zero flag가 1이 아니면 점프를 해라. 즉, 비교 결과 "일치하지 않을 경우 점프를 해라" 라는 의미이다.

 - TEST EAX, EAX : EAX에 0이 들어가있는지 TEST를 한다. 만약 EAX에 0이 들어가있을 경우 Zero Flag가 1로 세팅

 - JL, JG, JE = Jump Less-than, Jump Greater-than, Jump Equal 의 명령어로 바로 위에 있는 CMP 명령어의 결과에 따라 분기함. JL의 경우 S Flag가 세팅되어있으면 Jump 함.


※ 분기문 수정

 - 항상 넘어가게 하고 싶을 때는 분기문(JL, JNZ 등등)을 JMP 명령어로 수정하여 항상 점프하도록 변경

 - 반대로 항상 넘어가지 않도록 하고 싶을 땐 해당 분기문을 nop 명령어로 수정하여 해당 분기문을 실행하지 않도록 수정

반응형

'Hacking > Reversing' 카테고리의 다른 글

Visual Basic 파일 분석  (0) 2018.11.18
3월 5일자  (0) 2018.03.05
immunity debugger가 바로 꺼질 때 해결  (2) 2016.01.03
블로그 이미지

rootable

,