[翻譯]Python2.5,windows XP,VC++2008 Express的環境下安裝Pydasm和Pydbg以及請教
仙果發表於2011-05-15
作者:仙果
注:版權歸原作者所有,雖然本人討厭日本人,轉載請註明出處,謝謝合作
題記:買了一本《Python 灰帽子》,書雖不足200頁,但其中知識確是非常多,得益不少,又因最近在研究Fuzzing的相關問題,需要搭建Fuzzing進行測試,
隨按照書上的例子進行實驗。網上搜集資料時搜尋到了這篇文章,雖然買這本書的人挺多(今日在中關村圖書大廈還看到某位安全愛好者買了這本書),
但卻是沒有看到誰把Python環境搭建的文章發表出來,本著方便自己的想法把這篇文章翻譯下,抱磚引玉,有些問題想請教一下。Go go Let's go!
發現自己很羅嗦。
正文:
昨天試著在自己的筆記本上安裝Pydbg和Pydasm。Pydasm是常用且非常受歡迎的反彙編機器碼(位元組碼)的庫。Pydbg同樣也是非常受歡迎windows 平臺
下輕量級可擴充套件的Python 庫。
實際上,Pydbg是Windows平臺下PaiMei(白眉)的除錯框架。
整個過程卻是非常困難的,使用Python distutils充滿了掙扎和陷阱。
記錄瞭如下的文件,把遇到的問題作為備忘錄,方便其他人(包括我)安裝這些使用C語言和Python編寫非常好的反彙編引擎工具。
我的筆記本配置如下:
我們在後面會獲取PaiMei(白眉)的更新版本。
好吧,讓我們開始!
目錄:
^一步步安裝 Pydasm
獲取 libdasm
嘗試編譯->錯誤
避免distutils庫的值校驗
重新嘗試編譯->建立成功
安裝Pydasm 並且測試...不是吧,沒有找到"MSVCR90.dll"
重新編輯 msvccompiler.py 修改編譯選項 -> Pydasm工作正常
一步步安裝 Pydbg
使用SVN更新和安裝->提示找不到"Python26.dll!?"
Pydbg中移除Pydasm包->成功!!
白眉(PaiMei)其他模組的注意事項
一步步安裝Pydasm
Pydbg依賴於Pydasm。安裝Pydbg之前必須要安裝pydasm。但是Pydasm是使用C語言編寫,並且
在Windows平臺沒有正式發行版的二進位制檔案。
使用的環境如下:
Python 2.5
Visual C++ 2008 Express Edition SP1
Pydasm包含在"Libasm"中,這是一個輕量級的X86反彙編庫。
Pydasm的作者並不是libasm的作者。Libasm是jt(nologin.org)編寫的,Pydasm的作者則是ero(dkbza.org).
Pydasm被共享到Libasm中。
dkbza - Pydasm (只是列出了libasm的下載連結,簡述和一些示例程式碼)
http://dkbza.org/pydasm.html
現在我們來下載libasm,如下的連結包含Pydasm
Libasm : nologin--程式碼
http://www.nologin.org/main.pl?action=codeView&codeId=49&
下載成功後,解壓tar.gz到任意目錄。
昨天下載了Libasm-1.5.tar.gz。解壓後,得到了如下的目錄樹:
下一步,開啟命令列視窗,進入 VC++ 環境變數(如:vcvars32.bat)。確認"C:\Python25"被新增到環境變數的
的路徑當中,或者".py"字尾名的檔案已經與"C:\Python25\python.exe"進行關聯。
在命令列中執行"CD"命令進入到"libdasm-1.5\pydasm"目錄, 輸入如下:
噢!!為什麼? 我的命令列視窗環境在VC++ 工具下確認是可用的!!
最終答案是 Python的distutils (沒有找到這個單詞的相關翻譯,直接引用,譯者注)工具(在steup.py中引用)檢查
Visual Studio 的登錄檔值並且驗證合適的版本來判斷安裝與否。
不幸的是,我的本地環境VC++2008 Express Edision 的登錄檔鍵值並不是distutils 庫支援的。
繞過avoiding distutil 的登錄檔鍵值驗證
如何來繞過這些惱人的登錄檔鍵值驗證呢?答案是編輯distutil 庫原始碼。Python是開源的而且 distutils 是使用
Python語言編寫的。
(經過我對distutils以及它的原始碼進行研究分析後)
結論是,修改如下的原始碼:
在MacroExpander() 函式和它的建構函式中執行登錄檔鍵值校驗,且"self.__macros"是可選的,不是必需的。因此刪除掉
這行並不會影響到編譯。因此刪除掉不需要的這一行,刪除先前的 ".pyc" 檔案,msvccompiler.pyc ,可能存在".py"的相同
目錄。
嘗試重新編譯->成功了!!
msvccompiler.py程式碼中,當"DISTUTILS_USE_SDK"和 "MSSdk" 的環境變數設定正確且"cl.exe"可以在環境變數目錄中找到
時是不會進行登錄檔校驗的。因此可以在命令列視窗中設定"DISTUTILS_USE_SDK"和 "MSSdk" :
環境變數內容都設定好以後,msvccompiler.py 只會校驗登錄檔鍵是存在且忽略其值。
OK,嘗試編譯:
(刪去了編譯時的一些警告)
當所有工作成功以後,就會得到
安裝 Pydasm並且測試...OH-NO,沒有找到"MSVCR90.dll"!?
現在呼叫安裝命令:
然後呼叫Python和嘗試匯入Pydasm
O-No,最後的"ImportError"說明指定的模組沒有找到。在我的環境中,視窗顯示的是"MSVCR90.dll 沒有找到"。
檢查模組的依賴關係:
我的環境中,MSVCR90.dll 安裝在 Visual Studio的安裝目錄中,並不是系統目錄。如果你已經安裝包含MSVCR90.dll
的VC執行庫在系統目錄中,那麼匯入錯誤就不會提示,一切工作正確。
現在如何去做呢?有2中方法解決這個錯誤。
1.在Windows上安裝包含MSVCR90.dll的VC執行庫。
1.這是最簡單的,但是Python使用MSVCR71.dll (使用低版本的Visual Studio進行編譯的),我擔心在兩個動態
DLL會產生衝突。
2.靜態連結VC-DLL。
1.使用合適的模組,但是需要改變編譯選項,模組檔案大小會變大。
我強烈擔心兩個動態DLL產生衝突(或者其他錯誤),因此選擇了第二種方法。
又一次編輯msvccompiler.py, 修改編譯選項->Pydasm正常工作!!
現在如何修改編譯選項?選擇什麼選項呢?
msvccompiler.py 在MSVCCompiler 類的初始化方法的安裝編譯選項。
"/MD" 和"/MDd"表示動態連結多執行緒庫。若要了解關於動態庫和編譯選項的更詳細資訊,檢視MSDN:
這次我們需要連結靜態多執行緒庫,因此選擇"/MT" 和 "/MTd"。
刪除舊的msvccompiler.pyc和pydasm\build目錄,重新嘗試。
好了。Pydasm開始工作正常。
下一步,嘗試安裝(白眉)PaiMei,Pydbg。
白眉官方文件
http://pedram.redhive.com/PaiMei/docs/
白眉google程式碼站
http://code.google.com/p/paimei/
其他資源
http://thatsbroken.com/?p=26
http://maliciousattacker.blogspot.com/2006/12/pydbg-in-vmware.html
http://www.openrce.org/downloads/details/208/PaiMei
http://maliciousattacker.blogspot.com/2007/01/setting-up-pydbg.html
從SVN上下載儲存並安裝->"找不到Python26.dll "
首先,從SVN源上下載白眉的最新版(並不是匯出)。使用你自己喜歡的SVN工具。昨天我更新了r248編號的原始碼。
第二步,開啟命令列視窗,CD到白眉的目錄,執行setup.py
第三步,嘗試匯入 Pydbg:
錯誤提示視窗表示“沒有找到Python26.dll”。
經過對Python的堆疊輸出進行仔細的檢視。非常奇怪的發生在"import pydasm"(匯入 Python)上。
上一節中,我們驗證了"import pydasm"是可以正常工作的。那現在為什麼?
在Pydbg包中移除pydasm.pyd->成功了!!
答案是: Pydbg的模組目錄已經包含了"pydasm.pyd",而且是在 Python 2.6下編譯的。
然後我們簡單的移除 "pydbg\pydasm.pyd"。關閉命令列視窗,一併關閉所有的Python程式,重新開啟命令列視窗
(清除載入的DLL),再試一次:
好的,沒有任何錯誤。
最後,呼叫calc.exe ,得到它的PID,例子如下:
例如:
白眉其他模組的注意事項
這篇文章中,我們只需要安裝白眉的Pydbg。忽略瞭如何安裝白眉的其他模組,如PIDA,GUI部件。如果你想安裝這些模組
白眉都是可以設定的,透過閱讀官方文件或者在SVN下載原始碼"docs/index.html" 。
這是這篇文章的翻譯,由於本人英語水平的問題,文中肯定有錯誤之處,歡迎指正。
下面我說下自己的環境
按理說Python2.7是可以可以安裝Pydbg的,我安裝Pydasm是可以正常工作的,已經測試了,下載安裝Pydbg的時候就報錯了
請教其他安裝Pydbg的朋友,你們遇到這個問題沒,該如何解決?
仙果感激不盡!
Python-Installing pydasm and pydbg with Python 2_5, WinXP, VC++2008 Express Edition及中文翻
注:版權歸原作者所有,雖然本人討厭日本人,轉載請註明出處,謝謝合作
題記:買了一本《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
我們在後面會獲取PaiMei(白眉)的更新版本。
好吧,讓我們開始!
目錄:
^一步步安裝 Pydasm
獲取 libdasm
嘗試編譯->錯誤
避免distutils庫的值校驗
重新嘗試編譯->建立成功
安裝Pydasm 並且測試...不是吧,沒有找到"MSVCR90.dll"
重新編輯 msvccompiler.py 修改編譯選項 -> Pydasm工作正常
一步步安裝 Pydbg
使用SVN更新和安裝->提示找不到"Python26.dll!?"
Pydbg中移除Pydasm包->成功!!
白眉(PaiMei)其他模組的注意事項
一步步安裝Pydasm
Pydbg依賴於Pydasm。安裝Pydbg之前必須要安裝pydasm。但是Pydasm是使用C語言編寫,並且
在Windows平臺沒有正式發行版的二進位制檔案。
使用的環境如下:
Python 2.5
Visual C++ 2008 Express Edition SP1
Pydasm包含在"Libasm"中,這是一個輕量級的X86反彙編庫。
Pydasm的作者並不是libasm的作者。Libasm是jt(nologin.org)編寫的,Pydasm的作者則是ero(dkbza.org).
Pydasm被共享到Libasm中。
dkbza - Pydasm (只是列出了libasm的下載連結,簡述和一些示例程式碼)
http://dkbza.org/pydasm.html
現在我們來下載libasm,如下的連結包含Pydasm
Libasm : nologin--程式碼
http://www.nologin.org/main.pl?action=codeView&codeId=49&
下載成功後,解壓tar.gz到任意目錄。
昨天下載了Libasm-1.5.tar.gz。解壓後,得到了如下的目錄樹:
libdasm-1.5\ libdasm.c README.txt ... bin\ pydasm\ ...
下一步,開啟命令列視窗,進入 VC++ 環境變數(如:vcvars32.bat)。確認"C:\Python25"被新增到環境變數的
的路徑當中,或者".py"字尾名的檔案已經與"C:\Python25\python.exe"進行關聯。
在命令列中執行"CD"命令進入到"libdasm-1.5\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.
噢!!為什麼? 我的命令列視窗環境在VC++ 工具下確認是可用的!!
> 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.
最終答案是 Python的distutils (沒有找到這個單詞的相關翻譯,直接引用,譯者注)工具(在steup.py中引用)檢查
Visual Studio 的登錄檔值並且驗證合適的版本來判斷安裝與否。
不幸的是,我的本地環境VC++2008 Express Edision 的登錄檔鍵值並不是distutils 庫支援的。
繞過avoiding distutil 的登錄檔鍵值驗證
如何來繞過這些惱人的登錄檔鍵值驗證呢?答案是編輯distutil 庫原始碼。Python是開源的而且 distutils 是使用
Python語言編寫的。
(經過我對distutils以及它的原始碼進行研究分析後)
結論是,修改如下的原始碼:
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)
在MacroExpander() 函式和它的建構函式中執行登錄檔鍵值校驗,且"self.__macros"是可選的,不是必需的。因此刪除掉
這行並不會影響到編譯。因此刪除掉不需要的這一行,刪除先前的 ".pyc" 檔案,msvccompiler.pyc ,可能存在".py"的相同
目錄。
嘗試重新編譯->成功了!!
msvccompiler.py程式碼中,當"DISTUTILS_USE_SDK"和 "MSSdk" 的環境變數設定正確且"cl.exe"可以在環境變數目錄中找到
時是不會進行登錄檔校驗的。因此可以在命令列視窗中設定"DISTUTILS_USE_SDK"和 "MSSdk" :
> set DISTUTILS_USE_SDK=1 > set MSSdk=1
環境變數內容都設定好以後,msvccompiler.py 只會校驗登錄檔鍵是存在且忽略其值。
OK,嘗試編譯:
> 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
安裝 Pydasm並且測試...OH-NO,沒有找到"MSVCR90.dll"!?
現在呼叫安裝命令:
> 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
然後呼叫Python和嘗試匯入Pydasm
> 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()
O-No,最後的"ImportError"說明指定的模組沒有找到。在我的環境中,視窗顯示的是"MSVCR90.dll 沒有找到"。
檢查模組的依賴關係:
> 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
我的環境中,MSVCR90.dll 安裝在 Visual Studio的安裝目錄中,並不是系統目錄。如果你已經安裝包含MSVCR90.dll
的VC執行庫在系統目錄中,那麼匯入錯誤就不會提示,一切工作正確。
現在如何去做呢?有2中方法解決這個錯誤。
1.在Windows上安裝包含MSVCR90.dll的VC執行庫。
1.這是最簡單的,但是Python使用MSVCR71.dll (使用低版本的Visual Studio進行編譯的),我擔心在兩個動態
DLL會產生衝突。
2.靜態連結VC-DLL。
1.使用合適的模組,但是需要改變編譯選項,模組檔案大小會變大。
我強烈擔心兩個動態DLL產生衝突(或者其他錯誤),因此選擇了第二種方法。
又一次編輯msvccompiler.py, 修改編譯選項->Pydasm正常工作!!
現在如何修改編譯選項?選擇什麼選項呢?
msvccompiler.py 在MSVCCompiler 類的初始化方法的安裝編譯選項。
msvccompiler.py: ... class MSVCCompiler (CCompiler) : ... def initialize(self): ... self.preprocess_options = None if self.__arch == "Intel": self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GX' , '/DNDEBUG'] self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GX', '/Z7', '/D_DEBUG']
"/MD" 和"/MDd"表示動態連結多執行緒庫。若要了解關於動態庫和編譯選項的更詳細資訊,檢視MSDN:
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx "MSDN Library" > "Development Tools and Languages" > "Visual Studio 2010" > "Visual Studio" > "Visual Studio Languages" > "Visual C++" > "Visual C++ Reference" > "Visual C++ Libraries Reference" > "Run-Time Library" > "C Run-Time Libraries"
這次我們需要連結靜態多執行緒庫,因此選擇"/MT" 和 "/MTd"。
... class MSVCCompiler (CCompiler) : ... def initialize(self): ... self.preprocess_options = None if self.__arch == "Intel": # change '/MD' => '/MT' self.compile_options = [ '/nologo', '/Ox', '/MT', '/W3', '/GX' , '/DNDEBUG'] # change '/MDd' => '/MTd' self.compile_options_debug = ['/nologo', '/Od', '/MTd', '/W3', '/GX', '/Z7', '/D_DEBUG']
刪除舊的msvccompiler.pyc和pydasm\build目錄,重新嘗試。
> setup.py build_ext > dumpbin /dependents build\lib.win32-2.5\pydasm.pyd Image has the following dependencies: python25.dll KERNEL32.dll ... > setup.py install ... > 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 >>> buffer = '\x90\x31\xc9\x31\xca\x31\xcb' >>> offset = 0 >>> while offset < len(buffer): ... i = pydasm.get_instruction(buffer[offset:], pydasm.MODE_32) ... print pydasm.get_instruction_string(i, pydasm.FORMAT_INTEL, 0) ... if not i: ... break ... offset += i.length ... nop xor ecx,ecx xor edx,ecx xor ebx,ecx >>> quit()
好了。Pydasm開始工作正常。
下一步,嘗試安裝(白眉)PaiMei,Pydbg。
白眉官方文件
http://pedram.redhive.com/PaiMei/docs/
白眉google程式碼站
http://code.google.com/p/paimei/
其他資源
http://thatsbroken.com/?p=26
http://maliciousattacker.blogspot.com/2006/12/pydbg-in-vmware.html
http://www.openrce.org/downloads/details/208/PaiMei
http://maliciousattacker.blogspot.com/2007/01/setting-up-pydbg.html
從SVN上下載儲存並安裝->"找不到Python26.dll "
首先,從SVN源上下載白眉的最新版(並不是匯出)。使用你自己喜歡的SVN工具。昨天我更新了r248編號的原始碼。
第二步,開啟命令列視窗,CD到白眉的目錄,執行setup.py
> setup.py build (...) > setup.py install (...)
第三步,嘗試匯入 Pydbg:
> 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 pydbg Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pydbg\__init__.py", line 47, in <module> from pydbg import * File "C:\in_vitro\SVNWORK\paimei\pydbg\pydbg.py", line 32, in <module> import pydasm ImportError: DLL load failed: 指定されたモジュールが見つかりません。
錯誤提示視窗表示“沒有找到Python26.dll”。
經過對Python的堆疊輸出進行仔細的檢視。非常奇怪的發生在"import pydasm"(匯入 Python)上。
上一節中,我們驗證了"import pydasm"是可以正常工作的。那現在為什麼?
在Pydbg包中移除pydasm.pyd->成功了!!
答案是: Pydbg的模組目錄已經包含了"pydasm.pyd",而且是在 Python 2.6下編譯的。
> dumpbin /dependents C:\Python25\Lib\site-packages\pydbg\pydasm.pyd ^^^^^^^^^^^^^^^^ pydasm.pyd was bundled!! ... Image has the following dependencies: MSVCR90.dll python26.dll KERNEL32.dll ...
然後我們簡單的移除 "pydbg\pydasm.pyd"。關閉命令列視窗,一併關閉所有的Python程式,重新開啟命令列視窗
(清除載入的DLL),再試一次:
> 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 pydbg >>>
好的,沒有任何錯誤。
最後,呼叫calc.exe ,得到它的PID,例子如下:
from pydbg import * from pydbg.defines import * def handler_breakpoint (pydbg): if pydbg.first_breakpoint: print "[*] Hit 1st breakpoint!" return DBG_CONTINUE print "[*] Hit breakpoint!" return DBG_CONTINUE dbg = pydbg() dbg.set_callback(EXCEPTION_BREAKPOINT, handler_breakpoint) dbg.attach(XXXXX) # pid of calc.exe recv = dbg.func_resolve("user32", "ShowWindow") dbg.bp_set(recv) dbg.debug_event_loop()
例如:
> 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. >>> from pydbg import * >>> from pydbg.defines import * >>> def handler_breakpoint (pydbg): ... if pydbg.first_breakpoint: ... print "[*] Hit 1st breakpoint!" ... return DBG_CONTINUE ... print "[*] Hit breakpoint!" ... return DBG_CONTINUE ... >>> dbg = pydbg() >>> dbg.set_callback(EXCEPTION_BREAKPOINT, handler_breakpoint) >>> dbg.attach(5084) <pydbg.pydbg.pydbg instance at 0x00BF8198> >>> recv = dbg.func_resolve("user32", "ShowWindow") >>> dbg.bp_set(recv) <pydbg.pydbg.pydbg instance at 0x00BF8198> >>> dbg.debug_event_loop() [*] Hit 1st breakpoint! [*] Hit breakpoint! ... (minimize, or restore calc window) ... [*] Hit breakpoint! >>> quit()
白眉其他模組的注意事項
這篇文章中,我們只需要安裝白眉的Pydbg。忽略瞭如何安裝白眉的其他模組,如PIDA,GUI部件。如果你想安裝這些模組
白眉都是可以設定的,透過閱讀官方文件或者在SVN下載原始碼"docs/index.html" 。
這是這篇文章的翻譯,由於本人英語水平的問題,文中肯定有錯誤之處,歡迎指正。
下面我說下自己的環境
OS:XP SP3_CN VC:Visual Studio 2008 Team SP1 PY:Python 2.7
按理說Python2.7是可以可以安裝Pydbg的,我安裝Pydasm是可以正常工作的,已經測試了,下載安裝Pydbg的時候就報錯了
請教其他安裝Pydbg的朋友,你們遇到這個問題沒,該如何解決?
仙果感激不盡!
Python-Installing pydasm and pydbg with Python 2_5, WinXP, VC++2008 Express Edition及中文翻
相關文章
- Windows 環境下 Python 環境安裝2022-11-05WindowsPython
- Windows 環境下安裝 Laravel2019-05-29WindowsLaravel
- Windows 環境下安裝 Redis2020-09-11WindowsRedis
- Windows環境下安裝RabbitMQ2022-06-07WindowsMQ
- Windows下搭載虛擬機器以及環境安裝2020-08-23Windows虛擬機
- Windows環境下的Oracle Data Guard安裝和配置2008-02-13WindowsOracle
- CPP編譯器安裝(Windows環境)2024-03-19編譯Windows
- Windows環境下安裝Linux2018-09-22WindowsLinux
- Windows環境下安裝Nexus2018-03-18Windows
- windows下配置安裝YAF環境2017-10-13Windows
- windows環境下安裝selenium2017-01-06Windows
- 【mycat】mycat在windows環境下的安裝和啟動2017-05-30Windows
- HMMer在Windows環境下的安裝2019-01-16HMMWindows
- zookeeper安裝和使用 windows環境2018-04-10Windows
- 在Windows xp下安裝PyQt2017-04-08WindowsQT
- Windows環境下phpMyAdmin的安裝配置方法2016-05-05WindowsPHP
- Linux 環境下編譯安裝 Redis2018-07-30Linux編譯Redis
- Android 原始碼的下載和編譯環境的安裝及編譯2014-04-07Android原始碼編譯
- (轉)Windows下安裝Docker, GitBash環境配置2020-10-02WindowsDockerGit
- Linux 下 Go 環境搭建以及 Gin 安裝2019-03-03LinuxGo
- Java8.0下載安裝以及配置環境2020-10-18Java
- Windows 環境安裝Ldap2021-01-04WindowsLDA
- Windows環境安裝Scrapy2024-11-14Windows
- [Windows環境]nvm工具的介紹和安裝2024-07-11Windows
- 安裝Scrapy(Windows下Python的爬蟲環境)2018-01-01WindowsPython爬蟲
- 10分鐘搞定Windows環境下hadoop安裝和配置2018-01-05WindowsHadoop
- Windows10下如何安裝配置 perl 環境2021-06-11Windows
- windows7環境下使用pip安裝MySQLdb2017-07-28WindowsMySql
- Linux環境下elasticsearch-6.2.2安裝以及配置2018-03-02LinuxElasticsearch
- 編譯安裝LAMP環境2017-11-27編譯LAMP
- SAP Sybase ASE15.7在windows xp (x86_32bit)32位環境下的安裝2013-12-18Windows
- Windows環境下Oracle11g安裝的問題2019-02-25WindowsOracle
- Linux下安裝Python,以及環境變數的配置2018-12-28LinuxPython變數
- Windows環境下Python3.7安裝Tensorflow2020-10-09WindowsPython
- Linux & Windows 環境下 RabbitMQ 安裝與基本配置2018-05-12LinuxWindowsMQ
- Linux & Windows 環境下 Redis 安裝與基本配置2018-05-09LinuxWindowsRedis
- Windows環境下嘗試安裝並配置PHP PEAR2015-09-23WindowsPHP
- monogdb windows環境下 安裝及使用簡單示例2014-08-23MonoWindows