python

  • DumpFromOEP.py for Immunity Debugger

    Windows XP에서 Immunity Debugger의 플러그인들이 충돌을 일으켜서 만들었던 스크립트입니다. OllyDump의 소스코드를 보면서 만들었습니다. 단순히 메모리를 덤프해서 PE 헤더를 고친 후 파일로 출력하는 게 전부입니다. PyCommand 디렉토리 아래에 스크립트 파일을 저장한 후, eip가 OEP에 있을 때 커맨드라인에서 다음과 같이 입력하면 실행이 됩니다. !dumpfromoep [a path of the output file] OEP까지 직접 찾아가야 하고 IAT도 수동으로 고쳐줘야…

  • python :: Socket Communication with Thread

    지난 DEFCON 18 예선 문제를 풀 때 만들었던 소켓 라이브러리입니다. 그 이후로 퍼징툴을 만들면서 조금씩 고쳤죠. 수신 모듈을 스레드로 활성화해서 네트워크를 통해 받은 데이터를 바로 콘솔에 출력합니다. 예외처리는 하지 않았습니다. connThread를 상속받는 코드에서 예외처리를 할 수 있습니다. Method connThread (host, port)– 소켓 생성자입니다. 접속할 IP주소(host)와 포트번호(port)를 입력받습니다. close ()– 소켓을 닫습니다. reconnect ()– 재연결합니다. sendMsg…

  • Reveal API Redirect on Themida

    일주일 전에 쿠시스 영남권 세미나에서 “API Redirect on Themida”라는 주제로 발표를 했었습니다. 아래는 그때 발표자료랑 시연에서 잠시 소개했던 스크립트입니다. Immunity Debugger 용으로 python으로 작성하였습니다. PyCommand 디렉토리 아래에 스크립트 파일을 저장한 후, eip가 call 문에 있을 때 커맨드라인에서 다음과 같이 입력하면 실행이 됩니다. !revealapi 이 스크립트는 call 문을 직접 실행하지 않고 Themida에서 리다이렉트된 API를 찾아서 comment로…

  • python :: 파일을 base64로 인코딩/디코딩

    몇몇 이메일 서버는 파일 첨부를 막은 경우가 있습니다. 선배가 다니는 회사의 사내 이메일 서버가 그렇더라구요. 그런데도 불가피하게 파일을 첨부해야한다면, base64로 인코딩해서 나오는 텍스트를 메일로 보내면 해결됩니다. 원래 이메일의 파일 첨부는 base64로 인코딩되어서 전달되니까요. 메일 수신자는 텍스트를 base64로 디코딩하면 파일을 얻을 수 있죠. 저런 이유로 예전에 심심풀이로 python으로 만든 프로그램입니다. 간혹 포렌식 문제를 풀 때 이…