이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:
안녕하세요 보안인닷컴-보안팀블로그 3기 호환입니다. 어찌어찌하다 보니 12시가 넘어서 포스팅을 하게되었네요.
시간에 구애받지않고 우린 앞으로 나가 보겠습니다. 오늘은 리버싱을 하는 날이 되겠습니다.
오늘은 다소 하나의 포스팅을 하기에는 분량이 많아 자칫하면 댓글로 그냥 스크롤 내리신분 추천 이런 놀이를
하실거 같아서 1편 2편으로 나누어서 포스팅을 진행하겠습니다.

1편의 내용은 우선 우리가 2편에서 리버싱을 할 프로그램을 Unpack 하는 방법에 대하여 설명을 드리겠습니다. 우선 이번 포스팅을 실습하기 위해서는 올리디버거 뿐만아니라 다음과 같은 프로그램들이 필요합니다.
(클릭다운)
OllyDump.dll
PEiD
CrackMe2.exe(coff-2.zip)

우선 가장 중요한 OllyDump.dll 파일인데요. 이것은 Upx Packing 을 덤프하여서 하드에 저장하는 역할을 합니다. 올리디버거가 설치된 경로의 Plugin 폴더안에 저장을 해주시면 됩니다.


첨부한 파일 외에도 다음 사이트에서 OllyDump.dll 이라고 검색을 하여 다운 받는것도 가능합니다.

http://www.tuts4you.com

그리고 첨부한 cffo-2.zip 파일의 압축을 푸신후에 PEiD 를 통하여 Crackme2.exe 의 바이너리를 확인합니다.
PEiD를 통하여 해당 파일이 UPX 압축이 되어있다는 것을 확인할 수 있습니다.


이제 그 파일을 올리디버거로 불러오게되면 처음에 압축이 되었다는것을 알려주고 진행여부를 물어보게됩니다. Yes를 눌러 주시면 올리디버거 창이 뜹니다. 스크롤을 계속해서 내리다 보면 해당파일의 압축이 모두풀리고
초기상태인 OEP(Original Entry Point)로 분기하는 JMP 구문이 나타납니다.


해당 분기문을 클릭후 F2를 눌러 BreakPoint를 설정해주신후 F9으로 실행을 시켜주시면
분기직전에 Pause 상태가 되는것을 보실 수 있을겁니다. 올리디버거의 우측하단의 글자가
Pause라고 표시가 되어 있다면 제대로 진행이 된것입니다.


이제 본격적으로 Unpack을 진행해 보도록 하겠습니다. 점프구문에서 Pause 가 걸렸다면 F8을 눌러
다음단계로 진행을 합니다. 그럼 프로그램의 초기진입지점인 OEP로 이동하는것을 지켜볼 수 있습니다.


시작할때 PUSH EBP 로 되었군요 EBP레지스터에 UPX 압축이 다 해제가된 프로그램을 집어넣는 구문이라고
추측을 할수있습니다. 해당라인에 오른쪽클릭을 한후 OllyDump.dll을 활성화 시켜줍니다.
Dump debugged process를 클릭하시면 됩니다.


클릭을 하시면 아래와 같은 창이새로뜨는데 기본적인 체크사항은 모두 되어있으므로 Dump 버튼을 눌르면
UPX 파일이 풀어진 상태로 해당 파일을 저장하실수 있습니다.


저장후 PEiD로 프로그램을 열어보면  아까완 달리 UPX 압충에대한 문구가 사라진것을 알 수 있습니다.
UPX 패킹의 원리는 다음과 같습니다.

1. 기존의 소스코드 부분을 모두 새로운 upx 섹션에 압축하여저장
2. 실행을 할때 upx 섹션에 저장해놓은 부분을 풀어서 메모리에 올림
3. 압축이 모두 풀리면 OEP 로 이동

우리가 사용한 OllyDump 는 2번과 3번과정에서 메모리에 압축이 풀린채로 올라와 있는 프로그램을
덤프시켜서 저장을 하는 용도로 사용하는 것이 되겠습니다.
이제 UPX Unpack 이 된 실행파일을 가지고 문제풀이를 해보겠습니다.

이포스팅은 호환의IT이야기(http://tigernet.tistory.com)에 공동기재되고 있습니다.

[Reversing]Manual Unpack & Back to user mode (2) 로 이어집니다.


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

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

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

Posted by NIMD4

댓글을 달아 주세요

  1. Favicon of https://boanin.tistory.com BlogIcon John_G 2009.09.05 13:12 신고  댓글주소  수정/삭제  댓글쓰기

    덤프 뜬 파일을 이용하여 다시 리빌드를 하면 언패킹이 완료된 정상적인 윈도우즈 프로그램을 얻을 수 있죠 ^^