많은 삽질에 삽질을 거듭한 끗에 찾아낸 블로그에서 답을 찾다 -_ㅠ
소개할 건 Reverse Engineering Frame work 입니다
아마 Python 을 의미하는 Py 와 발음이 비슷한 Pai 떄문에
기존에 있던 Paimei 란 캐릭터의 이름을 따와서 이름을 지은거 같군요
아무튼 상당히 괜찮다고 평이 나있는 툴입니다
오픈소스이구요
먼저 Paimei 가 어떤 툴인지는 알고 설치 하셔야겠죠?
제작자의 홈페이지 입니다
http://pedram.redhive.com/PyDbg/docs/index.html
그리고 이건 다른 분들이 작성하신 Tutorial~
http://www.crazylazy.info/blog/content/paimei-tutorial-hands-pydbg-part-1
http://www.crazylazy.info/blog/content/paimei-tutorial-simple-heap-traceing-part-2
또 RECON 2006 에서 제작자가 발표한 PDF 파일입니다
http://recon.cx/en/f/pamini-five-finger.pdf
근데 생각보다 설치하기가 좀 [ 많이 ] 까다롭더군요
선행 설치되야 하는것도 장난이 아닙니다
태그를 긁어왔는데 어째 선이 안보여서 그림으로 대체합니다 -_-
이는 제작자 페이지의 Installation 부분에서 발췌한것임을 알려드립니다
게다가 이는 Python 2.4 를 기준으로 되어 있기 때문에 약간의 수정 없이는
요즘 가장 대중적으로 쓰이는 2.5에서 오류 없이 깔기가 불가능합니다
음 그럼 설치를 시작해볼까요
http://www.openrce.org/downloads/details/208/PaiMei
에서 Paimei 를 받습니다
물론 Python 2.5 가 깔려있다는 전제하에서 하는 거구요
위 파일에서 __install_requirements 를 실행시키면 한번에 다 설치 할 수 있도록 했는데
2.4 기준이라 위 링크된 사이트에서 자신의 버전에 맞는 파일을 받아 설치하시는게
속 편하실거라고 봅니다 -,.-
아무튼 위 설치를 마치셨다면
__setup_mysql.py를 실행시켜서 db와 연결하셔야 합니다
__setup_mysql.py localhost <ID> <PassWord> 로 실행시켜주시면 됩니다
ID, Password 는 Mysql 계정정보를 입력시켜주시면 되구요
이제 __build_installer.bat 파일을 실행시켜야 합니다
저는 setup.py install 명령어를 쓰고 나선 한참 삽질했는데요
setup.py install 하면서 컴파일러가 다르다니 어쨌대니 mingw32 를 쓰라느니
그래서 cygwin 도 깔아보고 해봤는데도 안되고
나중에 찾아보니 mingw32를 써서 컴파일하는건 좀 불안정하다더군요
아무튼 이런 삽질을 피하시려면
__build_installer.bat 을 실행시키면 됩니다
물론 수정점이 있지요
c:\python\python.exe setup.py bdist_wininst --bitmap=logos\installer.bmp --title=PaiMei
를 이렇게
c:\python25\python.exe setup.py bdist_wininst --bitmap=logos\installer.bmp --title=PaiMei
바꿔주시면 됩니다
그리고 실행해주시면 주르륵 설치가 되지요
확인은 default 로 설정해주셨을때
C:\Python25\Lib\site-packages
에서 확인하실 수 있습니다
pida, pydbg, pgraph, MySqLdb 등등이 있어야 하구요
아참, 제 기억으론 setuptools 도 필요했던거 같네요
http://pypi.python.org/pypi/setuptools
버전 맞게 설치하시고
pydbg 에서 또 수정해주셔야 할게 있는데
beist lab의 ashine 님의 글을 참조하시면 OK~
http://ashine.springnote.com/pages/5585579?print=1
이제 Paimei 압축을 푼 폴더에 console 폴더에 들어가셔서
PAIMEIconsole.pyw 를 실행시키면
Paimei 님의 살인미소가 우리를 반겨주시는게 정상입니다
Paimei 의 실행모습입니다
전체적으로 깔끔한 인터페이스네요
이걸 또 PIDA 와 연결 할 수 있는데요
조심하실 점은
Paimei 의 PIDA 이외에
동일 이름을 가진 module 이 있다는 점입니다 -.-
저는 아무것도 모르고 Pida 치고 가장 먼저 나온 사이트에서 받아서 설치했었는데
왜 안되는지 한참 삽질했습니다
결국 같은 module이 아니더군요
http://pida.co.uk/
이게 아니니 조심하시길~
제가 Paimei 를 Opensrc에 있는 링크를 걸어 두었는데
googlecode에 svn에 가보니 더 최근의 소스가 있더군요 -,.-
googlecode 상에는 그런 링크 없었는데..
아무튼
http://paimei.googlecode.com/svn/trunk/
에 가보시면 수정된 파일을 받을 수 있습니다
만
저걸 일일히 언제 다 받고 있겠습니까
그래서 간단히 python 코드로 짜봤습니다
파일 및 폴더 내용까지 싹 긁어다 오는 소스 입니다
제가 앞서 설명했던 것들을 여차 저차 하게 되면
다음과 같이 몇가지 메뉴가 추가된 Paimei 를 만나실 수 있습니다
Paimei Flash demo 를 보시면
pida 파일을 불러오는 것을 볼 수 있는데요
이 pida 파일은 IDA python 으로 생성된 파일입니다
IDA python 을 설치하시면 IDA 에서 python script를 실행시킬 수 있게되는데
여기서 paimei 폴더에 있는 pida_dump.py를 실행 시키면 얻으실 수 있습니다
혹시 xrefs 의 길이를 구할수 없다는 둥의 에러메세지가 뜨게 되면
xrefs를 list 로 변환해주셔야 합니다
xrefs 가 list 의 레퍼런스 인데 list로 연산을 하더군요
제가 뒤에 언급한 svn 에서는
이점이 변환되도록 수정 되었더군요
구버전으로 이래저래 삽질 많이 했었는데 참 ..
출처 : http://linkc.tistory.com/112(Hack My Mind 블로그)
소개할 건 Reverse Engineering Frame work 입니다
아마 Python 을 의미하는 Py 와 발음이 비슷한 Pai 떄문에
기존에 있던 Paimei 란 캐릭터의 이름을 따와서 이름을 지은거 같군요
아무튼 상당히 괜찮다고 평이 나있는 툴입니다
오픈소스이구요
먼저 Paimei 가 어떤 툴인지는 알고 설치 하셔야겠죠?
제작자의 홈페이지 입니다
http://pedram.redhive.com/PyDbg/docs/index.html
그리고 이건 다른 분들이 작성하신 Tutorial~
http://www.crazylazy.info/blog/content/paimei-tutorial-hands-pydbg-part-1
http://www.crazylazy.info/blog/content/paimei-tutorial-simple-heap-traceing-part-2
또 RECON 2006 에서 제작자가 발표한 PDF 파일입니다
http://recon.cx/en/f/pamini-five-finger.pdf
근데 생각보다 설치하기가 좀 [ 많이 ] 까다롭더군요
선행 설치되야 하는것도 장난이 아닙니다
태그를 긁어왔는데 어째 선이 안보여서 그림으로 대체합니다 -_-
이는 제작자 페이지의 Installation 부분에서 발췌한것임을 알려드립니다
게다가 이는 Python 2.4 를 기준으로 되어 있기 때문에 약간의 수정 없이는
요즘 가장 대중적으로 쓰이는 2.5에서 오류 없이 깔기가 불가능합니다
음 그럼 설치를 시작해볼까요
http://www.openrce.org/downloads/details/208/PaiMei
에서 Paimei 를 받습니다
물론 Python 2.5 가 깔려있다는 전제하에서 하는 거구요
위 파일에서 __install_requirements 를 실행시키면 한번에 다 설치 할 수 있도록 했는데
2.4 기준이라 위 링크된 사이트에서 자신의 버전에 맞는 파일을 받아 설치하시는게
속 편하실거라고 봅니다 -,.-
아무튼 위 설치를 마치셨다면
__setup_mysql.py를 실행시켜서 db와 연결하셔야 합니다
__setup_mysql.py localhost <ID> <PassWord> 로 실행시켜주시면 됩니다
ID, Password 는 Mysql 계정정보를 입력시켜주시면 되구요
이제 __build_installer.bat 파일을 실행시켜야 합니다
저는 setup.py install 명령어를 쓰고 나선 한참 삽질했는데요
setup.py install 하면서 컴파일러가 다르다니 어쨌대니 mingw32 를 쓰라느니
그래서 cygwin 도 깔아보고 해봤는데도 안되고
나중에 찾아보니 mingw32를 써서 컴파일하는건 좀 불안정하다더군요
아무튼 이런 삽질을 피하시려면
__build_installer.bat 을 실행시키면 됩니다
물론 수정점이 있지요
c:\python\python.exe setup.py bdist_wininst --bitmap=logos\installer.bmp --title=PaiMei
를 이렇게
c:\python25\python.exe setup.py bdist_wininst --bitmap=logos\installer.bmp --title=PaiMei
바꿔주시면 됩니다
그리고 실행해주시면 주르륵 설치가 되지요
확인은 default 로 설정해주셨을때
C:\Python25\Lib\site-packages
에서 확인하실 수 있습니다
pida, pydbg, pgraph, MySqLdb 등등이 있어야 하구요
아참, 제 기억으론 setuptools 도 필요했던거 같네요
http://pypi.python.org/pypi/setuptools
버전 맞게 설치하시고
pydbg 에서 또 수정해주셔야 할게 있는데
beist lab의 ashine 님의 글을 참조하시면 OK~
http://ashine.springnote.com/pages/5585579?print=1
이제 Paimei 압축을 푼 폴더에 console 폴더에 들어가셔서
PAIMEIconsole.pyw 를 실행시키면
Paimei 님의 살인미소가 우리를 반겨주시는게 정상입니다
Paimei 의 실행모습입니다
전체적으로 깔끔한 인터페이스네요
이걸 또 PIDA 와 연결 할 수 있는데요
조심하실 점은
Paimei 의 PIDA 이외에
동일 이름을 가진 module 이 있다는 점입니다 -.-
저는 아무것도 모르고 Pida 치고 가장 먼저 나온 사이트에서 받아서 설치했었는데
왜 안되는지 한참 삽질했습니다
결국 같은 module이 아니더군요
http://pida.co.uk/
이게 아니니 조심하시길~
제가 Paimei 를 Opensrc에 있는 링크를 걸어 두었는데
googlecode에 svn에 가보니 더 최근의 소스가 있더군요 -,.-
googlecode 상에는 그런 링크 없었는데..
아무튼
http://paimei.googlecode.com/svn/trunk/
에 가보시면 수정된 파일을 받을 수 있습니다
만
저걸 일일히 언제 다 받고 있겠습니까
그래서 간단히 python 코드로 짜봤습니다
- import urllib
- import re,os
- url = "http://paimei.googlecode.com/svn/trunk/"
- def recur_get ( path ):
- if path == '/' : path = ''
- f = urllib.urlopen(url + path)
- cont = f.read()
- str = re.findall("<a href=\"(\S*)\"",cont)
- for i in str:
- if(i != "../") and ( i.find("http") == -1):
- try:
- open(path + i,"wb").write(urllib.urlopen(url +path+ i).read())
- except IOError:
- os.makedirs(path + i)
- recur_get( path+ i )
- if __name__ == "__main__":
- recur_get('/')
파일 및 폴더 내용까지 싹 긁어다 오는 소스 입니다
제가 앞서 설명했던 것들을 여차 저차 하게 되면
다음과 같이 몇가지 메뉴가 추가된 Paimei 를 만나실 수 있습니다
Paimei Flash demo 를 보시면
pida 파일을 불러오는 것을 볼 수 있는데요
이 pida 파일은 IDA python 으로 생성된 파일입니다
IDA python 을 설치하시면 IDA 에서 python script를 실행시킬 수 있게되는데
여기서 paimei 폴더에 있는 pida_dump.py를 실행 시키면 얻으실 수 있습니다
혹시 xrefs 의 길이를 구할수 없다는 둥의 에러메세지가 뜨게 되면
xrefs를 list 로 변환해주셔야 합니다
xrefs 가 list 의 레퍼런스 인데 list로 연산을 하더군요
제가 뒤에 언급한 svn 에서는
이점이 변환되도록 수정 되었더군요
구버전으로 이래저래 삽질 많이 했었는데 참 ..
출처 : http://linkc.tistory.com/112(Hack My Mind 블로그)
반응형