이전 포스팅에서도 언급 하였듯이, 를 공부하고 포스팅한 글 입니다. 리버스 엔지니어링을 하게 되면, 어셈블리 언어를 다루게 됩니다. 어셈블리 언어의 기본이자 CPU의 기본이 되는 것은 뭘까요? 바로 레지스터입니다. CPU(Central Processing Unit)는 메모리로부터 명령을 가져오고(Fetch), 어떤 명령어인지 해석하고(decode), 그리고 실행(Execute)합니다. 이러한 동작만을 무수히 반복하게 되고, 그렇기 때문에 이렇게 제가 글을 쓰고 인터넷을 할 수 있는 것입니다. (자세한 동작은 Computer Architecture를 공부하면 배울 수 있습니다.) 어셈블리 언어에서는 레지스터를 이용하여 값을 저장하고 조작하게 됩니다. 이러한 레지스터들은 CPU에 존재하는 하드웨어적인 것이기..
이전 포스팅에서도 언급 하였듯이, 를 공부하고 정리할 겸 포스팅한 글입니다. 리버스 엔지니어링을 위해서는 디버깅 툴이 필요합니다. 윈도우 환경의 리버스 엔지니어링을 위해서 가장 많이 사용하는 툴은 올리디버거(OllyDbg)입니다. (참고로 리눅스 환경에서는 gnu debugger, 즉 gdb를 사용합니다.) 올리디버거는 http://www.ollydbg.de 에서 구할 수 있습니다. 1.10 버전 다운로드 설치 후, 해당 폴더에서 Plugin 폴더와 UDD 폴더를 만듭니다. 그리고 BOOKMARK.DLL과 Cmdline.dll은 Plugin폴더로 이동시킵니다. Option->Appearance->Directories를 열고 디렉토리의 경로를 지정한 후에 올리디버거를 다시 실행하면 플러그인 기능을 적용시..
리버스 엔지니어링(리버싱)을 공부하게 되었는데요. 공부하는 것을 정리할겸 포스팅해볼까 합니다. 를 참조하였습니다. 리버스 엔지니어링이란. 줄여서 리버싱 이라고도 하며 프로그램 역분석을 의미. 크랙을 만들기 위한 연구로 잘못 인식되기도 하지만 그런 작업을 통해 악의적 용도로 사용하려는 사람들을 크래커라고 하며, 프로그램 분석을 통해 보안 강화의 목적으로 취약점을 공개하는 사람들을 해커라고 한다. 리버싱의 용도 1. 악성코드의 분석 2. 창의력 증진을 위한 놀이 3. 완성프로그램의 수정, 디버깅 및 호환
- Total
- Today
- Yesterday
- 알고리즘
- 리눅스
- linux
- 안드로이드
- reversing
- operating systems
- 대학원
- Reverse Engineering
- 자바
- java
- Discrete Mathematics
- 리버스엔지니어링
- 데이터 사이언스
- 머신러닝
- 카타르 음주
- 데이터 과학
- android
- 개발
- Data Science
- 운영체제
- 기계학습
- statistical learning
- 자료구조
- Data Structure
- 리버싱
- 카타르
- 통계학습
- 이산수학
- Algorithms
- Machine Learning
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |