디버거 혁명: Immunity Debugger :: 2007/11/19 21:31


다소 낚시성 제목일 수도 있겠습니다. 지난 주에 window31님 블로그를 보다가 POC란 행사에 대해서 알게 되었습니다. '그런것도 모르고 보안 업체에서 밥벌어 먹다뉘'라고 말씀하신다면 할말이 없습니다. 하여튼 관련 소식을 꽤나 자세하게 적어주셔서 어떤 강의 내용이 진행되었는지 개략적으로나마 알 수 있게 되었습니다.

첫 날 후기를 보면 Immunity Debugger라는게 나옵니다. 또한 그 내용에 window31님이 가장 관심을 가졌다니 더욱 관심이 가더군요. 그런데 전 그 글을 읽기 전까지 Immunity Debugger가 뭔지도 몰랐습니다. 점점 부끄러워지는군요. ㅠㅠ 그래서 구글을 검색해 봤습니다. 그랬더니 그 디버거를 만든 회사 홈페이지가 뜨더군요. 아래 페이지에서 디버거의 소개를 보실 수 있고 다운로드도 받을 수 있습니다. 무료입니다.

http://www.immunityinc.com/products-immdbg.shtml

소개글도 영어고, 화면은 대충보니 ollydbg랑 비슷해 보입니다. 일단 다운로드를 받고 설치를 하고 실행을 시켰죠. 그리곤 실행 파일 하나를 올려놓고 디버거를 수행해 봤습니다. 완전 ollydbg 붕어빵입니다. UI며 커맨드며, 뜨는 메뉴까지, 헐... 그리곤 왜 똑같은 놈을 만들었을까란 생각을 잠시했습니다. 물론 ollydbg보단 뭔가 정돈된 느낌이 들긴 했습니다. 툴바 아이콘이 조금 그랬습니다. 도움말을 열어봤습니다. 그것도 ollydbg 붕어빵이더군요. 디버거를 끄고는 회사 홈페이지를 좀 탐험했습니다. "August 10, 2007: Damian Gomez - Intelligent Debugging"이런 좋은 문서가 있더군요. 물론 읽지는 않고 쭉쭉 넘겼습니다. 그냥 대충 글에서 보이는 느낌이 파이썬으로 뭔가를 할 수 있다. 이런 것을 전하고 있다는 것을 알 수 있었습니다.

그 느낌은 맞았습니다. 그것도 정말 토할것 같은 기능이더군요. 보통 IsDebuggerPresent 함수로 디버깅 중이면 프로그램을 종료하거나 익셉션을 발생 시키는 놈들을 디버깅 할 때, IsDebuggerPresent 함수를 패치하거나 그 함수를 호출하는 부분을 패치시키고 디버깅을 합니다. 후훗. 그걸 Immunity Debugger로 어떻게 하는지 한 번 살펴볼까요? 파이썬입니다. 아래 코드가 그것이죠.


저걸 실행하는 방법은 간단합니다. 위의 코드를 Immunity Debugger가 설치된 폴더에 있는 PyCommands 폴더에 passidp.py로 저장합니다. 그리고 Immunity Debugger에서 실행 파일을 열고 밑에 커맨드 창에 !passidp라고 치면 IsDebuggerPresent 함수가 무력화 됩니다.

정말 디버깅이 아트가 되는 순간이 아니겠습니까? 이럴때는 정말 마음껏 토해줘야 합니다. 현기증 날 정도로 아찔하더군요. "어떻게 저 따위로 돌아가게 만들어 놨을까? 파이썬으로 저런 짓을 할 생각을 했을까?"란 생각을 한참을 했습니다. 그리곤 결론을 내렸습니다. 걔네는 천재임에 틀림없다고 말이죠. 적어도 저에게는 그랬습니다.

