首页
社区
课程
招聘
[翻译]Python2.5,windows XP,VC++2008 Express的环境下安装Pydasm和Pydbg以及请教
发表于: 2011-5-15 11:14 11180

[翻译]Python2.5,windows XP,VC++2008 Express的环境下安装Pydasm和Pydbg以及请教

2011-5-15 11:14
11180

作者:仙果
注:版权归原作者所有,虽然本人讨厌日本人,转载请注明出处,谢谢合作

题记:买了一本《Python 灰帽子》,书虽不足200页,但其中知识确是非常多,得益不少,又因最近在研究Fuzzing的相关问题,需要搭建Fuzzing进行测试,
        随按照书上的例子进行实验。网上搜集资料时搜索到了这篇文章,虽然买这本书的人挺多(今日在中关村图书大厦还看到某位安全爱好者买了这本书),
        但却是没有看到谁把Python环境搭建的文章发表出来,本着方便自己的想法把这篇文章翻译下,抱砖引玉,有些问题想请教一下。Go go Let's go!
        发现自己很罗嗦。

正文:
        昨天试着在自己的笔记本上安装Pydbg和Pydasm。Pydasm是常用且非常受欢迎的反汇编机器码(字节码)的库。Pydbg同样也是非常受欢迎windows 平台
下轻量级可扩展的Python 库。
        实际上,Pydbg是Windows平台下PaiMei(白眉)的调试框架。
        整个过程却是非常困难的,使用Python distutils充满了挣扎和陷阱。
        记录了如下的文档,把遇到的问题作为备忘录,方便其他人(包括我)安装这些使用C语言和Python编写非常好的反汇编引擎工具。
        我的笔记本配置如下:

	CPU : Intel Pentium M (Centrino) 1.2GHz
	RAM : 1GB
	OS : Windows XP Professional SP3 (Japanese)
	Python: Python 2.5 (install from MSI installer)
			Install Dir : C:\Python25
	Visual Studio : Visual C++ 2008 Express Edision (SP1)
	Subversion: TortoiseSVN 1.6.x
		libdasm-1.5\
		libdasm.c
		README.txt
		...
		bin\
		pydasm\
		...
	> setup.py build_ext
	running build_ext
	error: Python was built with Visual Studio 2003;
	extensions must be built with a compiler than can generate compatible binaries.
	Visual Studio 2003 was not found on this system. If you have Cygwin installed,
	you can try compiling with MingW32, by passing "-c mingw32" to setup.py.
	> cl
	Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
	Copyright (C) Microsoft Corporation.  All rights reserved.
	...
	> link
	Microsoft (R) Incremental Linker Version 9.00.30729.01
	Copyright (C) Microsoft Corporation.  All rights reserved.
	C:\Python25\Lib\distutils\msvccompiler.py
	msvccompiler.py:
		...
	class MSVCCompiler (CCompiler) :
		...
		def __init__ (self, verbose=0, dry_run=0, force=0):
			...
			# comment out here!!
			self.__macros = MacroExpander(self.__version)
	> set DISTUTILS_USE_SDK=1
	> set MSSdk=1
	> setup.py build_ext
	running build_ext
	building 'pydasm' extension
	creating build
	creating build\temp.win32-2.5
	creating build\temp.win32-2.5\Release
	C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe \
		/c /nologo /Ox /MD /W3 /GX /DNDEBUG \
		-IC:\Python25\include -IC:\Python25\include -IC:\Python25\PC \
		/Tc../libdasm.c /Fobuild\temp.win32-2.5\Release\../libdasm.obj
	C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe \
		/c /nologo /Ox /MD /W3 /GX /DNDEBUG \
		-IC:\Python25\include -IC:\Python25\include -IC:\Python25\PC \
		/Tcpydasm.c /Fobuild\temp.win32-2.5\Release\pydasm.obj
	creating build\lib.win32-2.5
	C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe \
		/DLL /nologo /INCREMENTAL:NO \
		/LIBPATH:C:\Python25\libs /LIBPATH:C:\Python25\PCBuild /EXPORT:initpydasm \
		build\temp.win32-2.5\Release\../libdasm.obj build\temp.win32-2.5\Release\pydasm.obj \
		/OUT:build\lib.win32-2.5\pydasm.pyd \
		/IMPLIB:build\temp.win32-2.5\Release\..\pydasm.lib
	libdasm-1.5\pydasm\build\lib.win32-2.5\pydasm.pyd
	> setup.py install
	running install
	running build
	running build_ext
	running install_lib
	copying build\lib.win32-2.5\pydasm.pyd -> C:\Python25\Lib\site-packages
	copying build\lib.win32-2.5\pydasm.pyd.manifest -> C:\Python25\Lib\site-packages
	running install_egg_info
	Removing C:\Python25\Lib\site-packages\pydasm-1.5-py2.5.egg-info
	Writing C:\Python25\Lib\site-packages\pydasm-1.5-py2.5.egg-info
	> C:\Python25\python.exe
	Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
	Type "help", "copyright", "credits" or "license" for more information.
	>>> import pydasm
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	ImportError: DLL load failed: 指定されたモジュールが見つかりません。(中文是“找不到指定的模块”,译者注)
	>>> quit()
	> dumpbin /dependents C:\Python25\python.exe
	...
	   python25.dll
	   MSVCR71.dll   <-- Python25 depends on MSVCR71.dll
	   KERNEL32.dll
	...
	> dumpbin /dependents build\lib.win32-2.5\pydasm.pyd
	...
	   MSVCR90.dll    <-- pydasm depends on MSVCR90.dll !!
	   python25.dll
	   KERNEL32.dll

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 596
活跃值: (449)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
2
楼主给我一个仙果吧,不想做凡人了
2011-5-15 11:19
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
3
我不是仙人!
2011-5-15 12:31
0
雪    币: 3116
活跃值: (1269)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
楼主V5,我昨天下午也在中关村图书大厦。也在那块书架呆了会。。
2011-5-15 14:13
0
雪    币: 535
活跃值: (109)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
上星期也去了下书店,正好看到那本书,看了老半天 。环境的配置也弄了很久,一开始装的是Python2.7,电脑上有vs2008用Python2.7 Pydasm 可以编译, 但是由于电脑上IDA版本的关系IDAPython又不行非得用2.5才可以,重新装了Py2.5 Pydbg就报那个MSVCR90.dll的错,后来之直接去google上paimei地址,用SVN下载的那个pydbg没有问题,里面的pydasm.pyd可以直接用不用编译,我没装paimei,SVN浏览paimei那个地址的时候会有很多文件夹Units Pydbg 什么的,导出到本地放到python的lib目录就可以了,书上的例子基本上都运行。
2011-5-15 15:47
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
6
能有一个详细的过程么?
谢谢了,
2011-5-15 16:31
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
7
我书买来还没看呢
2011-5-15 17:56
0
雪    币: 535
活跃值: (109)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
8
http://bbs.pediy.com/showthread.php?t=133992
2011-5-15 19:59
0
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
仙果神牛出手,就知道有没有!
2011-5-15 20:36
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
10
可以试下哈,呵呵
2011-5-18 12:50
0
雪    币: 271
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wep
11
感谢分享,敢问仙果兄是干啥工作的啊。
2011-5-18 15:59
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
12
做软件开发,呵呵
  对软件安全非常感兴趣
2011-5-18 20:04
0
雪    币: 203
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好东西,以前也遇到过这种问题,后面google了好久才解决的
2011-5-20 19:17
0
雪    币: 146
活跃值: (49)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
白眉是开源的!!!!!!
哭死了,早知道抽空看看代码了
2012-2-6 22:50
0
雪    币: 705
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
在python27下修改my_ctypes.py
# for each ctype we need to marshal, set it's __reduce__ routine.
for typ in c_types:
    pass
    #typ.__reduce__ = _reduce
2012-2-6 23:00
0
游客
登录 | 注册 方可回帖
返回
//