일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 소프트맥스함수
- FTZlevel10
- 보안
- 파이썬신경망
- 항등함수
- C알고리즘
- 인공지능
- C언어 알고리즘
- BOF
- 8086CPU레지스터
- C언어알고리즘
- 파이썬
- 백준알고리즘
- c언어
- 밑바닥부터시작하는딥러닝
- 버퍼오버플로우
- 달고나bof
- 활성화함수파이썬
- 딥러닝
- 스트림암호
- 신경망
- 머신러닝
- 신경망구현
- 딥러닝파이썬
- 정보보안
- 알고리즘
- 백준
- 신경망파이썬
- 신경망 학습
- BOJ
- Today
- Total
HeeJ's
[01] 리버싱 시작하기 본문
리버싱에 대해서 공부를 시작하려고 하는데, 혼자 책을 읽고 문제만 풀기엔 너무 막연해서? 집중도 잘 안되고...
블로그에 내가 공부한 내용들에 대해 기록해보면서 잔잔하게 공부를 해보려고 한다.
최근 리버싱과 관련된 활동들을 시작했고, 생 기초도 없던 나이기에 정말 버겁게 느껴진다.
이제부터라도 천천히 조금씩 시작하면 언젠가 나도 리버싱 문제들을 가뿐하게 풀 수 있으리라 생각하며
공부에 사용한 자료; 이승원님의 "리버싱 핵심 원리"
1. 리버스 엔지니어링(Reverse Engineering, RE: 역공학)
제품 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하여 문제를 해결
특정한 기능의 기계, 혹은 프로그램의 라이브러리의 내부 구조를 알 수 없을 때, 뜯어서 분석한 결과를 가지고 동일한 기능을 하도록 새로 만들어 내는 것
: 리버스 코드 엔지니어링(Reverse Code Engineering, RCE)
SW분야의 라버스 엔지니어링.
2. 리버싱(분석) 방법
(1) 정적 분석
: 파일의 겉모습을 관찰하여 분석하는 방법이며 파일을 실행하지 않는다.
파일의 종류, 크기, 헤더 정보(PE), Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인할 수 있다.
디스어셈블러(ex. IDA)를 이용해 내부 코드와 구조 확인
=> 동적 분석 방법에 참고 자료로 사용
(2) 동적 분석
: 파일 실행 -> 행위 분석&디버깅 -> 코드 흐름과 메모리 상태를 살펴보는 방법
파일, 레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위 분석
또한, 디버거(ex. Ollydbg)를 이용하여 프로그램 내부 구조와 동작 원리 분석
* 리버싱 != 디버깅
-> 디버깅은 리버싱 방법 중 비중이 큰 하위 개념에 속한다.
'<Information Security> > <Reversing>' 카테고리의 다른 글
[03] OEP(Original Entry Point) (0) | 2020.06.04 |
---|---|
[02] Ollydbg(1) (0) | 2020.05.14 |