리버스 엔지니어링이란
엔지니어링이란 완성품과 이를 구성하는 부품들의 기능과 설계를 고안하고 제작하는 과정을 말합니다. 이와 대비되는 리버스 엔지니어링(Reverse Engineering)은 용어의 '리버스'가 의미하듯, 위 과정을 거꾸로 하는 행위를 말합니다. 완성된 제품을 해체하고 분석하여 구조와 기능, 디자인을 파악합니다. 책에 따라 이를 '역공학'이라고 지칭하기도 합니다. 이를 '리버스 엔지니어링' 또는 '리버싱'이라고도 합니다.
리버싱에도 여러 분야가 있습니다. 야의 성분을 분석하는 것, 자동차의 주행 원리를 이해하는 것, 전자 제품의 회로를 분석하는 것 등에는 각각 생명공학, 기계공학, 전자 공학에 대한 리버싱 기술이 적용됩니다. 이 외데도 대부분의 공학 분야에서는 그에 대응되는 리버싱 기술이 존재합니다. 여기서는 그 중에서 소프트웨어를 대상으로 한 리버싱을 다룹니다.
소프트웨어 리버싱에 능숙해지기 위해서는 상당히 많은 지식과 기술 그리고 노력이 필요합니다. 소프트웨어와 다양한 컴퓨팅 환경에 대한 깊은 이해를 바탕으로, 적으면 수백줄, 길면 수만, 수억줄의 코드로 작성된 프로그램에서 분석할 부분을 찾고, 리버싱을 막기 위해 도입된 안티 리버싱 기술들을 우회해야 합니다.
리버싱의 용도
Good Case
각종 프로그램의 보안성을 평가하거나 악성코드를 분석할 때도 리버싱이 널리 쓰입니다. 리버싱을 통해 대상 프로그램이 얼마나 안전하게 설계되었는지, 혹은 대상 악성코드가 어떤 방식으로 동작하고 시스템에 피해를 입히는지 알아낼 수 있습니다.
Bad Case
상용 프로그램을 구매하지 않고도 무료로 이용하기 위해 쓰는 키젠 프로그램이나 시리얼 넘버 생성기, 크랙 등의 불법 프로그램도 리버싱을 통해 말들어 집니다. 유료로 판매되는 프로그램들이 어떤 방식으로 정품 인증을 하는지를 리버싱을 통해 알아낼 수 있기 때문입니다. 또 각종 프로그램을 분석해서 게임핵을 만들 때도 리버싱이 사용됩니다.
'School > Security' 카테고리의 다른 글
[ Web Hacking ] No-SQL Injection (0) | 2022.05.30 |
---|---|
[ Web Hacking ] - SQL Injection (0) | 2022.05.29 |
[ Web Hacking ] - CSRF (0) | 2022.05.28 |
[ Web Hacking ] - XSS Bypass (0) | 2022.05.28 |
[ Web Hacking ] - XSS (0) | 2022.05.27 |