| cwwchan |
리버스 엔지니어링을 직역하자면 '역공학'입니다.
우리가 프로그래밍을 한다면 다음과 같은 과정을 거칩니다.
고급언어 (C언어, 베이직)으로 코딩 -> 저레벨 언어로 변환 (어셈블리어) -> 기계어로 변환 이러한 과정을 거치는데요.
즉, 우리가 실제 돌아가는 프로그램을 통해서는 쉽게 코드를 알아낼 수 없죠.
이 과정을 거꾸로, 즉 reverse 하는 것이 리버스 엔지니어링 입니다. 그렇다고 해서 완벽한 코드를 얻는 것은 아니고, 기계어를 어셈블리어로 변환하는 정도까지죠.
여러 해킹 기술들이 있지만 가장 끈기를 필요로 하는 분야가 아닐까 싶어요 ㅋㅋㅋ
이 리버스 엔지니어링을 하면 어디다 써먹느냐. 바로 악성코드등을 분석할 때 쓰입니다. 이 코드가 무슨 원리로 돌아가는 지 알아야 깨 부술 수 있겠죠?? 그러한 일을 할 때 필요합니다. |
2011/08/16 |
|