본문 바로가기
분석해보까?

[강좌] 쉘코드(ShellCode)를 OllyDbg로 쉽게 디버깅 해보자

by 잡다한 처리 2010. 11. 6.
반응형

지인분께서 악성스크립트에 들어간 쉘코드 분석방법에 대해서 문의하셔서~^^
간략하게 글을 적어봅니다.

이 글은 보통 악성 스크립트들을 Malzilla로 분석하는데 있어, 못하는 부분들이 있기 때문에 이런 방법을 많이 사용하고 있습니다.
물론 저는 그렇구요^^; 다른 분들은 어떻게 분석하는지 모르겠네요!! ㅎㅎ 

< 준비물>
- Malzilla : http://malzilla.sourceforge.net/downloads.html
- OllyDbg : http://www.ollydbg.de
- UltraEdit

1. 우선 파일을 UltraEdit로 오픈합니다.
그럼 다음과 같이 쉘코드로 보이는 문자열들이 보입니다.
이 문자열들을 복사합니다.
(주의) 중간에 "+" 이라는 문자들은 모두 공백으로 바꾸어줍니다^^


2. 복사 한 부분을 Malzilla의 Misc Decoders탭에 붙여넣기 합니다.
그 후 UCS2 to Hex 를 클릭합니다.


3. 그럼 쉘코드가 Hex값으로 변환되었습니다.
이 부분을 다시 복사합니다.


4. 복사한 부분을 Shellcode analyzer 탭이나 Hex View 탭으로 이동하여 Paste as hex로 붙어넣습니다.
그리고 우측마우스를 눌러서 Save를 합니다.

파일명을 저장 할 때, "Hex_view_file.mem" 으로 저장하시면 추후 편리합니다 ㅋㅋ

이제 저장 된 Hex를 OllyDbg에 연동하여 쉘코드를 분석해 보겠습니다.


5. 우선 Olly를 열고 아무파일이나 오픈합니다.
저는 개인적으로 notepad.exe를 좋아해서 ㅡㅡ;; 그 파일을 오픈하였습니다 ㅋㅋ

그리고 마우스 우측버튼을 이용하여 Backup -> Load Backup From File 을 클릭합니다.

아까 저장해 둔 mem 파일을 불러옵니다.

그럼 크기가 안맞는다니 어쩐다니 그런 개소리를 하게 되는데~ 사뿐히 즈려밟고 갑니다.


6. 지금부터가 중요합니다. 백업파일을 적용했으나 변한것이 없을겁니다~ 따라서 다음과 같이 해주세요.
1) Home키를 눌러 맨 위로 올라감
2) Shift + End 키를 이용해서 모든 코드를 블럭처리
3) 마무리로 Alt + BackSpace를 누루면 코드 맨 위에 Hex값을 복사
4) 다시 Home키를 눌러 맨 위로 올라가서 Ctrl+* 로 시작지점을 변경


7. 이제 부터는 일반적인 디버깅 시작~~
Loop 부분이 종료 되면 원하던 주소값을 얻을 수 있습니다.


쉽게 설명한다고 썻는데;;
보는사람입장에서는 어떻게 보일지 모르겠네요 ㅎㅎ

궁금한점이나 안되는 점이 있으시면 댓글로 써주세요^^




댓글