반응형
오늘은 리버싱 문제로 많은 사람들이 푸는 CrackMe 문제를 풀어보도록 하겠습니다. 실제로 제공되는 프로그램들을 리버싱할 경우에 법적인 문제나 지적재산권문제등이 있을 수 있기 때문에 자제를 해주시기 바랍니다. 리버스엔지니어링은 악성코드의 분석이나 기타 보안, 프로그램 제작을 위한 학습의 용도로 사용하는게 올바른 사용이지 크랙의 제작이나 인증프로그램등을 무력화 시키기 위한 방법으로 사용하면 안된다는 점을 꼭 기억해 주시기 바랍니다.

위에 제공된 파일의 압축을 해제하고 abexcm1 이란 파일을 실행시키면 경고창과 함께 HD를 CD-Rom처럼 인식을 시키라는 문구가 출력되게 되고 확인을 누르면 지금은 CD-Rom이 아니란 문구와 경고창이 다시 출력되는 것을 확인 할 수 있습니다.
그럼 이제 해당 실행파일을 올리디버거를 통해 열어보도록 하겠습니다. 파일을 열어보면 다스어셈블링된 부분들이 보입니다. 옆에 나와있는 문구들을 보면 경고창에서 봤던 문구들을 볼 수 있습니다. 따라서 생각해보면 이 코드들을 디버거를 통해서 조작하면 CD-Rom으로 인식시커나 인증부분 자체를 우회시키면 문제해결이 될것입니다.
찬찬히 메시지를 보다보면 가장 아래에 우리가 실행을 시켰을때는 못 보았던 문구가 보입니다. 내용을 보면 CD-Rom으로 인식을 성공시켰을때 해당 문구가 출력된다는 것을 알 수 있습니다. 그렇다면 해당 프로그램의 실행루틴은 다음과 같다는 것을 유추 할 수 있습니다.
그럼 무조건적으로 Yeah 메시지박스가 출력되는 부분으로 분기하게 된다면 문제는 쉽게 해결이 될 것입니다. 디스어셈블링 부분의 가장 앞에 표시된 8자리16진수는 주소값이라고 생각하시면 되는데 Error 메시지박스의 시작은 00401028 부터 시작되는것을 알수 있고 Yeah 메시지박스 주소는 0040103D 부터 시작되는 것을 알 수 있습니다.
마지막으로 우클릭을 통하여 실행파일을 복사하여 수정된 사항들을 저장하도록 합니다.
반응형
'Work & Study > Wargame' 카테고리의 다른 글
[Reverse Engineering]Crackme 문제풀이-abex1 (0) | 2011.08.15 |
---|---|
Hackerschool 워게임 Level2 (0) | 2011.07.01 |
Hackerschool 워게임 Level1 (0) | 2011.06.28 |
HDCON2010 - 1번 문제 풀이 (0) | 2010.05.15 |