이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:
안녕하세요 호환입니다. 반년넘게 진행된 인턴프로그램을 수료한 후 쉬고 이것저것 준비하다 보니 보름이란 시간이 지났습니다. 인턴프로그램은 다행히 별다른 사고없이 잘 끝마쳤지만 이제 진짜 취업이 코앞으로 다가왔다는 사실에 많이 긴장이 됩니다. 차라리 바쁘면 괜찮아 질거란 생각에 이번주부터 진행되는 CEH 과정에 등록도 하였고 나름대로 시기가 되었다고 생각하는 SIS1급 시험도 준비해서 2회차에 필기를 보려고 합니다. 더불어 블로그도 최대한 매일 주제를 정하여서 포스팅을 진행하도록 하겠습니다.

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


위에 제공된 파일의 압축을 해제하고 abexcm1 이란 파일을 실행시키면 경고창과 함께 HD를 CD-Rom처럼 인식을 시키라는 문구가 출력되게 되고 확인을 누르면 지금은 CD-Rom이 아니란 문구와 경고창이 다시 출력되는 것을 확인 할 수 있습니다.


그럼 이제 해당 실행파일을 올리디버거를 통해 열어보도록 하겠습니다. 파일을 열어보면 다스어셈블링된 부분들이 보입니다. 옆에 나와있는 문구들을 보면 경고창에서 봤던 문구들을 볼 수 있습니다. 따라서 생각해보면 이 코드들을 디버거를 통해서 조작하면 CD-Rom으로 인식시커나 인증부분 자체를 우회시키면 문제해결이 될것입니다. 

 
찬찬히 메시지를 보다보면 가장 아래에 우리가 실행을 시켰을때는 못 보았던 문구가 보입니다. 내용을 보면 CD-Rom으로 인식을 성공시켰을때 해당 문구가 출력된다는 것을 알 수 있습니다. 그렇다면 해당 프로그램의 실행루틴은 다음과 같다는 것을 유추 할 수 있습니다.

 
그럼 무조건적으로 Yeah 메시지박스가 출력되는 부분으로 분기하게 된다면 문제는 쉽게 해결이 될 것입니다. 디스어셈블링 부분의 가장 앞에 표시된 8자리16진수는 주소값이라고 생각하시면 되는데 Error 메시지박스의 시작은 00401028 부터 시작되는것을 알수 있고 Yeah 메시지박스 주소는 0040103D 부터 시작되는 것을 알 수 있습니다. 


그럼 우리는 0040103D로 분기를 하는 부분을 찾아내어 변경하면 됩니다. 다행히 얼마 안되는 위쪽에 JE SHORT 0040103D 라는 부분을 찾을 수 있습니다. JE 는 Jump Equal 이란 뜻으로 미리 설정되어있는 상태나 값과 비교를 하여 같은 값이면 해당부분으로 분기를 하라는 뜻입니다. JE 를 더블클릭하여 무조건 분기하라는 뜻인 JMP로 변경을 한 후 실행시키면 문제가 해결 된것을 볼 수 있습니다.

 


마지막으로 우클릭을 통하여 실행파일을 복사하여 수정된 사항들을 저장하도록 합니다.

****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 53PE
,