본문 바로가기

프로그래머/프로그래밍 이야기

리버스엔지니어링이란?

반응형

 
■ 리버스엔지니어링이란?
-리버스 엔지니어링(Reverse Engineering) : 이미 만들어진 시스템을 역으로 추적하여 애초의 문서나 설계 기법 등의 자료를 얻어내는 일. 유지보수의 새로운 관점이다.

 - 하드웨어 또는 소프트웨어에 대한 분해,분석을 통해 당해 제품에 구현된 아이디어(원리, 기술, 방법, 기능, 알고리즘, 노하우등을 포함)를 추출해 내는 일련의 행위

- ‘역공학’, ‘역분석’ 등으로 불리기도 함

■ 리버스엔지니어링 허용의 필요성

 - 패키지 솔루션의 경우 실행모듈형태로 제공받는게 일반적인데 소스코드의 변경이 필요해질경우 개작, 번역 등을 수반하게되어 저작권자의 허락 없이 이루어지게 되므로 저작권 침해의 문제가 발생

  이러한 경우까지 저작권자를 과도하게 보호한다면 권리자․이용자간의 이익 형평과 공익을
 추구하는 저작권 제도의 취지에 반하게 되므로 일정한 경우에는 리버스엔지니어링을 허용하는 것이 필요

■  리버스엔지니링의 기술

 - 언패킹(unpacking)

   일반적인 SW들은 리버스엔지니어링을 막기 위해서 암호화를 하거나 압축을 하여 소스코드를 볼 수 없도록 하고 있다. 이러한 과정을 패킹(packing)이라고 한다. 소스코드를 보기 위해서는 이렇게 패킹된 코드를 풀어야 하는데 이러한 과정을 언패킹(unpacking)이라고 한다.

  - 분석 단계

 언패킹된 파일은 리버스엔지니어링을 위해 기본적으로 정적 분석(static analysis)과 동
적 분석(dynamic analysis) 단계를 거침
 
서론은 여기 끝내고..
 
우선 밑에 그림을 보시면 이해가 빠르실 것입니다
 
 
 
우측 상단에 보면 광고를 볼수 있다..
이광고가 보고 싫은 사람은 돈주고 살수도 있고..
리버서인 나는 그냥 제거를 해보았습니다
 
 
 
시도한지 10분도 채 안걸려서 패치할수 있었습니다(다른용도로는 자기가 원하는 사진도 나오게 할수 있쓸것입니다)
패치 과정은 문제의 소지가 있으므로 공개는 안하겠습니다;;)
 
여기서 프로그래머는 자기의 코드를 보호하기위해서 아무런 보호장치를 가동하지 않았습니다
문론 프리웨어이기 때문에 그렇기도 하고 하지만 프리웨어도 패치하면 상용버전하고 동일한데
프로그래머는 전현 보호할 생각 이 없는것 같습니다..
우선 upx 등 여러 실행 파일들이 있는게 이것을 사용하지 않았네요..
실행 파일 압축을 사용한경우라면 리버싱이 조금을 어려울수 있는데 말입니다
 
※ 현재 국내에는 아직 리버싱에 대해서 많이 알려지지 않았습니다. 해외에서는 리버싱 엔지니어분들이 엄청난
 
대우를 받고 있습니다. 향후 국내에서도 리버싱에 대한 중요성이 엄청나게 커질것으로 보입니다.
 
아직 국내에서는 리버싱에 관한 세미나가 거의 없다고 보시면 됩니다.
 
이번 세미나를 통해 리버스 엔지니어링에 대해서 정확히 알아보세요 ^^
 
여러사람의 공유를 위한것이니 악성리플은 삼가해주세요~
반응형