|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=7893 [복사]
김슬기 강사님의 CodeEngn Conference 2013 Basic Reversing입니다.
소재가 좋아서 가져와 보았습니다!
다들 리버싱에 대해서 들어보신 적이 있으실 겁니다.
리버스 엔지니어링이란, 리버스 + 엔지니어링이 합해진 역공학의 의미를 포함합니다.
개발자가 소스코드를 작성하여 만든 프로그램을 CPU 동작과정 등으로 분석해서
하나의 프로그램의 안전성 테스트나 기술적인 원리 분석을 할 수 있게 됩니다.
리버싱을 공부하기 위해서는, CPU동작방식과 레지스터, 어셈블리어, 스택구조, C언어, PE Header구조,
패킹 & 언패킹과 분석 도구 사용법을 공부하셔야 합니다.
리버싱을 하기 위한 분석 도구에는
가장 많이 알려진 ollydbg(올리디버거) IDA(아이다) WinHex(윈헥스) PEiD가 있습니다.
ollydbg는 ollydbg.de < 에서 무료로 배포하고 있습니다.
앞으로 리버싱을 하시면서 위 툴들을 자주 접하게 되실 겁니다!
리버싱을 공부하게 되면, 정말 방대한 양의 공부를 필요로 하기 때문에, 자칫하면 슬럼프가 오거나
흥미를 잃게되는 경우가 있을 수도 있습니다.
그렇기 때문에, CM(Crack Me!)와 Keygen Me 그리고 자신 스스로 프로그램을 만들어 디버깅해보면서
흥미를 가지는 방법이 있습니다.
CrackMe는 리버서들에게 가장 많이 알려진 리버스 엔지니어링 실력테스트 프로그램입니다.
crackmes.de/users/abex < 가장 많이 알려진 아벡스 크랙미 입니다!
크랙미는 단순 분기문의 흐름을 분석해서 프로그램을 다른 경로로 정상작동하게 하기 때문에
흥미를 가지실 수가 있습니다.
그리고 또 키젠입니다. 키젠은 크랙미 + 키젠을 도출해야하기 때문에
더욱 난이도가 어렵습니다.
키젠 미를 풀다보시면, 프로그램의 키젠 암호화 형식을 자주 접하게 되실텐데, 그러다보면 XOR ADD SUB 등
다음에 리버싱을 할 떄 암호화부분을 어렵지않게 해결하실 수 있으실 것입니다.
마지막으로 직접 프로그램을 만들어서 지인들에게도 배포할 수도 있습니다!
리버싱에 관심은 있지만, 어려워하시던 분들도 이제 쉽게 접근하실수 있을 것 같습니다. |
Hit : 12858 Date : 2013/07/19 02:18
|