win64位下Python2.7安装pyXML问题解决方案

sourceforgepyXML0.84只能支持到python2.4,之后没有更新。搜索网上,这位仁兄提供了适合python2.7pyXML0.84 http://www.somethinkodd.com/oddthinking/2009/10/31/windows-installer-for-pyxml-0-8-4-for-python-2-6-x/

 

下载运行,提示“Pythonversion 2.7required, which was not found in the registry。可是我明明已经安装过Python2.7了(我安装的是Active Python 2.7)。

 

没说的,运行OllyDbg打开PyXML-0.8.4.win32-py2.7.exe调试。打开读取注册表的API分别为RegOpenKeyExRegQueryValueEx。定位相关代码并在004028ED设置断点。

首先读取HKEY_LOCAL_MACHINE下的"Software\Python\PythonCore",获得版本2.7,使用sprintfs合成字符串Software\Python\PythonCore\2.7\InstallPath,并读取,读取失败。我打开注册表观察相应键值存在,我意识到win64位下注册表重定位的可能性。HKEY_LOCAL_MACHINE下的Software重定位到Software\Wow6432NodeSoftware\Python\PythonCore存在2.7项,但是2.7下面没有InstallPath项,于是在2.7下新建InstallPath,并设置默认值为C:\Python27(我电脑上python2.7的安装路径)。重新运行PyXML-0.8.4.win32-py2.7.exe,安装成功!

检验PyXML安装

>>>import xml

>>>xml.__version__

'0.8.4'

 

相应汇编码

.text:004028ED; int __cdecl sub_4028ED(int, HKEY hKey, int)

.text:004028EDsub_4028ED      proc near              ; CODE XREF: .text:00402BDBp

.text:004028ED                                       ;.text:00402BF2p

.text:004028ED

.text:004028EDcbData          = dword ptr -110h

.text:004028EDvar_10C         = dword ptr -10Ch

.text:004028EDvar_108         = dword ptr -108h

.text:004028EDhWnd            = dword ptr -104h

.text:004028EDcchName         = dword ptr -100h

.text:004028EDdwIndex         = dword ptr -0FCh

.text:004028EDphkResult       = dword ptr -0F8h

.text:004028EDSubKey          = byte ptr -0F4h</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值