'python parsing'에 해당되는 글 2건

  1. 2010.05.10 [ Paimei ] Reverse Engineering Frame Work (2)
  2. 2010.03.10 [Python Challenge] level4 풀이

2010.05.10 15:27 Etc../Tool



네 , Paimei 는 킬빌 2에 나오는 캐릭터입니다











이 아니라

소개할 건 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 에서는

이점이 변환되도록 수정 되었더군요



구버전으로 이래저래 삽질 많이 했었는데 참 ..



'Etc.. > Tool' 카테고리의 다른 글

[ Paimei ] Reverse Engineering Frame Work  (2) 2010.05.10
[ Dia ] 순서도 작성 프로그램  (2) 2010.04.22
[ NotePad++ ] 단축 실행 , CMD 초기 경로 지정  (0) 2010.04.09
[ Hex Editor ] HxD  (0) 2010.03.19
[ Text Editor ] Notepad++  (0) 2010.03.19
Back Track 4 Final Version Release!  (0) 2010.01.31
Posted by LinkC

2010.03.10 14:14 WarGame




페이지 상에 씌인 말은 아무것도 없습니다

소스를 봐보면

<!-- urllib may help. DON'T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough. -->

라고 주석처리가 되어있군요

저 사진에는 링크가 걸려 있구요

들어가보면

해당 페이지에 nothing 이라는 변수에 12345라고 인자가 주어져있습니다

그리고 내용은

and the next nothing is 92512

92512 로 인자를 다시 주고  들어가면 다음 숫자가 나오구요

대략 어떻게 해야 할지 감이 오시나요?

페이지에 뿌려주는 값을 읽어 들여서 다시 인자로 주고

요청하는 방식이면 되겠군요

urllib 모듈을 쓰는게 좋을 거이고, 400번이면 충분하다고 합니다

bruteforce는 하지 않는게 신상에 좋아보이는군요 :D

urllib 를 참조해봅시다

먼저 특정 url 의 응답을 긁어와야합니다

urlopen 함수가 적절해보이는군요



응답은 파일 처리 할때와 같은 형식으로 처리해야 하는거 같군요

and next nothing is...

이 문자열이 나오지 않는 부분에서 멈추게 하고 반복해서 요청합니다





그러면 답이 쨘

읭?

Yes. Divide by two and keep going.

가 답은 아니겠죠?

2로 나누고 계속 하랍니다

소스 코드를 수정해줍니다




이번에야 말로 답이 쨘

'WarGame' 카테고리의 다른 글

[ Padocon 2010 ] Warmup 100  (0) 2010.03.16
[Python Challenge] level5 풀이  (2) 2010.03.11
[Python Challenge] level4 풀이  (0) 2010.03.10
[Python Challenge] level3 풀이  (0) 2010.03.09
[Python Challenge] level2 풀이  (0) 2010.03.05
[Python Challenge] level1 풀이  (0) 2010.03.05
Posted by LinkC
이전버튼 1 이전버튼

블로그 이미지
LinkC

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

공지사항

Yesterday49
Today16
Total323,950

달력

 « |  » 2018.12
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

최근에 받은 트랙백

글 보관함


. .