그들의 참신함은 거기가 끝이 아닙니다. 메뉴를 보면 마지막 풀다운 메뉴가 Jobs 입니다. 기부를 어떻게 하는지 사람을 뽑고 있는지, 인턴쉽 기회가 있는지에 대한 메뉴더군요. 아마 이 툴을 써본 많은 디버거들에게 꼭 들어가고 싶은 회사로 찜하지 않을까하는 생각을 해봤습니다. 물론 요즘 이스트소프트도 이런 식의 구인 광고를 많이 하더군요.

이 글을 읽고 난다면 아마 느끼실 겁니다. 아, 파이썬 배워야 겠군나. 그렇습니다. 파이썬은 이제 선택 언어가 아니라 필수 언어가 되었습니다. 파이썬을 아는 개발자, 그렇지 않은 개발자로 나뉠지도 모르겠다는 생각을 해봅니다. 파이썬을 배우고 싶으시다면 아래 튜토리얼을 참고하세요. 왠만한 파이썬 책보다 괜찮은 것 같습니다. 사실 책입니다. ㅋ

http://www.diveintopython.org/toc/index.html

스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/652
  • Gravatar Image.
    키눅스 | 2007/11/19 22:22 | PERMALINK | EDIT/DEL | REPLY

    오... 대단하군요... 토할것 같은(^^;)

    • Gravatar Image.
      codewiz | 2007/11/19 22:40 | PERMALINK | EDIT/DEL

      정말 토나오죠. 헤헤~~
      아 그리고 키눅스님 아까 그 문제는 해결했어용. 헤헤^^;;
      SeCreateAccessState로 생성해서 넣어주니깐 되더라고용...

  • Gravatar Image.
    Maro | 2007/11/19 22:26 | PERMALINK | EDIT/DEL | REPLY

    아래의 파이썬 코드를 보여주세요 ㅠ_ㅠ)

    파이썬 코드는 어디로.. 'ㅅ'??????

    • Gravatar Image.
      codewiz | 2007/11/19 22:41 | PERMALINK | EDIT/DEL

      스크립트에 아주 사소한 버그가 있더군요.
      수정했습니다. ^^;;

  • Gravatar Image.
    환상경 | 2007/11/19 22:39 | PERMALINK | EDIT/DEL | REPLY

    저는 아직까지 디버깅에 대한 개념이 잘 안잡혀있어서
    쉽게 이해가 안오는군요 >_<
    좀더 정진해야겠습니다. T^T

    • Gravatar Image.
      codewiz | 2007/11/19 22:46 | PERMALINK | EDIT/DEL

      바이너리 파일로 디버깅하는 것에 익숙하지 않다면 무슨 이야긴가? 하고 생각하실 수도 있을것 같습니다. 알아두면 좋긴 하겠지만 특수한 분야가 아니면 별로 쓸모없기도 합니다. ^^;;

  • Gravatar Image.
    Maro | 2007/11/20 10:07 | PERMALINK | EDIT/DEL | REPLY

    오.. 이제 스크립트가 보이는군요...
    저 프로세스 메모리 영역을 읽어오고 거기다가 쓰는 기능은 ImmunityDebugger가 지원하는
    기능일테죠 'ㅅ'?? 상당히 마음에 드는군요... +_+!!

    그나저나 이 댓글 달때 쓰는 폰트 뭐에욤? 상당히 마음에 드는.. :)

  • Gravatar Image.
    제풍 | 2007/11/20 10:37 | PERMALINK | EDIT/DEL | REPLY

    오~ 재미있는 디버거군요...
    그러나 파이썬의 압박이... 파이썬... 파이썬...
    3~4년전에 배워볼꺼라고 책도 사고 코드 몇줄 끄적 거려 본적은 있지만...
    그후에는 본적이 없어서 위의 소스가 새롭게 느껴지네요.. :)

    • Gravatar Image.
      codewiz | 2007/11/20 11:08 | PERMALINK | EDIT/DEL

      저도 그 정도 수준입니다. ㅎㅎ
      의식적으로 쓰려고 노력하지 않으니 매일 제자리 걸음이더군요.

  • Gravatar Image.
    제풍 | 2007/11/20 10:39 | PERMALINK | EDIT/DEL | REPLY

    글과 상관없는 질문이지만...
    저는 왜 글 옆에 "?"표가 뜨나요?

    정체를 알수없는... OTL

    • Gravatar Image.
      codewiz | 2007/11/20 11:09 | PERMALINK | EDIT/DEL

      이미지 붙여 드렸습니다.
      수동으로 되는거라 ㅋㅋ
      이미지는 제풍님 블로그에서 가져왔습니다. ㅋ~

  • Gravatar Image.
    window31 | 2007/11/20 19:47 | PERMALINK | EDIT/DEL | REPLY

    한번씩 조횟수와 에드센스가 폭등하는것이 영진씨 덕분이네요 ㅎㅎ
    Immunity Debugger 강연 자체는 실망이었지만 툴은 정말 물건이죠 ㅋㅋ
    정말 파이썬이 대세인거 같아요... 파일 크기가 열라 커서 좀 거부감이 있었는데 이제는 저도 대세를....;;

    • Gravatar Image.
      codewiz | 2007/11/21 11:52 | PERMALINK | EDIT/DEL

      설마 저 때문일라구요. ㅋㅋ
      그렇게 생각해 주시니 고맙습니다.
      크긴 하지만 편하긴 하니까 대시인 것 같습니다. ^^;;

  • Gravatar Image.
    object | 2007/11/23 06:10 | PERMALINK | EDIT/DEL | REPLY

    근데 이게 뭐 하는 거에요? @@

    • Gravatar Image.
      codewiz | 2007/11/25 21:48 | PERMALINK | EDIT/DEL

      흠...~
      디버깅하는 거죠. 라고 말하면 칼맞겠죠? ㅎㅎ
      다음에 한번 캡쳐해서 자세하게 올리도록 하겠습니다.

  • Gravatar Image.
    drvoss | 2007/11/23 08:39 | PERMALINK | EDIT/DEL | REPLY

    아! 파이썬 배워야 겠군요. MS에서 나온 IronPython은 외국에 커뮤니티도 많이 활성화 되어 있더라구요. CPython도 많이 쓰이지만, 의외로 IronPython으로 많이 쓰이나 봅니다.

    • Gravatar Image.
      codewiz | 2007/11/25 21:49 | PERMALINK | EDIT/DEL

      그렇군요. 저도 잘은 몰라서 그런데 CPython과 IronPython은 어떤 차이가 있나요? 말은 많이 들어봤는데 찾아보진 않았거든요. 이참에 한번 검색해 봐야겠습니다. ^^;;

  • Gravatar Image.
    kskang | 2007/11/24 15:17 | PERMALINK | EDIT/DEL | REPLY

    "토할것 같은 기능" 이라고 하시길래 뭔가 엄청 쓰레기 같은 기능인가보다..생각하다가 더 읽어 보니 아주 감동적인 기능?을 말씀하시는거 였군요. ㅡ.ㅡ;;;;

    • Gravatar Image.
      codewiz | 2007/11/25 21:50 | PERMALINK | EDIT/DEL

      죄송합니다. ㅎㅎ
      그냥 평소때 말하는 버릇대로 적다보니 오해가 생길수도 있겠네요. 주로 아주 아트스러울때 토할것 같다는 말을 한답니다. 저랑 제 주변 분들은요. ㅋㅋ

  • Gravatar Image.
    an | 2010/09/10 09:40 | PERMALINK | EDIT/DEL | REPLY

    이뮤니티를 설치하구염.
    파이썬 2.5 도 설치되어있궁.
    이뮤니티 라이브러리에서 모듈들 복사 해서 파이썬에 lib 에 넣어놧구염.

    근데..
    import immlib
    imm=immlib.Debugger()
    하면 Debuger 클래스가 not define 이라고 뜨네요..
    왜그런걸까여;;

Name
Password
Homepage
Secret
< PREV | 1| ... 89|90|91|92|93|94|95|96|97| ... 604| NEXT >