Latest postings

more

[열혈강의 C 프로그래밍] 2장: 프로그램의 기본구성

[윤성우 저 열혈강의 C 프로그래밍] Chapter 2. 프로그램의 기본구성 더보기 PART 1 : C언어의 기본 Chapter 1. 이것이 C언어다. Chapter 2. 프로그램의 기본구성 Chapter 3. 변수와 연산자 Chpater 4. 데이터 표현방식의 이해 Chpater 5. 상수와 기본 자료형 1. Hello world! 들여다보기 [C언어의 기본단위인 '함수'의 이해] 1. 함수? 적절한 입력과 그에 따른 출력이 존재하는 것 [ 그림 2-1 ] - 입력 : x에 삽입되는 값 - 출력 : 입력의 결과로 얻게 되는 y의 값 2. 함수 관련해서 사용되는 용어 정의 1) 함수의 정의 만들어진 함수, 실행이 가능한 함수 2) 함수의 호출 함수의 실행을 명령하는 행위 3) 인자의 전달 함수의 실행을 ..

C Programming 2016.08.03 0

[열혈강의 C 프로그래밍] 1장 : 이것이 C언어다.

[윤성우 저 열혈강의 C 프로그래밍] 더보기 PART 1 : C언어의 기본 Chapter 1. 이것이 C언어다. Chapter 2. 프로그램의 기본구성 Chapter 3. 변수와 연산자 Chpater 4. 데이터 표현방식의 이해 Chpater 5. 상수와 기본 자료형 1. C언어의 개론적인 이야기 [C언어는 프로그래밍 언어이다.] 1. 언어? 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단 2. 프로그래밍 언어? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어. 3. 컴파일러(compile)? 프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는 일 4. 기계어(Machine Language)? 컴퓨터가 이해할 수 있는 0과 1로 구성된 언어체계..

C Programming 2016.08.02 0

[리버싱 핵심 원리] 3장 : 리틀 엔디언 표기법

03. 리틀 엔디언 표기법 1. 바이트 오더링(Byte Ordering) 데이터를 저장하는 방식 (바이트를 배열하는 방법) 1.1. 리틀 엔디언 & 빅 엔디언 1) 엔디언(Endian) : 여러 개의 연속된 대상을 배열하는 방법 2) 리틀 엔디언(Little Endian) : 데이터를 저장할 때 역순으로 저장 ~ 특징? - 사람이 보기에 직관적이지 않다. - Intel x86 CPU에서 사용 - 산술 연산, 데이터 타입 확장/축소 될 때 더 효율적 3) 빅 엔디언(Big Endian) : 데이터를 저장할 때 앞에서부터 순차적으로 저장 ~ 특징? - 사람이 보기에 직관적 - 대형 UNIX 서버에 사용되는 RISC 계열의 CPU에서 많이 사용 - 네트워크 프로토콜에 사용 1.2. OllyDbg에서 리틀 엔디..

Reversecore 2016.03.19 0

[리버싱 핵심 원리] 2장 : Hello World! 리버싱

02. Hello World! 리버싱 1. Hello World! 프로그램 1.1. HelloWorld.exe 1) HelloWorld.exe 실행 화면파일 2) HelloWorld.exe 소스 코드(HelloWorld.cpp) 1.2. 디버거와 어셈블리 언어 1.2.1. 프로그램 처리 과정 전처리기 -> 컴파일러 ->어셈블러 -> 링커 1) 전처리기 : #으로 시작하는 지시자의 지시에 따라 소스코드를 변경하는 작업 수행 2) 컴파일러 : 소스코드를 어셈블리 코드로 번역하는 작업수행 3) 어셈블러 : 어셈블리 코드를 이진 코드(Binary Code)로 변경하는 작업 수행 4) 링커 : 프로그램 내에서 참조하는 함수, 라이브러리들을 연결시켜주는 작업을 수행 1.2.2. 프로그램 실행 과정 Fetch -> ..

Reversecore 2016.03.13 0

[리버싱 핵심 원리] 1장 : 리버싱 스토리

01. 리버싱 스토리 1. 리버스 엔지니어링(Reverse Engineering, RE : 역공학) 리버스 엔지니어링은 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 2. 리버스 코드 엔지니어링(Reverse Code Engineering, RCE) 리버스 코드 엔지니어링은 소프트웨어 분야의 리버스 엔지니어링 2.1. 리버싱 분석 방법(실행 파일 분석 방법) 1) 정적 분석 : 파일의 겉모습을 관찰하여 분석하는 방법 이 단계에서는 파일을 실행하지 않는다. 또한 디스어셈블러를 통한 내부 코드와 그 구조를 확인하는 과정이다. -> 그냥 파일 겉모습만 확인(크기, 종류, 압축 등등..) 2) 동적 분석 : 파일을..

Reversecore 2015.07.18 0