안녕하세요. 오늘은 'Anti Reversing'을 주제로 포스팅을 하겠습니다.
1. Anti Reversing이란
우선 'Reversing'이란 무엇일까요? 정보보안에서 Reverse Engineering이란 기계어로 이루어진 실행 파일을 분석하여 프로그램의 동작 방식(로직)을 유추하는 기술입니다.
개발자가 아니신 분을 위해 설명을 덧붙이자면, 기계어란 컴퓨터가 이해할 수 있는 이진수로 작성하는 언어입니다. (ex. 0101010101...) 이진수로 이루어져 있기 때문에 사람이 기계어를 이해하기 쉽지 않죠.
개발자들은 C 또는 Java와 같은 인간이 이해하기 쉬운 프로그래밍 언어를 통해 프로그램의 소스코드를 작성하고,
이를 컴퓨터가 이해할 수 있는 언어인 기계어로 컴파일한 뒤 exe와 같은 실행 가능한 File로 프로그램을 빌드한 후 배포를 합니다.
|
Reversing이 무엇인지 알았으니, 'Anti Reversing'이 무엇인지 바로 감이 올것입니다. 여러분이 생각대로 Anti Reversing이란 Reversing하는 것을 방해하는 기술입니다. 그럼 왜 Reversing하는 것을 막으려고 하는 것일까요? 그건 'Reversing'이라는 기술이 악의적인 목적으로 사용될 수 있기 때문입니다. 악의적인 목적으로 사용되는 예시를 들자면, Program Copy나 프로그램의 라이센스 없이 crack을 통해 사용하는 것 등이 있습니다. 총 정리해보면 'Anti Reversing'이란 '악의적인 목적을 가진 이가 Reversing하는 것을 방해하는 기술'이라고 할 수 있습니다.
Reverse Engineering은 개발자가 완성된 프로그램을 patch할 때나, 악성코드 분석 할 때 등 좋은 목적으로 사용되기도 합니다.
<Reversing의 정의>
- 기계어로 이루어진 프로그램 실행 파일을 분석하여 프로그램의 동작 방식을 분석하는 것<Anti Reversing의 정의>
- Reversing을 방해하는 기술 (프로그램 로직을 분석할 수 없도록하는 기술)
- 악의적인 목적을 가진 이가 Reversing하는 것을 방해한다
2. 마무리
사실 Anti Reversing 기법의 종류에 대해서도 다룰려고 했으나, 워낙에 많은 기법들이 있어 소개해 드리기가 어려워 정의에 대해서만 짧게 알려드리고 마치게 되었습니다. (몇가지 알려드리자면 api를 이용해 debugger를 탐지하거나 TLS 기법을 이용한 방법들이 있습니다.) 그럼 오늘은 이렇게 'Anti Reversing'에 대한 포스팅을 끝마치겠습니다. (다음번에 시간이 된다면 anti-reversing 기법에 대해 추가로 포스팅 하겠습니다.) 읽어주셔서 감사합니다.
'정보보안' 카테고리의 다른 글
5. 시스템 해킹 (System hacking) (145) | 2018.01.29 |
---|---|
4. Worm (2) | 2018.01.11 |
3.메모리 보호기법 (2) | 2018.01.05 |
Ransomware (0) | 2017.12.18 |