Reversing(4)
-
abex'crack 1 분석
스택의 역할 1. 함수의 로컬 변수 저장 2. 함수의 return address 저장 3. 함수 매개변수 전달 스택의 특징 1. 높은 주소 -> 낮은 주소 ... pop -> ESP 증가 ... push -> ESP 감소 ESP의 초기 값: 스택 메모리의 아래쪽에 있다. abex' crackme 1 분석 확인을 한 번 눌러봅시다. 이 글만 보고는 뭘 어떻게 크랙하라는건지 잘 모르겠습니다. ollydbg로 한 번 뜯어봅시다. 오홍 ※ crackme 샘플은 보통 serial key를 맞추는 것이 대부분인데 abex #1이 조금 특이하다고 합니다. ollydbg로 실행시켜 본 파일의 디스 어셈블리(기계어-> 어셈블리어 코드) 코드입니다. EP 코드가 매우 짧은데 그 이유는 abex' crackme 파일이 어셈..
2019.10.03 -
IA-32 Register 설명
CPU 레지스터란? - 레지스터(register)란 CPU 내부에 존재하는 다목적 저장 공간입니다. - CPU 내부의 RAM 보다 속도가 훨씬 빠르고 작은 다목적 저장 공간 레지스터를 알아야하는 이유 - 어셈블리 명령어의 대부분은 레지스터를 조작하고 그 내용을 검사하는 것들인데 정작 레지스터를 모르면 명령어 자체도 이해하기 힘들어지기 떄문입니다. 리버싱에 초 단계에서는 기본 프로그램 실행 레지스터에 대해 알아두어야 합니다. 디버깅을 할 때 가장 많이 보게 될 레지스터 입니다. 기본 프로그램 실행 레지스터(Basic program execution register) - 기본 프로그램 실행 레지스터는 다시 4개의 그룹으로 나눌 수 있습니다. 1. General-Purpose Register(범용 목적 레지스..
2019.09.10 -
컴퓨터 구조 01 -제어장치와 명령어
제어장치란? : 제어 장치는 모든 장치가 유기적으로 동작할 수 있도록 하고, 주기억 장치에서 명령어를 가져와 해독하여 결과에 따라 제어 신호를 컴퓨터 시스템 내의 각 부분으로 전달하는 장치다. 제어 장치의 역할 1) 입력 장치에서 입력된 데이터를 기억 장소에 저장한다. 2) 기억 장치에 있는 데이터를 연산 장치로 이동시킨다. 3) 연산 장치에서 연산이 완료되면 그 결과를 다시 기억 장치로 이동시킨다. 4) 기억 장치에 저장된 데이터를 출력 장치로 이동시켜 출력시킨다. 제어 장치의 구성 요소 주소 레지스터(MAR: Memory Address Register) : 주기억 장치에 명령이나 자료가 기억되어 있는 주소를 보관한다. 기억 레지스터(MBR: Memory Buffer Register) : 명령어 계수기..
2019.06.25 -
컴퓨터 메모리&레지스터 구조
시스템이 초기화 되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역을 확인하게 된다. 시스템은 운영에 필요한 기본적인 명령어 집합을 커널에서 찾는다. 커널이란? 컴퓨터의 운영체제의 핵심이 되는 컴퓨터 프로그램의 하나로, 시스템의 모든 것을 완전히 통제한다. 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. Process & Segment 우리가 알아야 할 것은 하나의 프로그램이 실행되기 위한 메모리 구조이다. 운영체제는 하나의 프로세스를 실행시키면 이 프로세스를 segment라는 단위로 묶어서 가용 메모리 영역에 저장시킨다. 하나의 segment는 위 그림처럼 오른편에 나와있는 구조를 갖고 있다. 각각을 code segment, stack segment,..
2019.06.19